blue0x1/xpath

GitHub: blue0x1/xpath

一款基于 Nim 的高性能 XPath 注入扫描器,支持多种检测技术和自动化数据提取。

Stars: 2 | Forks: 0

xpath

用于授权安全测试的高级 XPath 注入扫描器。

version language license platform

Chokri Hammedi (blue0x1) 编写 · MIT 许可证

## 概述 `xpath` 是一个快速、多技术的 XPath 注入扫描器,使用 Nim 编写。它专注于针对现实世界中基于 XML 的应用程序进行实用检测、响应比较、可见提取、盲注提取以及 payload 覆盖。 除了 Nim 标准库之外,它没有其他外部运行时依赖。 ## 功能特性 | 领域 | 支持情况 | |---|---| | 检测 | 报错型、布尔型盲注、时间型盲注、身份验证绕过、联合/节点选择 | | 提取 | 可见 HTML 解析、选择器联合提取、XPath 盲注数据提取 | | Payload | 经典、谓词、基于函数、路径跳出、编码、实体、大小写混合变体 | | 发现 | URL 参数检测与 HTML 表单抓取 | | 绕过 | WAF/IDS 指示器、URL 编码和基于实体的绕过 payload | | 输出 | 人类可读的终端报告和 JSON 报告导出 | | 传输 | Cookies、headers、proxy、retry、timeout、User-Agent、重定向控制 | ## 安装说明 ### Nimble ``` nimble install xpath ``` 这将从官方 Nim 包列表中安装最新的包。 ### 从源码构建 ``` git clone https://github.com/blue0x1/xpath.git cd xpath make linux ``` Linux 二进制文件将写入: ``` dist/xpath-linux-amd64 ``` ### 全局安装 ``` sudo make install ``` 默认安装: ``` /usr/local/bin/xpath ``` 更改安装前缀: ``` sudo make install PREFIX=/usr ``` ### Debian 软件包 ``` make deb sudo dpkg -i dist/xpath_1.0.0_amd64.deb ``` ### Windows 交叉编译 ``` make windows ``` Windows 二进制文件将写入: ``` dist/xpath-windows-amd64.exe ``` 在 Linux 上,Windows 构建需要 MinGW: ``` sudo apt install mingw-w64 ``` ## 快速入门 扫描 GET 参数: ``` xpath -u "http://target.local/search?q=test" -p q ``` 扫描所有检测到的查询参数: ``` xpath -u "http://target.local/search?q=test&id=1" ``` 扫描 POST 主体: ``` xpath -u "http://target.local/login" -m POST -d "user=*&pass=test" ``` 运行所有技术并在可能的情况下提取可见或盲注数据: ``` xpath -u "http://target.local/search?q=test" -p q -t A -x ``` 使用代理: ``` xpath -u "http://target.local/search?q=test" -p q --proxy http://127.0.0.1:8080 ``` 保存 JSON 输出: ``` xpath -u "http://target.local/search?q=test" -p q -t A -o report.json -f json ``` ## 使用方法 ``` USAGE xpath [OPTIONS] -u TARGET -u, --url Target URL -m, --method HTTP method: GET or POST -d, --data POST body, use * to mark injection point -p, --param Parameter(s) to test, comma-separated -c, --cookie Cookie string -H, --header
Extra header, repeatable DETECTION -t, --technique E, B, T, U, P, or A -l, --level <1-5> Payload thoroughness level -x, --extract Extract data after confirming injection --xpath XPath expression for extraction OUTPUT -o, --output Save report -f, --format text or json -v, --verbose Verbose output ``` ## 技术原理 ### 报错型 发送格式错误的 XPath payload,并检测来自 Java、.NET、PHP、libxml2、Saxon、Xalan 和 W3C XQuery 错误码的特定于框架的错误签名。 ``` xpath -u "http://target.local/item?id=1" -p id -t E ``` ### 布尔型盲注 使用主体相似度和大小差异来比较成对的 TRUE/FALSE payload 响应。当结果未直接打印但应用程序行为发生改变时,此技术非常有用。 ``` xpath -u "http://target.local/search?q=test" -p q -t B ``` ### 时间型盲注 在缺乏基于内容的信号时,使用计算成本高昂的 XPath 表达式来创建可测量的响应时间差异。 ``` xpath -u "http://target.local/search?q=test" -p q -t T --time-sec 3 ``` ### 联合 / 节点选择 测试类似选择器的参数是否可以与绝对或相对 XPath 路径联合,例如 `//text()`、`../../..//text()`、`//@*` 和索引路径。 ``` xpath -u "http://target.local/search?q=INVALID&field=name" -p field -t U -x ``` ### 身份验证绕过 检查谓词破坏 payload、基于位置的 payload、角色子字符串 payload、布尔函数和上下文感知的绕过形式。 ``` xpath -u "http://target.local/login" -m POST -d "username=*&password=test" -t P ``` ## 数据提取 当启用 `-x` 时,`xpath` 会选择最佳的可用提取模式: | 模式 | 描述 | |---|---| | 可见身份验证响应 | 解析成功绕过响应中的新行、链接、重定向和渲染值 | | 可见联合路径 | 从联合/节点选择 payload 中提取新渲染的文本 | | 盲注提取 | 使用 `string-length()`、`substring()`、`name()` 和 `count()` 推断 XML 数据 | 示例: ``` xpath -u "http://target.local/query?q=test" -p q -t A -x ``` 自定义表达式: ``` xpath -u "http://target.local/query?q=test" -p q -x --xpath "name(/*[1])" ``` ## Payload 级别 | 级别 | 侧重点 | |---|---| | `1` | 快速经典 payload | | `2` | 常见的真实场景谓词破坏 | | `3` | 默认均衡扫描 | | `4` | 编码、实体和路径跳出 payload | | `5` | 最大覆盖率和特殊变体 | ## 构建目标 | 目标 | 输出 | |---|---| | `make linux` | `dist/xpath-linux-amd64` | | `make windows` | `dist/xpath-windows-amd64.exe` | | `make install` | 安装至 `$(PREFIX)/bin/xpath` | | `make deb` | `dist/xpath_1.0.0_amd64.deb` | | `make clean` | 删除 `build/` 和 `dist/` | ## 项目结构 ``` src/ xpath.nim core/ analyzer.nim crawler.nim extractor.nim http.nim payloads.nim reporter.nim scanner.nim utils/ cli.nim config.nim logger.nim ``` ## 许可证 MIT 许可证。详见 [LICENSE](LICENSE)。 ## 法律声明 本工具仅供授权安全测试使用。请仅在您拥有或获得明确书面授权进行测试的系统上使用。
标签:CISA项目, Nim语言, WAF绕过, Web安全, XML安全, XPath注入, 加密, 安全测试, 开源安全工具, 授权渗透测试, 攻击性安全, 数据提取, 漏洞扫描器, 演示模式, 爬虫与发现, 盲注检测, 网络安全, 蓝队分析, 逆向工程平台, 隐私保护