
Avis et preuve de concept pour une vulnérabilité d’injection SQL aveugle basée sur le temps dans un système de shopping en ligne, incluant les détails techniques, l’analyse d’impact et les recommandations de remédiation.
CVE: CVE-2025-52021
Titre: Injection SQL aveugle basée sur le temps via le paramètre product_id dans edit_product.php
Vendeur / Dépôt: PuneethReddyHC — https://github.com/PuneethReddyHC/online-shopping-system-advanced
Version affectée: 1.0 (branche/tag master au moment du test)
Découvreur: Hafiz Pradana Gemilang
Statut de divulgation: Vendeur notifié en privé. Preuve de concept d'exploitation complète retenue de la divulgation publique pour la sécurité des utilisateurs.
Une injection SQL aveugle basée sur le temps a été découverte dans admin/admin/edit_product.php du système Online Shopping System Advanced v1.0. Le paramètre GET product_id est interpolé dans une requête SQL sans validation ni paramétrage appropriés. Un attaquant peut injecter des fonctions de délai temporel (par exemple ) pour observer les délais de réponse du serveur et déduire le comportement de la base de données, confirmant ainsi un point d'injection SQL à distance.
SLEEPNote : Cet avis exclut intentionnellement une charge utile d'exploitation exécutable. Les détails de la preuve de concept ont été partagés en privé avec le mainteneur pour permettre la correction.
/admin/admin/edit_product.php?product_id=<valeur>
Exemple d'URL de test local :
http://<hôte>/online-shopping-system-advanced-master/admin/admin/edit_product.php?product_id=0
product_id (GET)admin/admin/edit_product.phpproduct_id et l'inclure dans une instruction SQL sans paramétrage.Les tentatives d'injection basées sur la temporisation utilisant la sémantique SLEEP() de la base de données ont produit des délais mesurables côté serveur cohérents avec une injection réussie :
SLEEP(6) → délai de réponse observé ≈ 6,01 sSLEEP(15) → délai de réponse observé ≈ 15,00 sSLEEP(0) → délai de réponse de référence ≈ 0,01 sCes résultats indiquent un point d'injection SQL aveugle permettant une inférence basée sur le temps. Le nom de la base de données observé lors des tests : onlineshop.
L'exploitation réussie de cette vulnérabilité permet aux attaquants de :
Sévérité estimée : Élevée
product_id incluant des constructions SQL à délai temporel (tests effectués avec des variantes de SLEEP()).La preuve de concept détaillée étape par étape est omise de l'avis public — contacter le rapporteur pour une preuve de concept chiffrée dans le cadre d'une divulgation responsable.
$stmt = $pdo->prepare('SELECT * FROM products WHERE id = ?');
$stmt->execute([$product_id]);
product_id comme un entier et valider en conséquence (par exemple filter_input(INPUT_GET, 'product_id', FILTER_VALIDATE_INT)).DROP, ALTER, GRANT ou les droits administratifs).(Incluse pour la commodité du vendeur/mainteneur — ne pas publier les charges utiles de preuve de concept publiquement)
sqlmap -u "http://<hôte>/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
Découvreur : Hafiz Pradana Gemilang
Vendeur / Dépôt : https://github.com/PuneethReddyHC/online-shopping-system-advanced
Avertissement : Cet avis public omet les charges utiles exploitables pour protéger les utilisateurs. Les détails techniques complets et la preuve de concept sont disponibles pour le vendeur sur demande dans le cadre d'une politique de divulgation responsable convenue.