hacktricks/pentesting-web/web-vulnerabilities-methodology/README.md

158 lines
9.4 KiB
Markdown
Raw Normal View History

# Metodologia de Vulnerabilidades Web
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}
Em cada Pentest Web, existem **vários lugares ocultos e óbvios que podem ser vulneráveis**. Este post serve como uma lista de verificação para confirmar que você pesquisou vulnerabilidades em todos os possíveis lugares.
## Proxies
{% hint style="info" %}
Hoje em dia, **aplicações** **web** geralmente **usam** algum tipo de **proxies intermediários**, que podem ser (mal) utilizados para explorar vulnerabilidades. Essas vulnerabilidades precisam de um proxy vulnerável para estar em vigor, mas geralmente também precisam de alguma vulnerabilidade extra no backend.
{% endhint %}
* [ ] [**Abusando cabeçalhos hop-by-hop**](../abusing-hop-by-hop-headers.md)
* [ ] [**Envenenamento de Cache/Engano de Cache**](../cache-deception.md)
* [ ] [**HTTP Request Smuggling**](../http-request-smuggling/)
* [ ] [**H2C Smuggling**](../h2c-smuggling.md)
* [ ] [**Inclusão do Lado do Servidor/Injeção do Lado da Edge**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Descobrindo Cloudflare**](../../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**Injeção de XSLT do Lado do Servidor**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Bypass de Proteções de Proxy / WAF**](../proxy-waf-protections-bypass.md)
## **Entrada do usuário**
{% hint style="info" %}
A maioria das aplicações web **permitem que os usuários insiram alguns dados que serão processados posteriormente.**\
Dependendo da estrutura dos dados que o servidor está esperando, algumas vulnerabilidades podem ou não se aplicar.
{% endhint %}
### **Valores Refletidos**
Se os dados introduzidos podem de alguma forma ser refletidos na resposta, a página pode ser 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)
* [ ] [**CRLF**](../crlf-0d-0a.md)
* [ ] [**Markup Pendurado**](../dangling-markup-html-scriptless-injection/)
* [ ] [**Inclusão de Arquivo/Traversal de Caminho**](../file-inclusion/)
* [ ] [**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/Injeção do Lado da Edge**](../server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Falsificação de Requisição do Lado do Servidor**](../ssrf-server-side-request-forgery/)
* [ ] [**Injeção de Template do Lado do Servidor**](../ssti-server-side-template-injection/)
* [ ] [**Reverse Tab Nabbing**](../reverse-tab-nabbing.md)
* [ ] [**Injeção de XSLT do Lado do Servidor**](../xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**XSS**](../xss-cross-site-scripting/)
* [ ] [**XSSI**](../xssi-cross-site-script-inclusion.md)
* [ ] [**XS-Search**](../xs-search.md)
Algumas das vulnerabilidades mencionadas requerem condições especiais, outras apenas requerem que o conteúdo seja refletido. Você pode encontrar alguns polygloths interessantes para testar rapidamente as vulnerabilidades em:
{% content-ref url="../pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](../pocs-and-polygloths-cheatsheet/)
{% endcontent-ref %}
### **Funcionalidades de Busca**
Se a funcionalidade pode ser usada para buscar algum tipo de dado no backend, talvez você possa (mal) utilizá-la para buscar dados arbitrários.
* [ ] [**Inclusão de Arquivo/Traversal de Caminho**](../file-inclusion/)
* [ ] [**Injeção NoSQL**](../nosql-injection.md)
* [ ] [**Injeção LDAP**](../ldap-injection.md)
* [ ] [**ReDoS**](../regular-expression-denial-of-service-redos.md)
* [ ] [**Injeção SQL**](../sql-injection/)
* [ ] [**Injeção XPATH**](../xpath-injection.md)
### **Formulários, WebSockets e PostMsgs**
Quando um websocket envia uma mensagem ou um formulário permitindo que os usuários realizem ações, vulnerabilidades podem surgir.
* [ ] [**Falsificação de Requisição entre Sites**](../csrf-cross-site-request-forgery.md)
* [ ] [**Sequestro de WebSocket entre Sites (CSWSH)**](../websocket-attacks.md)
* [ ] [**Vulnerabilidades de PostMessage**](../postmessage-vulnerabilities/)
### **Cabeçalhos HTTP**
Dependendo dos cabeçalhos HTTP fornecidos pelo servidor web, algumas vulnerabilidades podem estar presentes.
* [ ] [**Clickjacking**](../clickjacking.md)
* [ ] [**Bypass de Política de Segurança de Conteúdo**](../content-security-policy-csp-bypass/)
* [ ] [**Hacking de Cookies**](../hacking-with-cookies/)
* [ ] [**CORS - Configurações Incorretas & Bypass**](../cors-bypass.md)
### **Bypasses**
Existem várias funcionalidades específicas onde algumas soluções alternativas podem ser úteis para contorná-las.
* [ ] [**Bypass de 2FA/OTP**](../2fa-bypass.md)
* [ ] [**Bypass do Processo de Pagamento**](../bypass-payment-process.md)
* [ ] [**Bypass de Captcha**](../captcha-bypass.md)
* [ ] [**Bypass de Login**](../login-bypass/)
* [ ] [**Condição de Corrida**](../race-condition.md)
* [ ] [**Bypass de Limite de Taxa**](../rate-limit-bypass.md)
* [ ] [**Bypass de Redefinição de Senha Esquecida**](../reset-password.md)
* [ ] [**Vulnerabilidades de Registro**](../registration-vulnerabilities.md)
### **Objetos Estruturados / Funcionalidades Específicas**
Algumas funcionalidades exigirão que os **dados estejam estruturados em um formato muito específico** (como um objeto serializado de linguagem ou XML). Portanto, é mais fácil identificar se a aplicação pode ser vulnerável, pois precisa processar esse tipo de dado.\
Algumas **funcionalidades específicas** também podem ser vulneráveis se um **formato específico da entrada for usado** (como Injeções de Cabeçalho de Email).
* [ ] [**Desserialização**](../deserialization/)
* [ ] [**Injeção de Cabeçalho de Email**](../email-injections.md)
* [ ] [**Vulnerabilidades de JWT**](../hacking-jwt-json-web-tokens.md)
* [ ] [**Entidade Externa XML**](../xxe-xee-xml-external-entity.md)
### Arquivos
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 outros 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)
### **Gerenciamento de Identidade Externa**
* [ ] [**OAUTH para Tomada de Conta**](../oauth-to-account-takeover.md)
* [ ] [**Ataques SAML**](../saml-attacks/)
### **Outras Vulnerabilidades Úteis**
Essas vulnerabilidades podem ajudar a explorar outras vulnerabilidades.
* [ ] [**Tomada de Domínio/Subdomínio**](../domain-subdomain-takeover.md)
* [ ] [**IDOR**](../idor.md)
* [ ] [**Poluição de Parâmetro**](../parameter-pollution.md)
* [ ] [**Vulnerabilidade de Normalização Unicode**](../unicode-injection/)
{% hint style="success" %}
Aprenda e pratique Hacking AWS:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Aprenda e pratique Hacking GCP: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Suporte ao HackTricks</summary>
* Confira os [**planos de assinatura**](https://github.com/sponsors/carlospolop)!
* **Junte-se ao** 💬 [**grupo do Discord**](https://discord.gg/hRep4RUj7f) ou ao [**grupo do telegram**](https://t.me/peass) ou **siga**-nos no **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Compartilhe truques de hacking enviando PRs para os repositórios do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
</details>
{% endhint %}