
🚫 Продвинутый инструмент для специалистов по безопасности для обхода ограничений 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
headers
hop-by-hop
Connectionheader-confusion
X-Original-URLhost-override
forwarded-trust
Forwarded, Client-IP, Cluster-Client-IP и связанные цепочки доверияproto-confusion
X-Forwarded-Proto, и связанные подсказки схемыendpaths
payloads/endpathsmidpaths
payloads/midpathsdouble-encoding
unicode
%uXXXX и overlong UTF-8path-case
path-normalization
suffix-tricks
.json, .css, , и переключения формата в стиле запросаhttp-versions
HTTP/1.0 и HTTP/2http-parser
curl для выявления различий в парсере клиента/фронтенда отдельно от http-versionsabsolute-uri
curl --request-targetraw-duplicates
raw-authority
raw-desync
Некоторые техники требуют управления на уровне передачи, которое не предоставляет клиент net/http в Go. Эти техники используют механизм сырого HTTP.
Текущие сырые техники включают:
raw-duplicatesraw-authorityraw-desync%uXXXX unicodeПримечания:
Инструмент может выводить подсказки о фронтенде, такие как:
Эти подсказки используются для улучшения упорядочивания техник и контекста вывода.
Важно:
-k, инструмент всё равно запускает полный набор техник по умолчаниюРезультаты с высокой оценкой автоматически повторяются в итоговой сводке.
Вывод повторения помогает ответить:
Итоговая сводка включает:
1/1 или 2/2 matched on replaycurl для интересных результатов./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
Файлы запросов полезны при повторном воспроизведении трафика, захваченного в Burp или другом прокси.
Используйте --payload-position, когда хотите внедрять полезные нагрузки в явные маркеры, а не полагаться только на встроенную логику мутации endpath и midpath.
Пример:
./nomore403 -u 'https://target.tld/§100§/admin/§200§' -p §
./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 absolute-uri,raw-duplicates,raw-authority,raw-desync
./nomore403 -u https://target.tld/admin -i 10.0.0.5
./nomore403 -u https://target.tld/admin --jsonl -o findings.jsonl
Запустите ./nomore403 --help для получения полной актуальной информации по CLI.
Ключевые флаги:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
Режим по умолчанию оптимизирован для интерактивного просмотра и триажа.
Используйте --json для одного структурированного документа.
Используйте --jsonl, когда хотите:
Каталог payloads/ содержит списки, используемые несколькими техниками.
Текущие файлы включают:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragentsВы можете настроить эти файлы под свои цели или рабочий процесс.
curl требуют наличия curl в PATHИспользуйте этот инструмент только на системах, которые вам разрешено тестировать.
Авторы и участники не несут ответственности за неправильное использование. Вы несёте ответственность за соблюдение действующего законодательства, правил программы и политики организации.
Вклад приветствуется.
Полезные области для вклада:
Перед добавлением техники отдавайте предпочтение:
Этот проект выпущен под лицензией MIT. См. LICENSE.
X-Forwarded-Portip-encoding
;index.htmlpayload-position
--retry-count
--retry-backoff-ms
--host-delay
--top-score-min
LIKELY BYPASS--variation-score-min
INTERESTING VARIATIONS--top
0 для отключения сводок