
🚫 Продвинутый инструмент для специалистов по безопасности для обхода ограничений 403/40X с помощью умных техник и адаптивного манипулирования запросами. Быстрый. Точный. Эффективный.
nomore403 — это инструмент командной строки для тестирования обхода контроля доступа HTTP и несоответствий парсеров вокруг ответов 401, 403 и связанных с ними.
Инструмент предназначен для практической работы в области веб-безопасности: bug bounty, пентестинг, проверки безопасности и регрессионное тестирование правил контроля доступа. Он автоматизирует широкий набор мутаций запросов, фиксирует базовый уровень, фильтрует распространённые ложные срабатывания и выделяет ответы, которые с наибольшей вероятностью представляют собой значимый обход.
Для заданного целевого URL nomore403:
curl для интересных находок.Этот инструмент сам по себе не «ломает аутентификацию». Он помогает найти различия в интерпретации одного и того же запроса между фронтендами, прокси, WAF, CDN, маршрутизаторами приложений и бэкендами.
404 или ответов с родительским путёмnet/http нормализуетgit clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
При установке через go install каталог payloads/ не устанавливается автоматически. Клонируйте репозиторий и при необходимости укажите инструменту путь к этому каталогу с помощью -f.
curl в PATH для техник, которые от него зависят, например:
http-versionshttp-parserabsolute-uriБольшинство техник работают без curl.
Базовое сканирование:
./nomore403 -u https://target.tld/admin
Использование прокси и подробный вывод:
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
Запуск только выбранных техник:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
Чтение целей из stdin:
cat urls.txt | ./nomore403
Использование файла запроса в стиле Burp:
./nomore403 --request-file request.txt
Запись машиночитаемого вывода:
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
target: https://target.tld/admin method: GET frontend: AWS ELB/ALB payloads: payloads
calib: 404 | 1245b | ±50 | frag 703b
BASELINE
default 403 520 bytes https://target.tld/admin
FINDINGS
hdr-ip 100! 200 2048 bytes X-Original-URL: /
abs-uri 26. 403 236 bytes request-target: https://target.tld/admin
http 18. 400 122 bytes HTTP/2
no visible results: 17 techniques
━━━━━━━━━━━━━━ LIKELY BYPASS ━━━━━━━━━━━━━━━━━
[!100 HIGH] Header injection (IP) 403=>200 2048b
why: status 403->200, len Δ1528, body changed, type changed
item: X-Original-URL: /
curl: curl -i -sS -k -H 'User-Agent: nomore403' -H 'X-Original-URL: /' 'https://target.tld/admin'
Каждая видимая строка — это ответ, который достаточно отличается от базового, чтобы пройти фильтрацию.
Типичные поля:
hdr-ip, abs-uri или parser18., 61+ или 100!Итоговые сводки показывают переходы от базового к результату:
403=>200 обычно заслуживает немедленного внимания403=>302 может быть интересно, но может снова привести к барьеру аутентификации403->400 или 403->404 обычно указывают на различия в парсере или маршрутизации, а не на обходВ конце выполнения nomore403 выводит:
LIKELY BYPASS
curlINTERESTING VARIATIONS
no visible results
Оценка эвристическая. Она предназначена для приоритизации результатов, а не для доказательства эксплуатации.
Инструмент обычно поощряет:
2xx3xxLocationИнструмент обычно понижает оценку:
400 и 404, если только ответ также существенно не изменилсяРекомендуемая интерпретация:
HIGH: вероятно, требует действий; проверять в первую очередьMED: plausible candidate; usually worth manual replayLOW: различие в парсере, аномалия маршрутизации или поведение с низкой уверенностьюАвтоматическая калибровка включена по умолчанию в не-подробном режиме.
Она отправляет запросы к нескольким несуществующим путям и строит базовый уровень для поведения цели по умолчанию при ошибках. Также выполняется калибровочный запрос на основе фрагмента для уменьшения ложных срабатываний, вызванных путями с удалёнными фрагментами.
Используйте эти флаги для управления:
--no-calibrate
--strict-calibrate
Location, Content-Type и ServerИнструмент запускает все техники по умолчанию, если не указан -k.
verbs
payloads/httpmethodsverbs-case
method-override