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

155 lines
9.4 KiB
Markdown
Raw Normal View History

# Bypasses de 403 y 401
2023-06-05 18:33:24 +00:00
<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>
2023-06-05 18:33:24 +00:00
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).
2023-06-05 18:33:24 +00:00
</details>
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
**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.
2023-06-05 18:33:24 +00:00
{% embed url="https://pentest-tools.com/" %}
2023-06-05 18:33:24 +00:00
## Fuzzing de Verbos/Métodos HTTP
2023-06-05 18:33:24 +00:00
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.
2023-06-05 18:33:24 +00:00
## Fuzzing de Encabezados HTTP
2023-06-05 18:33:24 +00:00
* **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" %}
2023-06-05 18:33:24 +00:00
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
2023-06-05 18:33:24 +00:00
```
{% endcode %}
2023-06-05 18:33:24 +00:00
## 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)
2023-06-05 18:33:24 +00:00
<figure><img src="../../.gitbook/assets/image (2) (1) (1).png" alt=""><figcaption></figcaption></figure>
2023-06-05 18:33:24 +00:00
**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.
2023-06-05 18:33:24 +00:00
{% embed url="https://pentest-tools.com/" %}
2023-06-05 18:33:24 +00:00
<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:
2023-06-05 18:33:24 +00:00
* 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).
2023-06-05 18:33:24 +00:00
</details>