
CVE-2024-51567 es un exploit PoC en Python que apunta a una vulnerabilidad RCE en el endpoint upgrademysqlstatus de CyberPanel v2.3.6, evitando las protecciones CSRF.
CVE-2024-51567 es un script de explotación de prueba de concepto (PoC) en Python para CVE-2024-51567, una vulnerabilidad crítica de inyección de comandos que afecta a CyberPanel v2.3.6. Esta vulnerabilidad, encontrada en el endpoint upgrademysqlstatus, permite la ejecución remota de comandos (RCE) al eludir las protecciones CSRF y utilizar metacaracteres de shell en parámetros específicos.
⚠️ Aviso importante: Este script está destinado únicamente a fines educativos y pruebas de seguridad autorizadas en sistemas de su propiedad o sobre los cuales tenga permiso explícito para realizar pruebas. El uso no autorizado de este script en cualquier sistema es ilegal y está penado por la ley. El autor no asume ninguna responsabilidad por el uso indebido. Cumpla siempre con los estándares éticos y las leyes aplicables.
upgrademysqlstatus en databases/views.py de CyberPanel (anterior al commit 5b08cd6) permite a atacantes remotos ejecutar comandos arbitrarios al eludir las protecciones de secMiddleware, que solo filtran solicitudes POST. Esta vulnerabilidad puede explotarse utilizando metacaracteres de shell en el parámetro statusfile./dataBases/upgrademysqlstatushttpxgit clone https://github.com/ajayalf/CVE-2024-51567.git
cd CVE-2024-51567
httpx esté instalado:
pip install httpx
Para ejecutar el script en un solo objetivo, use el siguiente comando:
python CVE-2024-51567.py <target-url>
Ejemplo:
python CVE-2024-51567.py http://example.com
Para ejecutar el script en múltiples objetivos, cree un archivo de texto con una lista de URLs objetivo (una URL por línea) y use el comando:
python CVE-2024-51567.py <targets.txt>
Ejemplo:
python CVE-2024-51567.py targets.txt
Si desea utilizar múltiples objetivos, cree un archivo de texto llamado targets.txt o cualquier otro nombre. El formato del archivo debe ser una lista de URLs, con una URL por línea, como se muestra a continuación:
http://target1.com
http://target2.com
http://target3.com
Después de que el script se conecta a un objetivo, puede ingresar comandos de shell para ejecutar en el servidor objetivo. Para salir, escriba exit o quit.
get_CSRF_token(client): Obtiene el token CSRF de las cookies en la página principal del objetivo.
client (un objeto httpx.Client)pwn(client, CSRF_token, cmd): Envía un payload manipulado con el token CSRF y el comando deseado.
client (un objeto httpx.Client), CSRF_token (cadena), cmd (cadena)exploit(client, cmd): Ejecuta la función pwn en el objetivo para ejecutar el comando e imprime la salida.
client (un objeto httpx.Client), cmd (cadena)run_exploit(target): Inicializa una conexión al objetivo e inicia un bucle interactivo de comandos.
target (cadena, URL del objetivo)exit o quit.Ejecución Principal: Verifica el argumento para determinar si el objetivo es una URL única o un archivo con múltiples objetivos.
Si el token CSRF no se encuentra en las cookies, el script imprimirá todas las cookies recibidas y saldrá con un mensaje de error útil.
/ sea el endpoint correcto para obtener el token CSRF. Si es diferente, modifique la función get_CSRF_token en consecuencia.Para obtener más información sobre esta vulnerabilidad, consulte los siguientes recursos: