race-condition
Тестирование состояний гонки и TOCTOU для веб-приложений. Применяется при проверке однократных операций, обходе rate-limit, атаках Turbo Intruder и HTTP/2, а также уязвимостей CWE-362.
AIyaklang
official
Разработка
★ 2.4k
Что делает навык
Skill предназначен для тестирования состояний гонки (race conditions) и уязвимостей TOCTOU в веб-приложениях, рассматривая их как проблемы целостности авторизации и состояния. Он выявляет ситуации, когда неблокирующее чтение и последующая запись позволяют множеству запросов наблюдать устаревшее состояние.
Когда применять
- Проверка однократных операций, таких как погашение купонов, получение бонусов или использование одноразовых кодов.
- Тестирование списания баланса, квот или остатков товаров (инвентаря) на предмет двойного списания.
- Обход ограничений скорости (rate-limit) и проверка уязвимостей CWE-362 с использованием Turbo Intruder.
- Анализ бизнес-логики, связанной с приглашениями, реферальными бонусами и верификацией (email, MFA).
Как работает
- Идентифицировать конечные точки, где проверка и обновление состояния, вероятно, не являются атомарной операцией базы данных.
- Скомбинировать параллельный транспорт (синхронизация по последнему байту HTTP/1.1, однопакетный HTTP/2, шлюзы Turbo Intruder) с анализом ответов приложения.
- Искать доказательства уязвимости: дублирующиеся успешные ответы, несоответствия в балансах или дублирующиеся строки в журнале операций.
- При необходимости перекрестно загружать навык business-logic-vulnerabilities для сложных бизнес-процессов.
Примеры запросов агенту
Проведи тест состояний гонки на эндпоинте apply_coupon, чтобы проверить возможность двойного использования купона.
Проверь уязвимость TOCTOU на операции transfer, используя Turbo Intruder для отправки параллельных запросов.
Исследуй конечную точку claim_reward на предмет неблокирующего чтения и записи, проверяя целостность баланса.
Что понадобится
- Инструмент Turbo Intruder
- Доступ к целевому веб-приложению для отправки параллельных запросов
- Навык business-logic-vulnerabilities (рекомендуется для кросс-загрузки)
Описание составлено по SKILL.md навыка, сверено 07.10.2026.
Как подключить
1Скачать навык
# возьмите папку навыка «race-condition» из репозитория:
# https://github.com/yaklang/hack-skills
2Положить папку с
SKILL.md к навыкам ассистента# положите папку навыка туда, где ассистент ищет skills:
cp -r race-condition/ ~/.claude/skills/race-condition/
Навык — папка с файлом SKILL.md (описание + инструкции) и опциональными скриптами. Ассистент (Claude, Claude Code и совместимые) подхватывает его по описанию и следует шагам.