
🚫 Ferramenta avançada para pesquisadores de segurança contornarem restrições 403/40X através de técnicas inteligentes e manipulação adaptativa de requisições. Rápido. Preciso. Eficaz.
nomore403 é uma ferramenta de linha de comando para testar desvios de controle de acesso HTTP e inconsistências de análise sintática em torno das respostas 401, 403 e relacionadas.
A ferramenta foi projetada para trabalho prático em segurança web: bug bounty, testes de penetração, revisões de segurança e testes de regressão de regras de controle de acesso. Ela automatiza um conjunto amplo de mutações de requisição, captura uma linha de base, filtra falsos positivos comuns e destaca as respostas com maior probabilidade de representar um desvio significativo.
Dada uma URL alvo, o nomore403:
curl para descobertas interessantes.Esta ferramenta não "quebra autenticação" por si só. Ela ajuda a encontrar diferenças entre como frontends, proxies, WAFs, CDNs, roteadores de aplicação e backends interpretam a mesma requisição.
404 ou de caminho painet/http normalizagit clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
Se você instalar com go install, o diretório payloads/ não é instalado automaticamente. Clone o repositório e aponte a ferramenta para esse diretório com -f, se necessário.
curl disponível no PATH para técnicas que dependem dele, como:
http-versionshttp-parserabsolute-uriA maioria das técnicas funciona sem curl.
Escaneamento básico:
./nomore403 -u https://target.tld/admin
Usar um proxy e saída verbosa:
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
Executar apenas técnicas selecionadas:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
Ler alvos a partir do stdin:
cat urls.txt | ./nomore403
Usar um arquivo de requisição estilo Burp:
./nomore403 --request-file request.txt
Escrever saída legível por máquina:
./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'
Cada linha visível é uma resposta que diferiu o suficiente da linha de base para sobreviver à filtragem.
Campos típicos:
hdr-ip, abs-uri ou parser18., 61+ ou 100!Os resumos finais mostram as transições de linha de base para resultado:
403=>200 geralmente merece atenção imediata403=>302 pode ser interessante, mas ainda pode redirecionar para dentro de uma barreira de autenticação403->400 ou 403->404 geralmente indicam diferenças de análise sintática ou roteamento, em vez de um bypassAo final da execução, o nomore403 imprime:
LIKELY BYPASS (BYPASS PROVÁVEL)
curl reproduzívelINTERESTING VARIATIONS (VARIAÇÕES INTERESSANTES)
no visible results (nenhum resultado visível)
A pontuação é heurística. Ela se destina a priorizar resultados, não a provar exploração.
A ferramenta geralmente recompensa:
2xx3xxLocationA ferramenta geralmente desvaloriza:
400 e 404, a menos que a resposta também mude substancialmenteInterpretação recomendada:
HIGH: provavelmente acionável; revise primeiroMED: candidato plausível; geralmente vale a reprodução manualLOW: diferença de análise sintática, anomalia de roteamento ou comportamento de menor confiançaA autocalibração está habilitada por padrão no modo não verboso.
Ela envia requisições para vários caminhos inexistentes e constrói uma linha de base para o comportamento padrão de erro do alvo. Também realiza uma requisição de calibração baseada em fragmento para reduzir falsos positivos causados por caminhos com fragmento removido.
Use estas flags para controlá-la:
--no-calibrate
--strict-calibrate
Location, Content-Type e ServerA ferramenta executa todas as técnicas por padrão, a menos que você especifique -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 e cadeias de confiança relacionadasproto-confusion
X-Forwarded-Proto, e dicas de esquema relacionadasendpaths
payloads/endpathsmidpaths
payloads/midpathsdouble-encoding
unicode
%uXXXX e UTF-8 superlongopath-case
path-normalization
suffix-tricks
.json, .css, e alternâncias de formato de queryhttp-versions
HTTP/1.0 e HTTP/2http-parser
curl deliberadamente mínima para expor diferenças de análise sintática entre cliente/frontend, separadamente do http-versionsabsolute-uri
curl --request-targetraw-duplicates
raw-authority
raw-desync
Algumas técnicas precisam de controle ao nível da transmissão que o cliente net/http do Go não oferece. Essas técnicas usam o motor HTTP bruto.
As técnicas brutas atualmente incluem:
raw-duplicatesraw-authorityraw-desync%uXXXXObservações:
A ferramenta pode inferir dicas de frontend como:
Essas dicas são usadas para melhorar a ordenação das técnicas e o contexto da saída.
Importante:
-k, a ferramenta ainda executa o conjunto completo de técnicas padrãoResultados de alto valor são reproduzidos automaticamente no resumo final.
A saída da reprodução ajuda a responder:
O resumo final inclui:
1/1 ou 2/2 matched on replaycurl reproduzível para resultados interessantes./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
Arquivos de requisição são úteis ao reproduzir tráfego capturado no Burp ou em outro proxy.
Use --payload-position quando quiser injetar payloads em marcadores explícitos em vez de depender apenas da lógica embutida de mutação de endpaths e midpaths.
Exemplo:
./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
Execute ./nomore403 --help para a CLI completa e atualizada.
Flags principais:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
O modo padrão é otimizado para revisão interativa e triagem.
Use --json para um único documento estruturado.
Use --jsonl quando quiser:
O diretório payloads/ contém listas usadas por várias técnicas.
Arquivos atuais incluem:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragentsVocê pode personalizar esses arquivos para adequá-los aos seus alvos ou fluxo de trabalho.
curl exigem curl no PATHUse esta ferramenta apenas em sistemas que você está autorizado a testar.
Os autores e colaboradores não são responsáveis pelo uso indevido. Você é responsável por cumprir as leis aplicáveis, regras do programa e políticas organizacionais.
Contribuições são bem-vindas.
Áreas úteis para contribuição incluem:
Antes de contribuir com uma técnica, prefira:
Este projeto é distribuído sob a Licença MIT. Veja 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 para desabilitar resumos