
🚫 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.