mcpField
P
pentest-race-conditions

pentest-race-conditions

github.com/jd-opensource安全31563 次安装28 周前更新
代码仓库

关于 pentest-race-conditions

用于授权渗透测试的安全技能,帮助测试人员发现并验证并发请求导致的竞态条件。涵盖同步请求、跨端点 TOCTOU 和会话级测试,并提供影响记录流程。

主要功能

  1. 01识别易受竞态影响的操作
  2. 02并发请求与请求同步测试
  3. 03跨端点 TOCTOU 检查
  4. 04会话及数据库竞态测试
  5. 05记录影响与复现步骤

适用场景

  1. 01检查优惠券重复兑换或交易重复
  2. 02测试并行请求是否绕过使用次数限制
  3. 03验证余额检查与扣款间的竞态
  4. 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/令牌)

核心工作流

  1. 目标识别:找出容易出现竞态条件的操作——余额转账、优惠券兑换、库存购买、投票/点赞系统、令牌生成、文件操作。
  2. 单端点竞态:同时发送 N 个相同请求,绕过「每位用户仅限一次」的限制,造成交易重复(超限)。
  3. 多端点 TOCTOU:利用检查与使用之间的时间差——先验证优惠券,再应用优惠券;先检查余额,再扣款。
  4. 会话级竞态:并行执行密码更改和会话刷新,或同时更改角色并执行操作。
  5. 数据库级竞态:利用缺少行级锁的情况,测试乐观并发控制与悲观并发控制,并触发死锁。
  6. 时序同步:使用单数据包攻击技术(Turbo Intruder),在微秒级同步请求。
  7. 影响文档:使用精确的复现步骤和时序要求,记录财务/运营影响。

工具类别

类别工具用途
时序攻击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