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
CVE-2017-14980 — Débordement de tampon basé sur la pile dans Sync Breeze Enterprise 10.0.28 accessible via le gestionnaire /login, démontrant comment une longueur d'entrée non contrôlée peut corrompre la mémoire de la pile. | Kitploit
Outils/GitHubGitHub/themalwareguardian/cve-2017-14980
Analyse des VulnérabilitésExploitationRétro-ingénierieShellcodeExploitation d'Applications WebDébogueursFuzzingApprentissage et ÉducationDéveloppement de Charges Utiles

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
Exploitation de Binaires
GitHubthemalwareguardian/cve-2017-14980

CVE-2017-14980

Débordement de tampon basé sur la pile dans Sync Breeze Enterprise 10.0.28 accessible via le gestionnaire /login, démontrant comment une longueur d'entrée non contrôlée peut corrompre la mémoire de la pile.

Voir le dépôt
1il y a 5 moisPas encore vérifié

🐞 CVE-2017-14980 : Sync Breeze Enterprise 10.0.28 - Débordement de tampon basé sur la pile

Débordement de tampon basé sur la pile dans Sync Breeze Enterprise 10.0.28 accessible via le gestionnaire /login, illustrant comment une longueur d'entrée non vérifiée peut corrompre la mémoire de la pile.




📑 Table des matières

  • Pourquoi ce dépôt existe
  • Pourquoi cette vulnérabilité est intéressante
  • Contexte et logiciel concerné
  • À propos de la vulnérabilité
  • Déclencher le crash
  • Exploitation



🎓 Pourquoi ce dépôt existe

Ce dépôt fait partie du matériel que j'utilise pour enseigner l'exploitation des corruptions mémoire (en plus de mon travail habituel, j'enseigne également dans différents cours de cybersécurité où j'aide à former la prochaine génération d'ingénieurs en rétro-ingénierie).

CVE-2017-14980 est un cas que j'utilise lorsque je souhaite que les étudiants expérimentent un écrasement EIP vanille sur HTTP plutôt que sur un protocole TCP brut. Cela semble simple au premier abord, un formulaire de connexion, un mot de passe long, un crash, mais le contexte HTTP introduit un ensemble de mauvais caractères qui ne sont pas immédiatement évidents et qui obligent les étudiants à réfléchir à la manière dont les données sont traitées avant d'atteindre le tampon vulnérable. Comprendre pourquoi %, &, + et = sont des mauvais caractères ici nécessite de comprendre l'encodage URL, ce qui est une leçon utile en soi.




💡 Pourquoi cette vulnérabilité est intéressante

Sync Breeze Enterprise est une application de synchronisation de fichiers Windows qui expose une interface de gestion web. La vulnérabilité se trouve dans le gestionnaire de connexion, qui copie le champ du mot de passe dans un tampon de pile de taille fixe sans validation de longueur. Ce qui rend ce cas utile pour l'enseignement :

  • Aucune authentification requise. Le débordement se produit lors du traitement de la connexion avant toute vérification d'identifiants.
  • Écrasement direct d'EIP. Pas de SEH, pas de tas, pas d'exploitation en plusieurs étapes. L'adresse de retour sauvegardée est écrasée directement.
  • Le contexte HTTP introduit des mauvais caractères non évidents. Au-delà des \x00, \x0a et \x0d habituels, le type de contenu application/x-www-form-urlencoded ajoute \x25 (%), \x26 (&), \x2b (+) et \x3d (=) comme mauvais caractères car le serveur décode le corps encodé URL avant de le copier dans le tampon. Les étudiants qui sautent l'analyse des mauvais caractères et passent directement au shellcode obtiendront une charge utile qui est silencieusement corrompue avant d'atteindre la mémoire.
  • Un gadget fiable dans un module fourni avec l'application. libspp.dll, fourni avec Sync Breeze, a été compilé sans ASLR, SafeSEH ou CFG, ce qui rend l'adresse du gadget fixe entre les redémarrages.



🔍 Contexte et logiciel concerné

Sync Breeze Enterprise est un outil de synchronisation de fichiers Windows qui inclut un serveur web intégré pour la gestion à distance. L'interface web écoute sur le port TCP 80 lorsqu'elle est activée et expose un formulaire de connexion à /login. La vulnérabilité se trouve dans le gestionnaire POST qui traite le champ du mot de passe.

Détails techniques clés :

Télécharger l’outil
  • Type de vulnérabilité : Débordement de tampon basé sur la pile
  • Version concernée : Sync Breeze Enterprise 10.0.28
  • Point d'accès concerné : POST /login, paramètre password
  • Composant vulnérable : Gestionnaire du formulaire de connexion
  • Authentification requise : Non
  • Impact : Exécution de code à distance



⚠️ À propos de la vulnérabilité

Sync Breeze traite le formulaire de connexion en lisant le corps POST et en extrayant le champ du mot de passe. La valeur est copiée dans un tampon de pile de taille fixe sans vérifier sa longueur. Une version simplifiée de la logique vulnérable ressemble à ceci :

root@kitploit:~
char password_buffer[256];

strcpy(password_buffer, password_field);

Le corps POST est décodé URL avant que la copie n'ait lieu, ce qui signifie que des caractères comme %25 sont décodés en % avant d'atteindre le tampon. C'est aussi pourquoi certains caractères spéciaux d'URL agissent comme des mauvais caractères : ils sont interprétés par la couche HTTP avant que les données n'atteignent l'opération de copie vulnérable. L'envoi d'une valeur de mot de passe suffisamment longue fait que la copie écrit au-delà de la fin du tampon, écrasant l'adresse de retour sauvegardée. Lorsque la fonction retourne, le CPU charge la valeur contrôlée par l'attaquant depuis la pile dans EIP et saute dessus.




💥 Déclencher le crash

Le crash peut être reproduit en envoyant un mot de passe surdimensionné dans une requête POST à /login. Aucune authentification n'est requise. Exemple en Python :

root@kitploit:~
import socket

HOST = '127.0.0.1'
PORT = 80

payload = b"A" * 600

body = b"username=admin&password=" + payload
request = (
	b"POST /login HTTP/1.1\r\n"
	b"Host: 127.0.0.1\r\n"
	b"Content-Type: application/x-www-form-urlencoded\r\n"
	b"Content-Length: " + str(len(body)).encode() + b"\r\n"
	b"Connection: close\r\n"
	b"\r\n" +
	body
)

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
s.send(request)
s.close()

Lorsqu'il est exécuté sous un débogueur, le crash montre EIP écrasé avec des données contrôlées par l'utilisateur :

root@kitploit:~
EIP = 41414141

confirmant que l'adresse de retour sauvegardée a été corrompue par le débordement.




💣 Exploitation

L'objectif de ce dépôt n'est pas seulement de démontrer le crash, mais de parcourir le processus d'exploitation complet étape par étape, du fuzzing à un shell reverse fonctionnel.

Pour garder le README principal propre, les notes d'exploitation détaillées, les scripts et les étapes du débogueur sont placés dans le dossier Vulnerability 📂 de ce dépôt.

Vous y trouverez le workflow complet utilisé pour exploiter cette CVE, comprenant :

  • Le fuzzing du champ du mot de passe pour identifier le crash.
  • La découverte du décalage pour localiser la position exacte d'EIP sur la pile.
  • L'analyse des mauvais caractères pour le corps POST encodé URL, y compris les mauvais caractères spécifiques à HTTP.
  • La localisation d'un gadget JMP ESP dans libspp.dll, un module compilé sans ASLR ni SafeSEH.
  • Le placement et l'exécution du shellcode.