diff --git a/pentesting-web/file-upload/README.md b/pentesting-web/file-upload/README.md index cb9653fcf..389c7e993 100644 --- a/pentesting-web/file-upload/README.md +++ b/pentesting-web/file-upload/README.md @@ -5,7 +5,7 @@ ☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥 * 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 [**NFT**](https://opensea.io/collection/the-peass-family) +* Découvrez [**The PEASS Family**](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** [**🐦**](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). @@ -23,7 +23,7 @@ Autres extensions utiles : * **PHP** : _.php_, _.php2_, _.php3_, ._php4_, ._php5_, ._php6_, ._php7_, .phps, ._phps_, ._pht_, ._phtm, .phtml_, ._pgif_, _.shtml, .htaccess, .phar, .inc, .hphp, .ctp, .module_ -* **Travailler avec PHPv8** : _.php_, _.php4_, _.php5_, _.phtml_, _.module_, _.inc_, _.hphp_, _.ctp_ +* **Travailler en PHPv8** : _.php_, _.php4_, _.php5_, _.phtml_, _.module_, _.inc_, _.hphp_, _.ctp_ * **ASP** : _.asp, .aspx, .config, .ashx, .asmx, .aspq, .axd, .cshtm, .cshtml, .rem, .soap, .vbhtm, .vbhtml, .asa, .cer, .shtml_ * **Jsp** : _.jsp, .jspx, .jsw, .jsv, .jspf, .wss, .do, .action_ * **Coldfusion** : _.cfm, .cfml, .cfc, .dbm_ @@ -83,7 +83,7 @@ AAA<--SNIP 232 A-->AAA.php.png `exiftool -Comment="' >> img.png` -* Si une **compression est ajoutée à votre image**, par exemple en utilisant des bibliothèques PHP standard telles que [PHP-GD](https://www.php.net/manual/fr/book.image.php), les techniques précédentes ne seront pas utiles. Cependant, vous pouvez utiliser la **chunk PLTE** [**technique définie ici**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) pour insérer du texte qui **survivra à la compression**. +* Si une **compression est ajoutée à votre image**, par exemple en utilisant des bibliothèques PHP standard comme [PHP-GD](https://www.php.net/manual/fr/book.image.php), les techniques précédentes ne seront pas utiles. Cependant, vous pouvez utiliser la **chunk PLTE** [**technique définie ici**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) pour insérer du texte qui **survivra à la compression**. * [**Github avec le code**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_plte\_png.php) * La page web peut également effectuer un **redimensionnement de l'image**, en utilisant par exemple les fonctions PHP-GD `imagecopyresized` ou `imagecopyresampled`. Cependant, vous pouvez utiliser la **chunk IDAT** [**technique définie ici**](https://www.synacktiv.com/publications/persistent-php-payloads-in-pngs-how-to-inject-php-code-in-an-image-and-keep-it-there.html) pour insérer du texte qui **survivra à la compression**. * [**Github avec le code**](https://github.com/synacktiv/astrolock/blob/main/payloads/generators/gen\_idat\_png.php) @@ -172,7 +172,7 @@ AAAAAAAAAAAAAAAAAAAAAAAAAAAAA 100%[============================================= 2020-06-13 03:14:06 (1.96 MB/s) - ‘AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA.php’ saved [10/10] ``` -Notez qu'une **autre option** à laquelle vous pourriez penser pour contourner cette vérification est de faire en sorte que le serveur HTTP redirige vers un fichier différent, de sorte que l'URL initiale contourne la vérification, puis wget téléchargera le fichier redirigé avec le nouveau nom. Cela **ne fonctionnera pas** **à moins que** wget ne soit utilisé avec le **paramètre** `--trust-server-names` car **wget téléchargera la page redirigée avec le nom du fichier indiqué dans l'URL d'origine**. +Notez que **une autre option** à laquelle vous pourriez penser pour contourner cette vérification est de faire en sorte que le **serveur HTTP redirige vers un fichier différent**, de sorte que l'URL initiale contourne la vérification, puis wget téléchargera le fichier redirigé avec le nouveau nom. Cela **ne fonctionnera pas** **à moins que** wget ne soit utilisé avec le **paramètre** `--trust-server-names` car **wget téléchargera la page redirigée avec le nom du fichier indiqué dans l'URL d'origine**. #### Autres ressources @@ -180,26 +180,27 @@ Notez qu'une **autre option** à laquelle vous pourriez penser pour contourner c * [https://github.com/modzero/mod0BurpUploadScanner](https://github.com/modzero/mod0BurpUploadScanner) * [https://github.com/almandin/fuxploider](https://github.com/almandin/fuxploider) * [https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html](https://blog.doyensec.com/2023/02/28/new-vector-for-dirty-arbitrary-file-write-2-rce.html) +## Outils +* [Upload Bypass](https://github.com/sAjibuu/Upload_Bypass) est un outil puissant conçu pour aider les pentesteurs et les chasseurs de bugs à tester les mécanismes de téléchargement de fichiers. Il exploite diverses techniques de chasse aux bugs pour simplifier le processus d'identification et d'exploitation des vulnérabilités, garantissant ainsi des évaluations approfondies des applications web. +## Du téléchargement de fichiers à d'autres vulnérabilités -## De l'envoi de fichiers à d'autres vulnérabilités - -* Définissez le **nom de fichier** sur `../../../tmp/lol.png` et essayez d'obtenir une **traversal de chemin** -* Définissez le **nom de fichier** sur `sleep(10)-- -.jpg` et vous pourriez réussir une **injection SQL** -* Définissez le **nom de fichier** sur `` pour obtenir une XSS -* Définissez le **nom de fichier** sur `; sleep 10;` pour tester une injection de commande (plus de [trucs d'injection de commande ici](../command-injection.md)) +* Définissez **le nom du fichier** sur `../../../tmp/lol.png` et essayez d'obtenir une **traversée de chemin** +* Définissez **le nom du fichier** sur `sleep(10)-- -.jpg` et vous pourrez peut-être obtenir une **injection SQL** +* Définissez **le nom du fichier** sur `` pour obtenir une XSS +* Définissez **le nom du fichier** sur `; sleep 10;` pour tester une injection de commandes (plus de [trucs d'injection de commandes ici](../command-injection.md)) * [**XSS** dans le téléchargement de fichiers image (svg)](../xss-cross-site-scripting/#xss-uploading-files-svg) * Téléchargement de fichiers **JS** + **XSS** = [exploitation des **Service Workers**](../xss-cross-site-scripting/#xss-abusing-service-workers) * [**XXE dans le téléchargement de fichiers svg**](../xxe-xee-xml-external-entity.md#svg-file-upload) * [**Redirection ouverte** via le téléchargement de fichiers svg](../open-redirect.md#open-redirect-uploading-svg-files) * Essayez **différentes charges utiles svg** à partir de [**https://github.com/allanlw/svg-cheatsheet**](https://github.com/allanlw/svg-cheatsheet)\*\*\*\* * [Vulnérabilité de l'**ImageTrick** célèbre](https://mukarramkhalid.com/imagemagick-imagetragick-exploit/) -* Si vous pouvez **indiquer au serveur web de récupérer une image à partir d'une URL**, vous pouvez essayer d'exploiter une [SSRF](../ssrf-server-side-request-forgery/). Si cette **image** doit être **enregistrée** sur un site **public**, vous pouvez également indiquer une URL à partir de [https://iplogger.org/invisible/](https://iplogger.org/invisible/) et **voler des informations sur chaque visiteur**. -* [**Contournement de XXE et CORS** avec le téléchargement de PDF-Adobe](pdf-upload-xxe-and-cors-bypass.md) +* Si vous pouvez **indiquer au serveur web de récupérer une image à partir d'une URL**, vous pouvez essayer d'exploiter une [SSRF](../ssrf-server-side-request-forgery/). Si cette **image** doit être **enregistrée** sur un site **public**, vous pouvez également indiquer une URL à partir de [https://iplogger.org/invisible/](https://iplogger.org/invisible/) et **voler les informations de chaque visiteur**. +* [**Contournement de XXE et CORS** avec le téléchargement de fichiers PDF-Adobe](pdf-upload-xxe-and-cors-bypass.md) * PDF spécialement conçus pour XSS : La [page suivante présente comment **injecter des données PDF pour obtenir une exécution JS**](../xss-cross-site-scripting/pdf-injection.md). Si vous pouvez télécharger des PDF, vous pouvez préparer un PDF qui exécutera du JS arbitraire en suivant les indications données. * Téléchargez le contenu \[eicar]\([**https://secure.eicar.org/eicar.com.txt**](https://secure.eicar.org/eicar.com.txt)) pour vérifier si le serveur dispose d'un **antivirus** * Vérifiez s'il y a une **limite de taille** pour le téléchargement de fichiers -Voici une liste des 10 principales choses que vous pouvez réaliser en téléchargeant (à partir de [ce lien](https://twitter.com/SalahHasoneh1/status/1281274120395685889)) : +Voici une liste des 10 principales choses que vous pouvez réaliser en téléchargeant des fichiers (à partir de [ce lien](https://twitter.com/SalahHasoneh1/status/1281274120395685889)) : 1. **ASP / ASPX / PHP5 / PHP / PHP3** : Webshell / RCE 2. **SVG** : XSS stockée / SSRF / XXE