
Exploração de injeção SQL no projectworlds Online Admissions System v1.0
Author: Byte Reaper
CVE: CVE-2025-8471
Vulnerabilidade: Injeção SQL no “Sistema de Admissão Online projectworlds v1.0”
Descrição:
Existe uma injeção SQL cega em adminlogin.php?a_id=. Esta PoC envia uma série de requisições GET com várias cargas (payloads)—tanto de dois estágios (INSERT … UNION SELECT …, SLEEP(), SELECT code …) quanto strings de “injeção profunda”—para detectar e enumerar o problema através de diferenças no comprimento da resposta.
Certifique-se de ter libcurl e argparse instalados (exemplo no Debian/Ubuntu: sudo apt-get install libcurl4-openssl-dev).
Compile:
gcc exploit.c argparse.c -o exploit -lcurl
./exploit -u <TARGET_BASE_URL> [-c cookies.txt] [-v]
-u, --url — Base URL of the target, e.g. http://vulnsite.com
-c, --cookies — (Optional) path to a cookies file to maintain session
-v, --verbose — Enable verbose libcurl output and full response dumps
./exploit -u http:// -v
Isso irá:
Enviar uma requisição normal para /adminlogin.php e registrar seu comprimento.
Iterar sobre listas de cargas de dois estágios e profundas, injetando cada uma em ?a_id=….
Comparar o comprimento da resposta de cada injeção com a linha de base.
Registrar cada carga, status HTTP (se ≥2xx) e comprimento observado em result.log.
Cargas Testadas : Dois Estágios
INSERT INTO stages (id,code) VALUES (3, 'UNION SELECT NULL --');
SELECT SLEEP(2);
SELECT code FROM stages WHERE id = 3;
Injeção Profunda
'//OR//1=1--, '//OR//'a'='a'--, …
Inclui injeções booleanas, baseadas em tempo, union, substring, order-by, like, exists e estilo comentário.
Todas as cargas são codificadas em URL via curl_easy_escape antes do envio.
Licença MIT