WP Advanced Search SQLi (CVE-2024-9796)
El plugin de WordPress WP Advanced Search (<= 3.3.9.2) es vulnerable a una inyección SQL no autenticada (CVE-2024-9796). Uno de sus parámetros de búsqueda (usados en las consultas AJAX del plugin) no se sanea, permitiendo a un atacante sin sesión extraer datos de la base de datos de WordPress, incluida la tabla wp_users con los hashes phpass de las contraseñas.
Con un PoC público se vuelca la tabla de usuarios:
python3 CVE-2024-9796.py # -> usuarios + hashes $P$...Los hashes $P$ son phpass; john o hashcat (modo 400) los crackean con un diccionario:
john --wordlist=/usr/share/wordlists/rockyou.txt hashesLas contraseñas recuperadas suelen valer para el panel de WordPress y, por reutilización, para FTP o SSH.
Matices. La versión vulnerable llega hasta la 3.3.9.2; hay que confirmar el plugin y su versión (con wpscan) antes de asumir explotabilidad. Es SQLi de extracción de datos, no RCE: la escalada posterior depende de crackear los hashes o de reutilizar credenciales.
Cómo detectarlo. La firma es de SQLi en el log de acceso: peticiones no autenticadas al endpoint AJAX del plugin (admin-ajax.php con la acción de WP Advanced Search) cuyos parámetros contienen sintaxis SQL (UNION SELECT, ' OR 1=1, SLEEP(, comentarios -- -). Un mismo origen enviando decenas de peticiones casi idénticas que solo varían en el payload es el patrón de sqlmap, y cualquier WAF con firmas SQLi lo marca. La extracción de wp_users se ve como respuestas anómalamente grandes o como consultas con information_schema en la BD si hay auditoría.
Defensa. Actualizar el plugin, usar consultas parametrizadas y contraseñas robustas y no reutilizadas. Relacionado con SQLi a ciegas, crackeo de hashes y reutilización de credenciales.
Máquinas donde se aplica
- WorkaholicProving Grounds Practice