403 & 401 Bypasses

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Configuración instantáneamente disponible para evaluación de vulnerabilidades y pruebas de penetración. Ejecuta una pentest completa desde cualquier lugar con más de 20 herramientas y funciones que van desde la recolección de información hasta la generación de informes. No reemplazamos a los pentesters, desarrollamos herramientas personalizadas, módulos de detección y explotación para darles tiempo para profundizar, abrir shells y divertirse.

Fuzzing de Verbos/Métodos HTTP

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 obtener alguna información. Por ejemplo, una respuesta 200 a HEAD con Content-Length: 55 significa que el verbo HEAD puede acceder a la información. Aún así, necesitas encontrar una forma de extraer esa información.

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

Fuzzing de Encabezados HTTP

  • Cambia el encabezado Host a algún valor arbitrario (que funcionó aquí)

  • Intenta usar otros User Agents para acceder al recurso.

  • Fuzz de Encabezados HTTP: Intenta usar Encabezados de Proxy HTTP, autenticación HTTP básica y fuerza bruta NTLM (con solo unas pocas 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 la ruta está protegida, puedes intentar evitar 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 encabezados hop-by-hop.

  • Fuzz de encabezados HTTP especiales buscando diferentes respuestas.

  • Fuzz de encabezados HTTP especiales mientras fuzzing Métodos HTTP.

  • Elimina el encabezado Host y tal vez puedas evitar la protección.

Fuzzing de Rutas

Si /ruta está bloqueada:

  • Intenta usar /%2e/ruta _(si el acceso está bloqueado por un proxy, esto podría evitar la protección). Intenta también_** /%252e**/ruta (codificación de URL doble)

  • Intenta bypass Unicode: /%ef%bc%8fruta (Los caracteres codificados en URL son como "/") por lo que cuando se decodifiquen nuevamente será //ruta y tal vez ya hayas evitado la verificación del nombre /ruta

  • Otros bypass de rutas:

  • sitio.com/secreto –> HTTP 403 Prohibido

  • sitio.com/SECRETO –> HTTP 200 OK

  • sitio.com/secreto/ –> HTTP 200 OK

  • sitio.com/secreto/. –> HTTP 200 OK

  • sitio.com//secreto// –> HTTP 200 OK

  • sitio.com/./secreto/.. –> HTTP 200 OK

  • sitio.com/;/secreto –> HTTP 200 OK

  • sitio.com/.;/secreto –> HTTP 200 OK

  • sitio.com//;//secreto –> HTTP 200 OK

  • sitio.com/secreto.json –> HTTP 200 OK (ruby)

  • Usa toda esta lista en las siguientes situaciones:

  • /FUZZsecreto

  • /FUZZ/secreto

  • /secretoFUZZ

  • Otros bypass de API:

  • /v3/datos_usuarios/1234 --> 403 Prohibido

  • /v1/datos_usuarios/1234 --> 200 OK

  • {“id”:111} --> 401 No autorizado

  • {“id”:[111]} --> 200 OK

  • {“id”:111} --> 401 No autorizado

  • {“id”:{“id”:111}} --> 200 OK

  • {"user_id":"<id_legítimo>","user_id":"<id_víctima>"} (Contaminación de Parámetros JSON)

  • user_id=ID_ATACANTE&user_id=ID_VÍCTIMA (Contaminación de Parámetros)

Manipulación de parámetros

  • Cambiar el valor del parámetro: De id=123 --> id=124

  • Agregar parámetros adicionales a la URL: ?id=124 —-> id=124&isAdmin=true

  • Eliminar los parámetros

  • Reordenar los parámetros

  • Usar caracteres especiales.

  • Realizar pruebas de límites en los parámetros: proporcionar valores como -234 o 0 o 99999999 (solo algunos valores de ejemplo).

Versión del protocolo

Si se está utilizando HTTP/1.1 intentar usar 1.0 o incluso probar si admite 2.0.

Otros ByPasses

  • Obtener la IP o CNAME del dominio e intentar contactarlo directamente.

  • Intentar sobrecargar el servidor enviando solicitudes GET comunes (Funcionó para este tipo con Facebook).

  • Cambiar el protocolo: de http a https, o de https a http

  • Ir a https://archive.org/web/ y verificar si en el pasado ese archivo era accesible a nivel mundial.

Fuerza bruta

  • Adivinar la contraseña: Probar las siguientes credenciales comunes. ¿Sabes algo sobre la víctima? ¿O el nombre del desafío CTF?

  • Fuerza bruta: Probar autenticación básica, digest y NTLM.

Credenciales comunes
admin    admin
admin    password
admin    1234
admin    admin1234
admin    123456
root     toor
test     test
guest    guest

Herramientas Automáticas

Configuración disponible instantáneamente para evaluación de vulnerabilidades y pruebas de penetración. Ejecute una prueba de penetración completa desde cualquier lugar con más de 20 herramientas y funciones que van desde la reconstrucción hasta la generación de informes. No reemplazamos a los pentesters, desarrollamos herramientas personalizadas, módulos de detección y explotación para darles tiempo para profundizar, abrir shells y divertirse.

Aprende hacking en AWS de cero a héroe con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización