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

159 lines
9.3 KiB
Markdown
Raw Normal View History

# 403 & 401 Bypasses
2022-04-28 16:01:33 +00:00
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
2022-04-28 16:01:33 +00:00
<summary>Support HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga-nos no** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
**Configuração disponível instantaneamente para avaliação de vulnerabilidades e testes de penetração**. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, explorar vulnerabilidades e se divertir.
{% embed url="https://pentest-tools.com/" %}
## Fuzzing de Verbos/Métodos HTTP
2021-09-19 15:52:48 +00:00
Tente usar **diferentes verbos** para acessar o arquivo: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
2021-09-19 15:52:48 +00:00
* Verifique os cabeçalhos de resposta, talvez algumas informações possam ser fornecidas. Por exemplo, uma **resposta 200** para **HEAD** com `Content-Length: 55` significa que o **verbo HEAD pode acessar a informação**. Mas você ainda precisa encontrar uma maneira de exfiltrar essa informação.
* Usar um cabeçalho HTTP como `X-HTTP-Method-Override: PUT` pode sobrescrever o verbo usado.
* Use o verbo **`TRACE`** e, se você tiver muita sorte, talvez na resposta você também possa ver os **cabeçalhos adicionados por proxies intermediários** que podem ser úteis.
2021-09-19 15:52:48 +00:00
## Fuzzing de Cabeçalhos HTTP
* **Mude o cabeçalho Host** para algum valor arbitrário ([que funcionou aqui](https://medium.com/@sechunter/exploiting-admin-panel-like-a-boss-fc2dd2499d31))
* Tente [**usar outros User Agents**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/User-Agents/UserAgents.fuzz.txt) para acessar o recurso.
* **Fuzz HTTP Headers**: Tente usar cabeçalhos de proxy HTTP, autenticação HTTP básica e NTLM brute-force (com apenas algumas combinações) e outras técnicas. Para fazer tudo isso, criei a ferramenta [**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`
Se o **caminho estiver protegido**, você pode tentar contornar a proteção do caminho usando esses outros cabeçalhos:
* `X-Original-URL: /admin/console`
* `X-Rewrite-URL: /admin/console`
* Se a página estiver **atrás de um proxy**, talvez seja o proxy que está impedindo você de acessar as informações privadas. Tente abusar de [**HTTP Request Smuggling**](../../pentesting-web/http-request-smuggling/) **ou** [**cabeçalhos hop-by-hop**](../../pentesting-web/abusing-hop-by-hop-headers.md)**.**
* Fuzz [**cabeçalhos HTTP especiais**](special-http-headers.md) procurando por diferentes respostas.
* **Fuzz cabeçalhos HTTP especiais** enquanto faz fuzzing de **Métodos HTTP**.
* **Remova o cabeçalho Host** e talvez você consiga contornar a proteção.
## **Fuzzing de Caminho**
Se _/path_ estiver bloqueado:
* Tente usar _**/**_**%2e/path \_(se o acesso estiver bloqueado por um proxy, isso pode contornar a proteção). Tente também**\_\*\* /%252e\*\*/path (dupla codificação de URL)
* Tente **contorno Unicode**: _/**%ef%bc%8f**path_ (Os caracteres codificados em URL são como "/") então, quando codificados de volta, será _//path_ e talvez você já tenha contornado a verificação do nome _/path_
* **Outros contornos de caminho**:
* 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)
* Use toda [**esta lista**](https://github.com/danielmiessler/SecLists/blob/master/Fuzzing/Unicode.txt) nas seguintes situações:
* /FUZZsecret
* /FUZZ/secret
* /secretFUZZ
* **Outros contornos de API:**
* /v3/users\_data/1234 --> 403 Forbidden
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 Unauthorized
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Unauthorized
* {“id”:{“id”:111\}} --> 200 OK
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (Poluição de Parâmetro JSON)
* user\_id=ATTACKER\_ID\&user\_id=VICTIM\_ID (Poluição de Parâmetro)
## **Manipulação de Parâmetro**
* Mude o **valor do parâmetro**: De **`id=123` --> `id=124`**
* Adicione parâmetros adicionais à URL: `?`**`id=124` —-> `id=124&isAdmin=true`**
* Remova os parâmetros
* Reordene os parâmetros
* Use caracteres especiais.
* Realize testes de limite nos parâmetros — forneça valores como _-234_ ou _0_ ou _99999999_ (apenas alguns valores de exemplo).
## **Versão do Protocolo**
Se estiver usando HTTP/1.1 **tente usar 1.0** ou até mesmo teste se **suporta 2.0**.
## **Outros Contornos**
* Obtenha o **IP** ou **CNAME** do domínio e tente **contatá-lo diretamente**.
* Tente **estressar o servidor** enviando solicitações GET comuns ([Funcionou para esse cara com o Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Mude o protocolo**: de http para https, ou de https para http
* Vá para [**https://archive.org/web/**](https://archive.org/web/) e verifique se no passado aquele arquivo estava **acessível mundialmente**.
## **Força Bruta**
* **Adivinhe a senha**: Teste as seguintes credenciais comuns. Você sabe algo sobre a vítima? Ou o nome do desafio CTF?
* [**Força bruta**](../../generic-methodologies-and-resources/brute-force.md#http-brute)**:** Tente autenticação básica, digest e NTLM.
{% code title="Credenciais comuns" %}
2022-05-01 13:25:53 +00:00
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
{% endcode %}
2023-06-06 18:56:34 +00:00
## Ferramentas Automáticas
2022-04-22 08:32:18 +00:00
* [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)
2023-06-06 18:56:34 +00:00
* [Extensão Burp - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
* [NoMoreForbidden](https://github.com/akinerk/NoMoreForbidden)
2022-04-28 16:01:33 +00:00
<figure><img src="../../.gitbook/assets/image (14) (1).png" alt=""><figcaption></figcaption></figure>
**Configuração instantaneamente disponível para avaliação de vulnerabilidades e testes de penetração**. Execute um pentest completo de qualquer lugar com mais de 20 ferramentas e recursos que vão de reconhecimento a relatórios. Não substituímos os pentesters - desenvolvemos ferramentas personalizadas, módulos de detecção e exploração para dar a eles mais tempo para investigar mais a fundo, estourar shells e se divertir.
{% embed url="https://pentest-tools.com/" %}
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
2022-04-28 16:01:33 +00:00
<details>
<summary>Suporte ao HackTricks</summary>
2022-04-28 16:01:33 +00:00
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
2022-04-28 16:01:33 +00:00
</details>
{% endhint %}