
Explotar inyección SQL en projectworlds Online Admissions System v1.0
Autor: Byte Reaper
CVE: CVE-2025-8471
Vulnerabilidad: Inyección SQL en “projectworlds Online Admission System v1.0”
Descripción:
Existe una inyección SQL ciega en adminlogin.php?a_id=. Este PoC envía una serie de solicitudes GET con varios payloads —tanto de dos etapas (INSERT … UNION SELECT …, SLEEP(), SELECT code …) como cadenas de “inyección profunda”— para detectar y enumerar el problema mediante diferencias en la longitud de las respuestas.
Asegúrate de tener instalados libcurl y argparse (por ejemplo, en Debian/Ubuntu: sudo apt-get install libcurl4-openssl-dev).
Compila:
gcc exploit.c argparse.c -o exploit -lcurl
./exploit -u <URL_BASE_OBJETIVO> [-c cookies.txt] [-v]
-u, --url — URL base del objetivo, p.ej. http://vulnsite.com
-c, --cookies — (Opcional) ruta a un archivo de cookies para mantener la sesión
-v, --verbose — Activa la salida detallada de libcurl y los volcados completos de respuestas
./exploit -u http:// -v
Esto hará lo siguiente:
Enviar una solicitud normal a /adminlogin.php y registrar su longitud.
Iterar sobre las listas de payloads de dos etapas y profundos, inyectando cada uno en ?a_id=….
Comparar la longitud de la respuesta de cada inyección con la línea base.
Registrar cada payload, el estado HTTP (si ≥2xx) y la longitud observada en result.log.
Payloads probados: Dos Etapas
INSERT INTO stages (id,code) VALUES (3, 'UNION SELECT NULL --');
SELECT SLEEP(2);
SELECT code FROM stages WHERE id = 3;
Inyección Profunda
'//OR//1=1--, '//OR//'a'='a'--, …
Incluye inyecciones de tipo booleano, basadas en tiempo, union, substring, order-by, like, exists y de estilo comentario.
Todos los payloads se codifican URL mediante curl_easy_escape antes de enviarlos.
MIT License