mcpField
C
competition-race-condition-state-drift

competition-race-condition-state-drift

github.com/zhaoxuya520安全43.7k94 次安装5 周前更新
代码仓库

关于 competition-race-condition-state-drift

用于分析 CTF 挑战中竞争条件与状态漂移的安全技能,须在 `$ctf-sandbox-orchestrator` 建立沙箱假设和证据优先级后使用。它侧重可复现的时序窗口、状态边界和最小竞态序列。

主要功能

  1. 01梳理可变状态与事务边界
  2. 02复现受控并发请求
  3. 03对比基线与竞态运行
  4. 04追踪时序和状态变化
  5. 05提炼可重放的最小竞态序列

适用场景

  1. 01测试过期读取或锁缺口
  2. 02调查重复请求与幂等性
  3. 03追踪延迟提交或重试副作用

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/zhaoxuya520/reverse-skill --skill competition-race-condition-state-drift

安装后在 Claude Code 中输入/competition-race-condition-state-drift确认已加载。

附带文件agents/openai.yamlreferences/race-condition-state-drift.md

详细介绍

竞争条件状态漂移

仅当 $ctf-sandbox-orchestrator 已处于活动状态,并已建立沙箱假设、节点归属和证据优先级之后,才将此技能作为下游专项技能使用。如果尚未完成这些,请先返回 $ctf-sandbox-orchestrator。

当决定性行为取决于请求时序、异步顺序、锁间隙或过期状态时,使用此技能。

除非用户明确要求英文,否则用简体中文回复。

快速开始

  1. 首先识别可变状态:行、缓存键、队列负载、会话字段、计数器或文件。
  2. 用最小的并发序列和固定的时序假设进行复现。
  3. 捕获一次基线运行和一次竞争运行,仅更改一个变量。
  4. 分别追踪读取、检查、写入、入队和提交边界。
  5. 从干净重置开始证明最终状态漂移。

工作流

1. 映射可变边界
  • 记录事务范围、锁行为、重试逻辑、幂等键、缓存失效和队列交接。
  • 注意读取-检查-写入在哪些地方被拆分到不同请求、worker 或服务中。
  • 确保每个边界都绑定到精确的时间戳或序列号。
2. 复现时序窗口
  • 使用受控延迟、重复请求或重排 worker 执行来构建确定性的并发输入。
  • 在相同负载下比较接受路径和拒绝路径。
  • 记录顺序变化时哪个条件发生翻转。
3. 缩减为决定性竞争链
  • 压缩为:请求 A 和 B 的顺序 -> 过期检查或锁间隙 -> 冲突写入 -> 产生的能力或产物。
  • 说明根本原因是缺少锁、幂等性薄弱、过期缓存读取、异步提交延迟,还是重试副作用。
  • 如果路径变为队列主导,则交给队列 worker 漂移技能处理。

阅读此参考

  • 加载 references/race-condition-state-drift.md 以获取竞争测试框架思路、证据块和一致性检查。

需要保留的内容

  • 可变键、事务边界、锁行为和幂等标记
  • 基线和竞争运行的时间戳或序列化追踪
  • 一个可证明漂移的最小可重放并发序列

评论

支持 Markdown