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

154 lines
9.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Bypasses de 403 y 401
<details>
<summary><strong>Aprende hacking en AWS de cero a héroe con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** ¡Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén la [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Configuración disponible instantáneamente 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 adicional para profundizar, obtener shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
## 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.
* Utiliza 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í](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Intenta [**usar otros User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) 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 algunas combinaciones) y otras técnicas. Para hacer todo esto, he creado la herramienta [**fuzzhttpbypass**](https://github.com/carlospolop/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 evadir 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**](../../pentesting-web/http-request-smuggling/) **o** [**encabezados hop-by-hop**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz de [**encabezados HTTP especiales**](special-http-headers.md) buscando respuestas diferentes.
* **Fuzz de encabezados HTTP especiales** mientras haces fuzzing de **Métodos HTTP**.
* **Elimina el encabezado Host** y tal vez puedas evadir 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 evadir la protección). Intenta también**\_\*\* /%252e\*\*/ruta (codificación URL doble)
* Intenta **evadir Unicode**: _/**%ef%bc%8f**ruta_ (Los caracteres codificados en URL son como "/") por lo que al decodificarlos de nuevo será _//ruta_ y tal vez ya habrás evadido la verificación de nombre _/ruta_
* **Otros evasiones de ruta**:
* 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)
* Utiliza toda [**esta lista**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) en las siguientes situaciones:
* /FUZZsecreto
* /FUZZ/secreto
* /secretoFUZZ
* **Otras evasiones 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 ejemplos de valores).
## **Versión del protocolo**
Si se está utilizando HTTP/1.1 **intentar usar 1.0** o incluso probar si **admite 2.0**.
## **Otros métodos de evasión**
* Obtener la **IP** o **CNAME** del dominio e intentar **contactarlo directamente**.
* Intentar **saturar el servidor** enviando solicitudes GET comunes ([Funcionó para este individuo con Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Cambiar el protocolo**: de http a https, o de https a http
* Ir a [**https://archive.org/web/**](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**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Probar 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
* [https://github.com/lobuhi/byp4xx](https://github.com/lobuhi/byp4xx)
* [https://github.com/iamj0ker/bypass-403](https://github.com/iamj0ker/bypass-403)
* [https://github.com/gotr00t0day/forbiddenpass](https://github.com/gotr00t0day/forbiddenpass)
* [Extensión de Burp - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
**Configuración instantáneamente disponible 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.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>Aprende hacking en AWS desde cero hasta experto con</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Otras formas de apoyar a HackTricks:
* Si deseas ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** Consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Obtén la [**oficial mercancía de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **síguenos** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>