关于 pentest-race-conditions
用于授权渗透测试的安全技能,帮助测试人员发现并验证并发请求导致的竞态条件。涵盖同步请求、跨端点 TOCTOU 和会话级测试,并提供影响记录流程。
主要功能
- 01识别易受竞态影响的操作
- 02并发请求与请求同步测试
- 03跨端点 TOCTOU 检查
- 04会话及数据库竞态测试
- 05记录影响与复现步骤
适用场景
- 01检查优惠券重复兑换或交易重复
- 02测试并行请求是否绕过使用次数限制
- 03验证余额检查与扣款间的竞态
- 04记录并发漏洞的重现条件
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jd-opensource/ joysafeter --skill pentest-race-conditions安装后在 Claude Code 中输入/pentest-race-conditions确认已加载。
附带文件references/tools.mdreferences/workflows.md
详细介绍
渗透测试:竞态条件
目的
利用无法原子化处理并发请求的应用,绕过限制,实现重复消费、限制绕过,以及通过并行请求提升权限。标准 WSTG 分类中未涵盖此类问题,但它们在实际评估中至关重要。
前提条件
授权要求
- 书面授权,明确包含并发测试范围
- 测试账户,具有余额、配额或有限使用次数的资源
- 针对金融操作或状态变更操作的回滚计划
- 了解速率限制——与目标所有者确认可接受的突发请求量
环境设置
- 安装 Turbo Intruder 扩展的 Burp Suite Professional
- 使用 asyncio/aiohttp 编写并行请求脚本的 Python 3.x
- 用于基于 Shell 的并发操作的 GNU parallel 或 xargs
- 多个已通过身份验证的会话(独立的 Cookie/令牌)
核心工作流
- 目标识别:找出容易出现竞态条件的操作——余额转账、优惠券兑换、库存购买、投票/点赞系统、令牌生成、文件操作。
- 单端点竞态:同时发送 N 个相同请求,绕过「每位用户仅限一次」的限制,造成交易重复(超限)。
- 多端点 TOCTOU:利用检查与使用之间的时间差——先验证优惠券,再应用优惠券;先检查余额,再扣款。
- 会话级竞态:并行执行密码更改和会话刷新,或同时更改角色并执行操作。
- 数据库级竞态:利用缺少行级锁的情况,测试乐观并发控制与悲观并发控制,并触发死锁。
- 时序同步:使用单数据包攻击技术(Turbo Intruder),在微秒级同步请求。
- 影响文档:使用精确的复现步骤和时序要求,记录财务/运营影响。
工具类别
| 类别 | 工具 | 用途 |
|---|---|---|
| 时序攻击 | Turbo Intruder, race-the-web | 在微秒级同步并行请求 |
| 异步脚本 | Python asyncio/aiohttp, httpx | 自定义竞态条件脚本 |
| Shell 并发 | GNU parallel, xargs, curl | 快速测试并行请求 |
| 代理分析 | Burp Suite Repeater | 重放请求并观察时序 |
| 数据库监控 | pg_stat_activity, SHOW PROCESSLIST | 观察锁争用和死锁 |
参考资料
references/tools.md- 工具函数签名和参数references/workflows.md- 攻击模式定义和测试用例
评论
支持 Markdown