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

157 lines
9.5 KiB
Markdown

# Méthodologie des vulnérabilités Web
{% hint style="success" %}
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Soutenir HackTricks</summary>
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
</details>
{% endhint %}
Dans chaque Pentest Web, il y a **plusieurs endroits cachés et évidents qui pourraient être vulnérables**. Ce post est destiné à être une liste de contrôle pour confirmer que vous avez recherché des vulnérabilités dans tous les endroits possibles.
## Proxies
{% hint style="info" %}
De nos jours, les **applications** **web** utilisent généralement une sorte de **proxies intermédiaires**, qui peuvent être (mal) utilisés pour exploiter des vulnérabilités. Ces vulnérabilités nécessitent qu'un proxy vulnérable soit en place, mais elles ont généralement aussi besoin d'une vulnérabilité supplémentaire dans le backend.
{% endhint %}
* [ ] [**Abus des en-têtes hop-by-hop**](abusing-hop-by-hop-headers.md)
* [ ] [**Poisonnement de cache/Déception de cache**](cache-deception/)
* [ ] [**HTTP Request Smuggling**](http-request-smuggling/)
* [ ] [**H2C Smuggling**](h2c-smuggling.md)
* [ ] [**Inclusion côté serveur/Inclusion côté edge**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Découverte de Cloudflare**](../network-services-pentesting/pentesting-web/uncovering-cloudflare.md)
* [ ] [**Injection XSLT côté serveur**](xslt-server-side-injection-extensible-stylesheet-language-transformations.md)
* [ ] [**Contournement des protections Proxy / WAF**](proxy-waf-protections-bypass.md)
## **Entrée utilisateur**
{% hint style="info" %}
La plupart des applications web **permettent aux utilisateurs d'entrer des données qui seront traitées plus tard.**\
Selon la structure des données que le serveur attend, certaines vulnérabilités peuvent ou non s'appliquer.
{% endhint %}
### **Valeurs réfléchies**
Si les données introduites peuvent d'une manière ou d'une autre être réfléchies dans la réponse, la page pourrait être vulnérable à plusieurs problèmes.
* [ ] [**Injection de modèle côté client**](client-side-template-injection-csti.md)
* [ ] [**Injection de commande**](command-injection.md)
* [ ] [**CRLF**](crlf-0d-0a.md)
* [ ] [**Markup pendu**](dangling-markup-html-scriptless-injection/)
* [ ] [**Inclusion de fichier/Traversal de chemin**](file-inclusion/)
* [ ] [**Redirection ouverte**](open-redirect.md)
* [ ] [**Pollution de prototype à XSS**](deserialization/nodejs-proto-prototype-pollution/#client-side-prototype-pollution-to-xss)
* [ ] [**Inclusion côté serveur/Inclusion côté edge**](server-side-inclusion-edge-side-inclusion-injection.md)
* [ ] [**Falsification de requête côté serveur**](ssrf-server-side-request-forgery/)
* [ ] [**Injection de modèle côté serveur**](ssti-server-side-template-injection/)
* [ ] [**Reverse Tab Nabbing**](reverse-tab-nabbing.md)
* [ ] [**Injection XSLT côté serveur**](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/)
Certaines des vulnérabilités mentionnées nécessitent des conditions spéciales, d'autres nécessitent simplement que le contenu soit réfléchi. Vous pouvez trouver des polyglottes intéressants pour tester rapidement les vulnérabilités dans :
{% content-ref url="pocs-and-polygloths-cheatsheet/" %}
[pocs-and-polygloths-cheatsheet](pocs-and-polygloths-cheatsheet/)
{% endcontent-ref %}
### **Fonctionnalités de recherche**
Si la fonctionnalité peut être utilisée pour rechercher un certain type de données dans le backend, peut-être pouvez-vous (mal) l'utiliser pour rechercher des données arbitraires.
* [ ] [**Inclusion de fichier/Traversal de chemin**](file-inclusion/)
* [ ] [**Injection NoSQL**](nosql-injection.md)
* [ ] [**Injection LDAP**](ldap-injection.md)
* [ ] [**ReDoS**](regular-expression-denial-of-service-redos.md)
* [ ] [**Injection SQL**](sql-injection/)
* [ ] [**Injection XPATH**](xpath-injection.md)
### **Formulaires, WebSockets et PostMsgs**
Lorsqu'un websocket envoie un message ou qu'un formulaire permet aux utilisateurs d'effectuer des actions, des vulnérabilités peuvent apparaître.
* [ ] [**Falsification de requête intersite**](csrf-cross-site-request-forgery.md)
* [ ] [**Détournement de WebSocket intersite (CSWSH)**](websocket-attacks.md)
* [ ] [**Vulnérabilités PostMessage**](postmessage-vulnerabilities/)
### **En-têtes HTTP**
Selon les en-têtes HTTP fournis par le serveur web, certaines vulnérabilités pourraient être présentes.
* [ ] [**Clickjacking**](clickjacking.md)
* [ ] [**Contournement de la politique de sécurité du contenu**](content-security-policy-csp-bypass/)
* [ ] [**Hacking des cookies**](hacking-with-cookies/)
* [ ] [**CORS - Mauvaises configurations & Contournement**](cors-bypass.md)
### **Contournements**
Il existe plusieurs fonctionnalités spécifiques où des solutions de contournement peuvent être utiles pour les contourner.
* [ ] [**Contournement 2FA/OTP**](2fa-bypass.md)
* [ ] [**Contournement du processus de paiement**](bypass-payment-process.md)
* [ ] [**Contournement de Captcha**](captcha-bypass.md)
* [ ] [**Contournement de connexion**](login-bypass/)
* [ ] [**Condition de course**](race-condition.md)
* [ ] [**Contournement de limite de taux**](rate-limit-bypass.md)
* [ ] [**Contournement de réinitialisation de mot de passe oublié**](reset-password.md)
* [ ] [**Vulnérabilités d'inscription**](registration-vulnerabilities.md)
### **Objets structurés / Fonctionnalités spécifiques**
Certaines fonctionnalités nécessiteront que **les données soient structurées dans un format très spécifique** (comme un objet sérialisé en langage ou XML). Par conséquent, il est plus facile d'identifier si l'application pourrait être vulnérable car elle doit traiter ce type de données.\
Certaines **fonctionnalités spécifiques** peuvent également être vulnérables si un **format spécifique de l'entrée est utilisé** (comme les injections d'en-têtes d'email).
* [ ] [**Désérialisation**](deserialization/)
* [ ] [**Injection d'en-tête d'email**](email-injections.md)
* [ ] [**Vulnérabilités JWT**](hacking-jwt-json-web-tokens.md)
* [ ] [**Entité externe XML**](xxe-xee-xml-external-entity.md)
### Fichiers
Les fonctionnalités qui permettent de télécharger des fichiers peuvent être vulnérables à plusieurs problèmes.\
Les fonctionnalités qui génèrent des fichiers incluant des entrées utilisateur peuvent exécuter un code inattendu.\
Les utilisateurs qui ouvrent des fichiers téléchargés par d'autres utilisateurs ou générés automatiquement incluant des entrées utilisateur peuvent être compromis.
* [ ] [**Téléchargement de fichier**](file-upload/)
* [ ] [**Injection de formule**](formula-csv-doc-latex-ghostscript-injection.md)
* [ ] [**Injection PDF**](xss-cross-site-scripting/pdf-injection.md)
* [ ] [**XSS côté serveur**](xss-cross-site-scripting/server-side-xss-dynamic-pdf.md)
### **Gestion d'identité externe**
* [ ] [**OAUTH pour prise de contrôle de compte**](oauth-to-account-takeover.md)
* [ ] [**Attaques SAML**](saml-attacks/)
### **Autres vulnérabilités utiles**
Ces vulnérabilités pourraient aider à exploiter d'autres vulnérabilités.
* [ ] [**Prise de contrôle de domaine/sous-domaine**](domain-subdomain-takeover.md)
* [ ] [**IDOR**](idor.md)
* [ ] [**Pollution de paramètres**](parameter-pollution.md)
* [ ] [**Vulnérabilité de normalisation Unicode**](unicode-injection/)
{% hint style="success" %}
Apprenez et pratiquez le Hacking AWS :<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**Formation HackTricks AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Apprenez et pratiquez le Hacking GCP : <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**Formation HackTricks GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Soutenir HackTricks</summary>
* Consultez les [**plans d'abonnement**](https://github.com/sponsors/carlospolop) !
* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous sur** **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Partagez des astuces de hacking en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
</details>
{% endhint %}