
Консультативное уведомление и proof-of-concept для уязвимости слепой SQL-инъекции на основе времени в системе онлайн-покупок, включая технические детали, анализ воздействия и рекомендации по устранению.
CVE: CVE-2025-52021
Название: Time-Based Blind SQL Injection через параметр product_id в edit_product.php
Вендор / Репозиторий: PuneethReddyHC — https://github.com/PuneethReddyHC/online-shopping-system-advanced
Затронутая версия: 1.0 (ветка/тег master на момент тестирования)
Обнаружил: Hafiz Pradana Gemilang
Статус раскрытия: Вендор уведомлен в частном порядке. Полный эксплойт PoC не публикуется в целях безопасности пользователей.
Time-based blind SQL injection уязвимость была обнаружена в admin/admin/edit_product.php в Online Shopping System Advanced v1.0. GET-параметр product_id подставляется в SQL-запрос без надлежащей валидации или параметризации. Злоумышленник может внедрить функции временной задержки (например, ) для наблюдения за задержками ответа сервера и определения поведения базы данных, что подтверждает удалённую точку SQL-инъекции.
SLEEPПримечание: Данный отчёт намеренно исключает рабочий эксплойт-пейлоад. Детали proof-of-concept были переданы в частном порядке сопровождающему проекта для устранения уязвимости.
/admin/admin/edit_product.php?product_id=<значение>
Пример URL для локального тестирования:
http://<host>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0
product_id (GET)admin/admin/edit_product.phpproduct_id и включать его в SQL-запрос без параметризации.Попытки инъекций на основе задержек с использованием семантики SLEEP() базы данных показали измеримые задержки на стороне сервера, согласующиеся с успешной инъекцией:
SLEEP(6) → наблюдаемая задержка ответа ≈ 6.01сSLEEP(15) → наблюдаемая задержка ответа ≈ 15.00сSLEEP(0) → базовая задержка ответа ≈ 0.01сЭти результаты указывают на точку blind SQL-инъекции, допускающую логический вывод на основе времени. Имя базы данных, наблюдаемое во время тестирования: onlineshop.
Успешная эксплуатация данной уязвимости позволяет злоумышленникам:
Предполагаемая серьёзность: Высокая
product_id, содержащий SQL-конструкции временной задержки (тестирование проводилось с вариациями SLEEP()).Полный пошаговый PoC исключён из публичного отчёта — свяжитесь с автором для получения зашифрованного PoC в рамках ответственного раскрытия уязвимости.
$stmt = $pdo->prepare('SELECT * FROM products WHERE id = ?');
$stmt->execute([$product_id]);
product_id как целое число и выполняйте соответствующую валидацию (например, filter_input(INPUT_GET, 'product_id', FILTER_VALIDATE_INT)).DROP, ALTER, GRANT или административных прав).(Включена для удобства вендора/сопровождающего — не публикуйте пейлоады PoC публично)
sqlmap -u "http://<host>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0" --dbms=mysql --batch --level=5 --risk=3 --technique=T --time-sec=6
Обнаружил: Hafiz Pradana Gemilang
Вендор / Репозиторий: https://github.com/PuneethReddyHC/online-shopping-system-advanced
Отказ от ответственности: Данный публичный отчёт опускает эксплуатируемые пейлоады для защиты пользователей. Полные технические детали и PoC доступны вендору по запросу в рамках согласованной политики ответственного раскрытия уязвимости.