
XSRFProbe v3.0.0
Prime 跨站请求伪造 (CSRF) 审计与利用工具包.
XSRFProbe
顶级跨站请求伪造审计与利用工具包
关于
XSRFProbe 是一款高级跨站请求伪造(CSRF/XSRF)审计与利用工具包。它配备了强大的爬虫引擎和众多系统化检查,能够检测大多数CSRF漏洞及其相关的绕过方式,并针对每个发现的漏洞进一步生成可利用的概念验证。更多关于XSRFProbe工作原理的信息,请参见维基上的XSRFProbe 内部机制。
XSRFProbe 维基 • 快速入门 • 常规用法 • 高级用法 • XSRFProbe 内部机制 • 图库
部分特性
- 运行一整套系统化检查 —— 由响应差异/基准测试引擎支持 —— 之后才将端点声明为易受攻击。
- 检测并主动篡改多种反CSRF令牌实现:请求方法切换、令牌移除、空值/重复值、非会话绑定令牌、双重提交Cookie和自定义头令牌。
- 探测试Referer和Origin验证,使用真实世界绕过技术(移除头、正则/子域名技巧、
Origin: null),以及方法覆盖和Content-Type绕过。 - 分析SameSite Cookie保护,可选子域名枚举(通过crt.sh)用于同级域名绕过测试。
- 配备强大的爬虫,支持确定性、有界爬取和扫描(可通过
--max-urls、--max-depth和--crawl-timeout配置)。 - 可选的Headless Firefox(Selenium)集成,用于浏览器依赖测试和生成的PoC自动验证。
- 使用熵和编码检查进行准确的令牌强度检测和分析。
- 能够生成正常以及恶意可利用的CSRF概念验证。
- 开箱即用支持自定义Cookie值、通用头和JSON报告——每个发现都带有严重性评级和可利用性前提条件。
- 用户可以控制扫描器的一切行为。
- 用户友好的交互环境,支持完整详细输出,以及错误、漏洞和令牌的详细日志记录。
执行的漏洞测试:
XSRFProbe运行的每项检查都有唯一标识符。该ID会显示在控制台输出(例如 [T6] VULNERABLE: ...)中,并作为test_id字段存储在JSON报告的每个发现中(连同其severity,并在相关情况下,details下提供exploitability说明),因此每个发现都能映射回产生它的具体测试。
| ID | 类别 | 检查内容 |
|---|---|---|
D1 | 令牌存在性 | 没有反CSRF令牌(通用请求伪造) |
D2 | 令牌存在性 | 登录表单缺少CSRF令牌(登录CSRF) |
T2 | 令牌篡改 | 验证与请求方法绑定(GET ↔ POST 切换) |
T3 | 令牌篡改 | 令牌可以被完全省略 |
T4 | 令牌篡改 | 令牌不与用户会话绑定(跨会话重放) |
T5 | 令牌篡改 | 令牌绑定到非会话Cookie(例如 csrfKey) |
T6 | 令牌篡改 | 朴素双重提交Cookie(Cookie == 请求体,无绑定) |
T7 | 令牌篡改 | 接受空令牌值 |
T8 | 令牌篡改 | 自定义头令牌可以被省略或伪造 |
M1 | 方法 / Content-Type | 通过 _method 参数覆盖HTTP方法 |
M2 | 方法 / Content-Type | 通过 X-HTTP-Method-Override 头覆盖HTTP方法 |
M4 | 方法 / Content-Type | 通过替代 Content-Type 绕过验证 |
R0 | Referer | 表单提交不验证Referer头 |
R1 | Referer | 通过省略头绕过Referer验证 |
R2a | Referer | Referer正则绕过——目标作为攻击者子域名 |
R2b | Referer | Referer正则绕过——目标在查询字符串中 |
R2c | Referer | Referer正则绕过——目标在路径中 |
O1 | Origin | 通过 Origin: null 绕过Origin验证 |
O2 | Origin | 通过子域名技巧绕过Origin验证 |
O3 | Origin | 通过省略头绕过Origin验证 |
S2 | SameSite(浏览器) | 通过客户端重定向小工具绕过 SameSite=Strict |
S3 | SameSite(浏览器) | 通过同级子域名上的XSS绕过 SameSite=Strict |
S4 | SameSite(浏览器) | 通过Cookie刷新/OAuth流程绕过 SameSite=Lax |
C1 | Cookie状态 | Cookie SameSite 属性分析(None/Lax/Strict) |
C2 | Cookie状态 | Cookie未设置 SameSite 属性 |
E1 | 令牌强度 | 令牌使用弱/结构化哈希编码 |
A1 | 令牌强度 | 扫描后令牌可预测性/可伪造性分析 |
S*检查需要可选的Headless浏览器集成(--browser)。T*/M*/R*/O*是HTTP级别检查,由响应差异/基准测试引擎控制。
图库
让我们看看XSRFProbe在实际中的一些场景:
安装与使用
通过Pypi安装:
XSRFProbe 可以通过一条命令轻松安装:
pip install xsrfprobe
手动安装:
- 基础操作,第一步是安装工具:
pip install .
- 现在,可以通过以下命令启动工具:
xsrfprobe --help
- 浏览器依赖测试(
--browser、--auto-validate-poc)额外需要 geckodriver 在您的PATH中可用(或通过--geckodriver-path指定)。 - 在网站上测试XSRFProbe后,会在当前工作目录中创建一个
xsrfprobe-output输出文件夹。在该文件夹下可以查看扫描期间收集的详细日志和信息(传递--json参数可获得机器可读的报告)。
版本与许可
XSRFProbe 目前为 v3.0.0,该作品遵循 GNU通用公共许可证 (GPLv3) 许可。
警告
请勿在真实网站上使用此工具!
因为此工具旨在自动执行各种表单提交,这可能会破坏网站。有时您可能会搞乱数据库,甚至可能对网站造成拒绝服务攻击。
请在可废弃的测试/虚拟设置/网站上进行测试!
免责声明
在未经事先双方同意的情况下使用XSRFProbe测试网站可能被视为非法行为。最终用户有责任遵守所有适用的本地、州和联邦法律。作者不承担任何责任,也不对因使用本程序造成的任何误用或损害负责。
作者的话
该项目完全基于__我自己对跨站请求伪造攻击的研究以及我在Web应用程序上的经验__。您可以尝试阅读源代码,以帮助理解此工具包的构建方式。非常欢迎有用的拉取请求、想法和问题。如果您想了解XSRFProbe的开发进展情况,请查看开发看板。
由 @0xInfection 用 ♡ 精心打造。