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

153 lines
9.3 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.

# Omisiones 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 quieres ver a tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF**, consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de GitHub de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**Configuración disponible al instante para evaluación de vulnerabilidades y pentesting**. Realiza un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde el reconocimiento hasta la elaboración de informes. No reemplazamos a los pentesters: desarrollamos herramientas personalizadas, módulos de detección y explotación para darles más tiempo 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`
* Revisa los encabezados de respuesta, quizás 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 quizás en la respuesta puedas ver también 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.
* **Fuzzing de Encabezados HTTP**: Intenta usar **Encabezados de Proxy HTTP**, autenticación básica HTTP y fuerza bruta NTLM (con solo unas pocas 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 el **camino está protegido** puedes intentar omitir la protección del camino usando estos otros encabezados:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* Si la página está **detrás de un proxy**, quizás sea el proxy el que te impide acceder a la información privada. Intenta abusar del [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **o** [**encabezados hop-by-hop**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzzing de [**encabezados HTTP especiales**](special-http-headers.md) buscando una respuesta diferente.
* **Fuzzing de encabezados HTTP especiales** mientras haces fuzzing de **Métodos HTTP**.
* **Elimina el encabezado Host** y quizás podrás omitir la protección.
## **Fuzzing de Caminos**
Si _/path_ está bloqueado:
* Intenta usar _**/**_**%2e/path \_(si el acceso está bloqueado por un proxy, esto podría omitir la protección). Intenta también**\_\*\* /%252e\*\*/path (codificación de URL doble)
* Intenta **bypass Unicode**: _/**%ef%bc%8f**path_ (Los caracteres codificados en URL son como "/") así que cuando se decodifican volverá a ser _//path_ y quizás ya hayas omitido la verificación del nombre _/path_
* **Otros bypasses de camino**:
* site.com/secret > HTTP 403 Prohibido
* 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**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) en las siguientes situaciones:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **Otros bypasses de API:**
* /v3/users\_data/1234 --> 403 Prohibido
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 No autorizado
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 No autorizado
* {“id”:{“id”:111\}} --> 200 OK
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (Contaminación de Parámetros JSON)
* user\_id=ID\_DEL\_ATACANTE\&user\_id=ID\_DE_LA_VÍCTIMA (Contaminación de Parámetros)
## **Manipulación de Parámetros**
* Cambia **el valor del parámetro**: De **`id=123` --> `id=124`**
* Añade 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**.
## **Otros Bypasses**
* Obtén la **IP** o **CNAME** del dominio e intenta **contactarlo directamente**.
* Intenta **sobrecargar el servidor** enviando solicitudes GET comunes ([Funcionó para este chico con Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Cambia el protocolo**: de http a https, o de https a http
* Ve a [**https://archive.org/web/**](https://archive.org/web/) y verifica si en el pasado ese archivo estaba **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**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** 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
```
## 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).png" alt=""><figcaption></figcaption></figure>
**Configuración disponible al instante para evaluación de vulnerabilidades y pentesting**. Ejecute un pentest completo desde cualquier lugar con más de 20 herramientas y características que van desde el reconocimiento hasta la elaboración de informes. No reemplazamos a los pentesters - desarrollamos herramientas personalizadas, módulos de detección y explotación para devolverles tiempo para investigar más a fondo, obtener shells y divertirse.
{% embed url="https://pentest-tools.com/" %}
<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 quieres ver tu **empresa anunciada en HackTricks** o **descargar HackTricks en PDF** consulta los [**PLANES DE SUSCRIPCIÓN**](https://github.com/sponsors/carlospolop)!
* Consigue el [**merchandising oficial de PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubre [**La Familia PEASS**](https://opensea.io/collection/the-peass-family), nuestra colección de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Únete al** 💬 [**grupo de Discord**](https://discord.gg/hRep4RUj7f) o al [**grupo de telegram**](https://t.me/peass) o **sígueme** en **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Comparte tus trucos de hacking enviando PRs a los repositorios de github de** [**HackTricks**](https://github.com/carlospolop/hacktricks) y [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>