403 & 401 Bypasses
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
HTTP Verbs/Methods Fuzzing
Intenta usar diferentes verbos para acceder al archivo: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK
- Verifica los encabezados de respuesta, tal vez se pueda proporcionar alguna información. Por ejemplo, una respuesta 200 a HEAD con
Content-Length: 55
significa que el verbo HEAD puede acceder a la info. Pero aún necesitas encontrar una manera de exfiltrar esa info. - Usar un encabezado HTTP como
X-HTTP-Method-Override: PUT
puede sobrescribir el verbo utilizado. - Usa el verbo
TRACE
y si tienes mucha suerte, tal vez en la respuesta también puedas ver los encabezados añadidos por proxies intermedios que podrían ser útiles.
HTTP Headers Fuzzing
-
Cambia el encabezado Host a algún valor arbitrario (que funcionó aquí)
-
Intenta usar otros User Agents para acceder al recurso.
-
Fuzz HTTP Headers: Intenta usar Encabezados de Proxy HTTP, autenticación básica y NTLM de fuerza bruta (con solo algunas combinaciones) y otras técnicas. Para hacer todo esto he creado la herramienta fuzzhttpbypass.
-
X-Originating-IP: 127.0.0.1
-
X-Forwarded-For: 127.0.0.1
-
X-Forwarded: 127.0.0.1
-
Forwarded-For: 127.0.0.1
-
X-Remote-IP: 127.0.0.1
-
X-Remote-Addr: 127.0.0.1
-
X-ProxyUser-Ip: 127.0.0.1
-
X-Original-URL: 127.0.0.1
-
Client-IP: 127.0.0.1
-
True-Client-IP: 127.0.0.1
-
Cluster-Client-IP: 127.0.0.1
-
X-ProxyUser-Ip: 127.0.0.1
-
Host: localhost
Si el ruta está protegida, puedes intentar eludir la protección de la ruta usando estos otros encabezados:
-
X-Original-URL: /admin/console
-
X-Rewrite-URL: /admin/console
-
Si la página está detrás de un proxy, tal vez sea el proxy el que te impide acceder a la información privada. Intenta abusar de HTTP Request Smuggling o hop-by-hop headers.
-
Fuzz encabezados HTTP especiales buscando diferentes respuestas.
-
Fuzz encabezados HTTP especiales mientras haces fuzzing de HTTP Methods.
-
Elimina el encabezado Host y tal vez podrás eludir la protección.
Path Fuzzing
Si /path está bloqueado:
- Intenta usar /%2e/path _(si el acceso está bloqueado por un proxy, esto podría eludir la protección). Intenta también_** /%252e**/path (doble codificación de URL)
- Intenta Unicode bypass: /%ef%bc%8fpath (Los caracteres codificados en URL son como "/") así que cuando se codifiquen de nuevo será //path y tal vez ya habrás eludido la verificación del nombre /path
- Otras elusiones de ruta:
- site.com/secret –> HTTP 403 Forbidden
- site.com/SECRET –> HTTP 200 OK
- site.com/secret/ –> HTTP 200 OK
- site.com/secret/. –> HTTP 200 OK
- site.com//secret// –> HTTP 200 OK
- site.com/./secret/.. –> HTTP 200 OK
- site.com/;/secret –> HTTP 200 OK
- site.com/.;/secret –> HTTP 200 OK
- site.com//;//secret –> HTTP 200 OK
- site.com/secret.json –> HTTP 200 OK (ruby)
- Usa toda esta lista en las siguientes situaciones:
- /FUZZsecret
- /FUZZ/secret
- /secretFUZZ
- Otras elusiones de API:
- /v3/users_data/1234 --> 403 Forbidden
- /v1/users_data/1234 --> 200 OK
- {“id”:111} --> 401 Unauthriozied
- {“id”:[111]} --> 200 OK
- {“id”:111} --> 401 Unauthriozied
- {“id”:{“id”:111}} --> 200 OK
- {"user_id":"<legit_id>","user_id":"<victims_id>"} (JSON Parameter Pollution)
- user_id=ATTACKER_ID&user_id=VICTIM_ID (Parameter Pollution)
Parameter Manipulation
- Cambia el valor del parámetro: De
id=123
-->id=124
- Agrega parámetros adicionales a la URL:
?
id=124
—->id=124&isAdmin=true
- Elimina los parámetros
- Reordena los parámetros
- Usa caracteres especiales.
- Realiza pruebas de límite en los parámetros — proporciona valores como -234 o 0 o 99999999 (solo algunos valores de ejemplo).
Protocol version
Si usas HTTP/1.1 intenta usar 1.0 o incluso prueba si soporta 2.0.
Other Bypasses
- Obtén el IP o CNAME del dominio y trata de contactarlo directamente.
- Intenta estresar el servidor enviando solicitudes GET comunes (Funcionó para este tipo con Facebook).
- Cambia el protocolo: de http a https, o de https a http
- Ve a https://archive.org/web/ y verifica si en el pasado ese archivo fue accesible mundialmente.
Brute Force
- Adivina la contraseña: Prueba las siguientes credenciales comunes. ¿Sabes algo sobre la víctima? ¿O el nombre del desafío CTF?
- Brute force: Intenta autenticación básica, digest y NTLM.
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
Herramientas Automáticas
- https://github.com/lobuhi/byp4xx
- https://github.com/iamj0ker/bypass-403
- https://github.com/gotr00t0day/forbiddenpass
- Burp Extension - 403 Bypasser
- Forbidden Buster
- NoMoreForbidden
tip
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.