![]() |
https://forum.antichat.xyz/attachmen...b7c8973b34.png
Можешь открыть эту статью, когда нужно быстро вспомнить: какой extension ставить под конкретную категорию OWASP, как его настроить, что смотреть в выводе. Статья основана на OWASP Top 10 2021; в августе 2025 опубликован RC новой версии с изменениями в классификации - сверяйтесь с owasp.org/Top10. Prerequisites: Burp Suite Pro (актуальная версия), BApp Store доступен, Jython 2.7 настроен для Python-extensions (Python 2 синтаксис - да, в 2025 году, не спрашивайте); JRuby - только если работаете с редкими Ruby-extensions. Turbo Intruder и Param Miner требуют Burp Pro - в Community Edition либо работают криво, либо не работают вовсе. Область применения: OWASP Top 10 2021 (2025 RC вносит изменения в классификацию - сверяйтесь с owasp.org/Top10). ATT&CK-техники: T1190 (Exploit Public-Facing Application), T1595.002 (Vulnerability Scanning), T1110 (Brute Force). Основные команды OWASP категорияExtensionУстановка / действиеЧто даётA01 – Broken Access Control Код:
AutorizeКод:
AuthMatrixКод:
Additional Scanner ChecksКод:
X-Content-Type-OptionsКод:
X-XSS-ProtectionКод:
ActiveScan++Код:
Reflected ParametersКод:
JSpectorКод:
eval()Код:
document.write()Код:
Turbo IntruderКод:
HTTP Request SmugglerКод:
Retire.jsКод:
JWT EditorКод:
SAML RaiderКод:
Java Deserialization ScannerКод:
Logger++Код:
Collaborator EverywhereКод:
X-Forwarded-HostКод:
Param MinerЧастые сценарии IDOR через Autorize (A01) Работает, когда приложение использует числовые/UUID идентификаторы в URL или теле запроса. Настраиваешь один раз - Autorize молотит фоном весь сеанс. Код: Код:
1. Autorize → вставить session cookie пользователя B (низкие права)Код:
Autorize StatusКод:
Bypassed!Race condition через Turbo Intruder (A04) Актуально для «применить промокод», «перевод средств», «регистрация уникального username» - всё, где бизнес-логика полагается на «один запрос = одно действие». Стандартный Intruder тут слишком медленный, даже не пытайтесь. Python: Код:
# Single-packet attack (James Kettle, 2023) - все запросы в одном TCP-пакетеКод:
200 OKОбнаружение SSRF через Collaborator Everywhere (A10) Тут вообще ничего делать не нужно - просто браузишь приложение после установки extension. Код: Код:
BApp Store → Collaborator Everywhere → InstallКод:
X-Forwarded-HostКод:
X-Forwarded-ForКод:
RefererJWT-атака alg:none через JWT Editor (A07) Классика - когда сервер принимает JWT без проверки подписи. Встречается реже, чем хотелось бы (нам), но когда встречается - это сразу critical. Код: Код:
Repeater → вкладка JWT Editor → выбрать токенКод:
"alg":"none"Gotchas & подводные камни Вот тут начинается самое интересное - то, чего нет в документации к extensions:
ЗадачаExtensionКлючевое действиеIDOR / privilege escalation Код:
AutorizeКод:
Param MinerКод:
JWT EditorКод:
Turbo IntruderКод:
Collaborator EverywhereКод:
Reflected ParametersКод:
Retire.jsКод:
HTTP Request SmugglerВопрос к читателям При тестировании IDOR через Autorize на приложениях с GraphQL - как вы обходите проблему, что Autorize реплицирует запрос целиком, а GraphQL-эндпоинт один ( Код:
/graphqlКод:
userId |
Крутая тема, спасибо за шпаргалку! Сам когда-то мучился с IDOR и GraphQL — Autorize реально не всегда катит, там body надо умно подменять, чтобы запросы корректно шли. Часто проще написать свой скрипт или глянуть в сторону InQL, чтобы вытаскивать нужные поля, а потом уже прогонять через Autorize. В общем, с GraphQL там своя песня, универсального рецепта пока не видел.
|
Тоже сталкивался с проблемой, что Autorize тупо гоняет одинаковый запрос на /graphql, а там всё в теле. Обычно подменяю userId руками в Repeater или параллельно тырю инфу через InQL, чтобы понять, какие поля менять. С кастомными расширениями пока не шарю, но идея норм — автоматизировать подмену прямо в теле, это сильно сэкономит время.
|
Автор, круто расписал, но не удивлюсь, если половина народу просто забьёт и будет крутить Autorize на GraphQL как есть — ведь проще просто юзать Repeater и руками в теле ковыряться. Автоматизация — это, конечно, мечта, но пока кастомные расширения в таких задачах выглядят как табличка «работа для гиков». Главное — не зацикливаться и выбирать инструменты под задачу, а не наоборот.
|
Ну не всё тут так просто с этими расширениями, особенно когда речь о GraphQL и автоматике. Autorize действительно далеко не идеален для подмены в теле запроса, и чаще приходится плясать с костылём или использовать InQL для добычи нужных данных. Кастомные плагины через Montoya — это уже из разряда продвинутых приблуд, и не факт, что всегда стоит заморачиваться. Иногда проще руками, чем тратить время на настройку.
|
Автор, с Montoya — это уже сложновато и не всегда оправдано, потому что много телодвижений с настройкой. В большинстве случаев проще всё равно ковырять тело руками в repeater или юзать InQL для разведки. Автоматизация, конечно, круто, но часто она либо хрупкая, либо требует много времени на доработку — не всем нужно или удобно заморачиваться с кастомными расширениями.
|
Montoya — конечно, круто, но реально геморрой с настройками, особенно если цейтнот. Авториз обычной связкой InQL + Repeater — проще свежакью делать. Кастомы через Montoya — это для тех, кто любит долго и мучительно, а не для тех, кто хочет быстро пробить и забыть. Так что не переоценивайте автоматизацию, иногда лучше руками, чем потом полдня дебажить плагин.
|
| Время: 13:06 |