
🚫 Herramienta avanzada para investigadores de seguridad para evadir restricciones 403/40X mediante técnicas inteligentes y manipulación adaptativa de solicitudes. Rápida. Precisa. Efectiva.
nomore403 es una herramienta de línea de comandos para probar bypass de control de acceso HTTP e inconsistencias en analizadores alrededor de respuestas 401, 403 y relacionadas.
La herramienta está diseñada para trabajo práctico en seguridad web: bug bounty, pruebas de penetración, revisiones de seguridad y pruebas de regresión de reglas de control de acceso. Automatiza un amplio conjunto de mutaciones de solicitudes, captura una línea de base, filtra falsos positivos comunes y resalta las respuestas con mayor probabilidad de representar un bypass significativo.
Dada una URL objetivo, nomore403:
curl para los hallazgos interesantes.Esta herramienta no "rompe la autenticación" por sí sola. Ayuda a encontrar diferencias entre cómo los frontends, proxies, WAFs, CDNs, enrutadores de aplicación y backends interpretan la misma solicitud.
404 o de ruta padre predeterminadasnet/http normalizagit clone https://github.com/devploit/nomore403
cd nomore403
go build
go install github.com/devploit/nomore403@latest
Si instalas con go install, el directorio payloads/ no se instala automáticamente. Clona el repositorio y apunta la herramienta a ese directorio con -f si es necesario.
curl disponible en PATH para técnicas que dependen de él, como:
http-versionshttp-parserabsolute-uriLa mayoría de las técnicas funcionan sin curl.
Escaneo básico:
./nomore403 -u https://target.tld/admin
Usar un proxy y salida verbosa:
./nomore403 -u https://target.tld/admin -x http://127.0.0.1:8080 -v
Ejecutar solo técnicas seleccionadas:
./nomore403 -u https://target.tld/admin -k headers,absolute-uri,raw-desync
Leer objetivos desde stdin:
cat urls.txt | ./nomore403
Usar un archivo de solicitud estilo Burp:
./nomore403 --request-file request.txt
Escribir salida legible 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 línea visible es una respuesta que difirió lo suficiente de la línea de base como para superar el filtrado.
Campos típicos:
hdr-ip, abs-uri o parser18., 61+ o 100!Los resúmenes finales muestran las transiciones de línea de base a resultado:
403=>200 suele merecer atención inmediata403=>302 puede ser interesante, pero aún puede resolverse en una barrera de autenticación403->400 o 403->404 suelen indicar diferencias de analizador o enrutamiento, no un bypassAl final de la ejecución, nomore403 imprime:
LIKELY BYPASS
curl reproducibleINTERESTING VARIATIONS
no visible results
La puntuación es heurística. Está destinada a priorizar resultados, no a probar explotación.
La herramienta generalmente recompensa:
2xx3xxLocationLa herramienta generalmente penaliza:
400 y 404 a menos que la respuesta también cambie sustancialmenteInterpretación recomendada:
HIGH: probablemente accionable; revisar primeroMED: candidato plausible; generalmente vale la pena una reproducción manualLOW: diferencia de analizador, anomalía de enrutamiento o comportamiento de baja confianzaLa autocalibración está habilitada por defecto en modo no verboso.
Envía solicitudes a varias rutas inexistentes y construye una línea de base para el comportamiento de error predeterminado del objetivo. También realiza una solicitud de calibración basada en fragmentos para reducir falsos positivos causados por rutas sin fragmentos.
Usa estas banderas para controlarlo:
--no-calibrate
--strict-calibrate
Location, Content-Type y ServerLa herramienta ejecuta todas las técnicas por defecto a menos que especifiques -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 y cadenas de confianza relacionadasproto-confusion
X-Forwarded-Proto, e indicaciones de esquema relacionadasendpaths
payloads/endpathsmidpaths
payloads/midpathsdouble-encoding
unicode
%uXXXX y UTF-8 demasiado largospath-case
path-normalization
suffix-tricks
.json, .css, y alternancias de formato de consultahttp-versions
HTTP/1.0 y HTTP/2http-parser
curl deliberadamente mínima para exponer diferencias de analizador cliente/frontend por separado de http-versionsabsolute-uri
curl --request-targetraw-duplicates
raw-authority
raw-desync
Algunas técnicas necesitan control a nivel de red que el cliente net/http de Go no proporciona. Esas técnicas usan el motor HTTP raw.
Las técnicas raw actualmente incluyen:
raw-duplicatesraw-authorityraw-desync%uXXXXNotas:
La herramienta puede inferir indicios de frontend como:
Estos indicios se utilizan para mejorar el orden de las técnicas y el contexto de salida.
Importante:
-k, la herramienta aún ejecuta el conjunto completo de técnicas predeterminadasLos resultados de alto valor se reproducen automáticamente en el resumen final.
La salida de reproducción ayuda a responder:
El resumen final incluye:
1/1 o 2/2 coincidieron en la reproduccióncurl reproducible para resultados interesantes./nomore403 -u https://target.tld/admin
./nomore403 -u targets.txt
cat targets.txt | ./nomore403
./nomore403 --request-file request.txt
Los archivos de solicitud son útiles al reproducir tráfico capturado en Burp u otro proxy.
Usa --payload-position cuando quieras inyectar payloads en marcadores explícitos en lugar de depender solo de la lógica de mutación de endpath y midpath incorporada.
Ejemplo:
./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
Ejecuta ./nomore403 --help para la CLI completa y actualizada.
Banderas clave:
-u, --uri
-k, --technique
-x, --proxy
-H, --header
-i, --bypass-ip
-v, --verbose
--json
--jsonl
--no-calibrate
--strict-calibrate
El modo predeterminado está optimizado para revisión interactiva y triage.
Usa --json para un único documento estructurado.
Usa --jsonl cuando quieras:
El directorio payloads/ contiene listas utilizadas por varias técnicas.
Los archivos actuales incluyen:
httpmethodsheadersipssimpleheadersendpathsmidpathsuseragentsPuedes personalizar estos archivos para adaptarlos a tus objetivos o flujo de trabajo.
curl requieren curl en PATHUsa esta herramienta solo en sistemas que estés autorizado a probar.
Los autores y colaboradores no son responsables del mal uso. Eres responsable de cumplir con la ley aplicable, las reglas del programa y la política organizacional.
Las contribuciones son bienvenidas.
Áreas útiles para contribuir incluyen:
Antes de contribuir con una técnica, prefiere:
Este proyecto se publica bajo la Licencia MIT. Ver 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 deshabilitar resúmenes