
Инструментарий Prime для аудита и эксплуатации межсайтовой подделки запросов (CSRF).
XSRFProbe — это продвинутый инструментарий для аудита и эксплуатации межсайтовой подделки запросов (CSRF/XSRF). Оснащённый мощным движком сканирования и множеством систематических проверок, он способен обнаруживать большинство случаев уязвимостей CSRF, связанных с ними обходов, а также генерировать эксплуатируемые proof of concept для каждой найденной уязвимости. Дополнительная информация о работе XSRFProbe приведена в разделе XSRFProbe Internals на вики.
Вики XSRFProbe • Начало работы • Общее использование • Расширенное использование • Внутреннее устройство XSRFProbe • Галерея
Origin: null), а также обходы через переопределение метода и Content-Type.--max-urls, --max-depth и --crawl-timeout).У каждой проверки XSRFProbe есть уникальный идентификатор. ID отображается в выводе консоли (например, [T6] VULNERABLE: ...) и сохраняется как поле test_id каждой находки в JSON-отчёте (наряду с её severity и, где применимо, примечанием об exploitability в поле details), так что каждая находка ссылается на конкретную проверку, которая её породила.
| ID | Категория | Проверка |
|---|---|---|
D1 | Наличие токена | Отсутствует анти-CSRF токен (общая подделка запроса) |
D2 | Наличие токена | Форма входа не имеет CSRF-токена (login CSRF) |
T2 | Манипуляция токеном | Валидация привязана к методу запроса (переключение GET ↔ POST) |
T3 | Манипуляция токеном | Токен можно полностью опустить |
T4 | Манипуляция токеном | Токен не привязан к сессии пользователя (воспроизведение между сессиями) |
T5 | Манипуляция токеном | Токен привязан к cookie, не связанной с сессией (например, csrfKey) |
T6 | Манипуляция токеном | Наивный double-submit cookie (cookie == тело, без привязки) |
T7 | Манипуляция токеном | Принимается пустое значение токена |
T8 | Манипуляция токеном | Токен в пользовательском заголовке может быть опущен или подделан |
M1 | Метод / Content-Type | Переопределение HTTP-метода через параметр _method |
M2 | Метод / Content-Type | Переопределение HTTP-метода через заголовок X-HTTP-Method-Override |
M4 | Метод / Content-Type | Обход валидации через альтернативный Content-Type |
R0 | Referer | Заголовок Referer не проверяется при отправке формы |
R1 | Referer | Обход валидации Referer путём удаления заголовка |
R2a | Referer | Обход регулярного выражения Referer — цель как поддомен атакующего |
R2b | Referer | Обход регулярного выражения Referer — цель в строке запроса |
R2c | Referer | Обход регулярного выражения Referer — цель в пути |
O1 | Origin | Обход валидации Origin с помощью Origin: null |
O2 | Origin | Обход валидации Origin с помощью трюка с поддоменом |
O3 | Origin | Обход валидации Origin путём удаления заголовка |
S2 | SameSite (браузер) | Обход SameSite=Strict через клиентский перенаправляющий гаджет |
S3 | SameSite (браузер) | Обход SameSite=Strict через XSS на смежном поддомене |
S4 | SameSite (браузер) | Обход SameSite=Lax через обновление cookie/OAuth-поток |
C1 | Состояние cookie | Анализ атрибута SameSite cookie (None/Lax/Strict) |
C2 | Состояние cookie | Атрибут SameSite не установлен для cookies |
E1 | Стойкость токена | Токен использует слабое/структурированное хэш-кодирование |
A1 | Стойкость токена | Анализ предсказуемости/возможности подделки токена после сканирования |
Проверки
S*требуют опциональной интеграции headless-браузера (--browser). ПроверкиT*/M*/R*/O*— это проверки на уровне HTTP, управляемые движком сравнения ответов/бенчмаркинга.
Давайте посмотрим на несколько реальных сценариев работы XSRFProbe: