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

155 lines
9.2 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 & 401
<details>
<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios do GitHub** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
<figure><img src="../../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
[**DragonJAR Security Conference é um evento internacional de cibersegurança**](https://www.dragonjarcon.org/) com mais de uma década que será realizado nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento de grande conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol que atrai hackers e pesquisadores de todo o mundo.\
Registre-se agora no seguinte link e não perca esta grande conferência!:
{% embed url="https://www.dragonjarcon.org/" %}
## Fuzzing de Verbos/Métodos HTTP
Tente usar **verbos diferentes** para acessar o arquivo: `GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH, INVENTED, HACK`
* Verifique os cabeçalhos de resposta, talvez alguma informação possa ser dada. 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 tiver muita sorte, talvez na resposta você possa ver também os **cabeçalhos adicionados por proxies intermediários** que podem ser úteis.
## Fuzzing de Cabeçalhos HTTP
* **Altere 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 Cabeçalhos HTTP**: Tente usar Cabeçalhos de Proxy HTTP, autenticação básica HTTP e força bruta NTLM (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 burlar 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 do [**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 respostas diferentes.
* **Fuzz cabeçalhos HTTP especiais** enquanto faz fuzzing de **Métodos HTTP**.
* **Remova o cabeçalho Host** e talvez você consiga burlar a proteção.
## Fuzzing de Caminho
Se _/path_ estiver bloqueado:
* Tente usar _**/**_**%2e/path \_(se o acesso estiver bloqueado por um proxy, isso pode burlar a proteção). Tente também**\_\*\* /%252e\*\*/path (codificação dupla de URL)
* Tente **bypass Unicode**: _/**%ef%bc%8f**path_ (Os caracteres codificados em URL são como "/") então, quando decodificados, será _//path_ e talvez você já tenha burlado a verificação de nome _/path_
* **Outros bypasses de caminho**:
* site.com/secret > HTTP 403 Proibido
* 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 bypasses de API:**
* /v3/users\_data/1234 --> 403 Proibido
* /v1/users\_data/1234 --> 200 OK
* {“id”:111} --> 401 Não autorizado
* {“id”:\[111]} --> 200 OK
* {“id”:111} --> 401 Não autorizado
* {“id”:{“id”:111\}} --> 200 OK
* {"user\_id":"\<legit\_id>","user\_id":"\<victims\_id>"} (Poluição de Parâmetro JSON)
* user\_id=ID_DO_ATACANTE\&user\_id=ID_DA_VÍTIMA (Poluição de Parâmetro)
## **Manipulação de Parâmetros**
* Altere **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é teste se **suporta 2.0**.
## **Outros Bypasses**
* Obtenha o **IP** ou **CNAME** do domínio e tente **contatá-lo diretamente**.
* Tente **sobrecarregar o servidor** enviando requisições GET comuns ([Funcionou para este cara com o Facebook](https://medium.com/@amineaboud/story-of-a-weird-vulnerability-i-found-on-facebook-fc0875eb5125)).
* **Altere o protocolo**: de http para https, ou de https para http
* Acesse [**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" %}
```
admin admin
admin password
admin 1234
admin admin1234
admin 123456
root toor
test test
guest guest
```
## Ferramentas 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)
* [Extensão Burp - 403 Bypasser](https://portswigger.net/bappstore/444407b96d9c4de0adb7aed89e826122)
* [Forbidden Buster](https://github.com/Sn1r/Forbidden-Buster)
<figure><img src="../../.gitbook/assets/image (1) (1) (2) (4).png" alt=""><figcaption></figcaption></figure>
[**DragonJAR Security Conference é um evento internacional de cibersegurança**](https://www.dragonjarcon.org/) com mais de uma década de existência, que ocorrerá nos dias 7 e 8 de setembro de 2023 em Bogotá, Colômbia. É um evento de alto conteúdo técnico onde são apresentadas as últimas pesquisas em espanhol, atraindo hackers e pesquisadores de todo o mundo.\
Registre-se agora no seguinte link e não perca esta grande conferência!:
{% embed url="https://www.dragonjarcon.org/" %}
<details>
<summary><strong>Aprenda hacking em AWS do zero ao herói com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Outras formas de apoiar o HackTricks:
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**merchandising oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>