hacktricks/network-services-pentesting/pentesting-web/403-and-401-bypasses.md

9.4 KiB
Raw Blame History

403 & 401 Bypasses

{% hint style="success" %} Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks
{% endhint %}

Configuración disponible instantáneamente para evaluación de vulnerabilidades y pruebas de penetración. Realiza un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde la recopilación hasta la elaboració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.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

HTTP Verbs/Methods Fuzzing

Intenta usar diferentes verbos para acceder al archivo: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK

  • Revisa 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. Pero aún necesitas encontrar una manera de exfiltrar 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.

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 métodos HTTP.
  • 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 eludir Unicode: /%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>"} (Contaminación de Parámetros JSON)
  • user_id=ATTACKER_ID&user_id=VICTIM_ID (Contaminación de Parámetros)

Manipulación de Parámetros

  • 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ímites en los parámetros — proporciona valores como -234 o 0 o 99999999 (solo algunos valores de ejemplo).

Versión del Protocolo

Si usas HTTP/1.1 intenta usar 1.0 o incluso prueba si soporta 2.0.

Otras Elusiones

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

Fuerza Bruta

  • Adivina la contraseña: Prueba las siguientes credenciales comunes. ¿Sabes algo sobre la víctima? ¿O el nombre del desafío CTF?
  • Fuerza bruta: Prueba autenticación básica, digest y NTLM.

{% code title="Credenciales comunes" %}

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

{% endcode %}

Herramientas Automáticas

Configuración disponible instantáneamente para evaluación de vulnerabilidades y pruebas de penetración. Realiza un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde la recopilación hasta la elaboración de informes. No reemplazamos a los pentesters - desarrollamos herramientas personalizadas, módulos de detección y explotación para devolverles algo de tiempo para profundizar, abrir shells y divertirse.

{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}

{% hint style="success" %} Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)

Apoya a HackTricks
{% endhint %}