Anforderungen: Verwenden Sie das Open-Source-Penetrationstesttool sqlmap, um Website-Oberflächen auf Injektionsrisiken zu testen. SQL-Injection bedeutet, dass die Webanwendung die Legitimität der Benutzereingabedaten nicht bewertet oder die Filterung nicht streng ist, und der Angreifer kann zusätzliche SQL-Anweisungen am Ende der im Webanwendung definierten Abfrageanweisung hinzufügen und illegale Operationen ohne Wissen des Administrators implementieren, um den Datenbankserver zu täuschen, unautorisierte beliebige Abfragen auszuführen, um die entsprechenden Dateninformationen weiter zu erhalten. Kurz gesagt, es ist dasDie Backend-Schnittstelle führt SQL-Anweisungen aus, indem sie die angeforderten Parameter zusammenfügt。
Rezension:
sqlmap ist ein Open-Source-Penetrationstest-Tool, das den Prozess der Erkennung und Ausnutzung von SQL-Injektionsschwachstellen sowie die Übernahme von Datenbankservern automatisiert. Er verfügt über eine leistungsstarke Erkennungs-Engine, viele Nischenfunktionen des ultimativen Penetrationstesters und eine breite Palette von Switches, darunter Datenbank-Fingerprinting, das Abrufen von Daten aus Datenbanken, der Zugriff auf das zugrundeliegende Dateisystem und das Ausführen von Befehlen auf dem Betriebssystem über Out-of-Band-Verbindungen.
SQLMAP funktioniert sofort und funktioniert auf jeder PlattformPython-Versionen 2.6, 2.7 und 3.x。
sqlmap-Umgebungskonstruktion
Python herunterladen:Der Hyperlink-Login ist sichtbar.
SQLMAP-Open-Source-Adresse:Der Hyperlink-Login ist sichtbar. SQLMAP-Befehlsdokumentation:Der Hyperlink-Login ist sichtbar.
Zuerst muss der Computer Python installieren (weggelassen) und dann den Git-Befehl verwenden, um den Quellcode wie folgt herunterzuladen:
Optionen:
-h, --hilfe Einfache Hilfenachricht zeigen und verlassen -----Einfache Hilfenachricht zeigen und beenden -hh, Sendung erweiterte Hilfe, Nachricht und Verlassen----- --Version, um die Versionsnummer zu sehen----------- Show-Programmnummer und Ausstieg -v VERBOSE Detailgrad (0-6, Standard 1) --Wortlautstärke: 0-6 (Standard 1)
Ziel:
Mindestens eine der folgenden Optionen muss gesetzt werden, um die Ziel-URL zu bestimmen, nämlich: Mindestens eine der folgenden Optionen muss im SQLMap-Operationsbefehl enthalten sein, um sie normal verwenden zu können
-d DIRECT-Verbindungsstring für direkte Datenbankverbindung------------------- -u URL, --url=URL Ziel-URL --------------------- Ziel-URL (z. B. "http://www.site.com/vuln.php?id=1") -l LOGFILE Parse Ziel(e) aus der Burp- oder WebScarab-Proxy-Logdatei ---- das Ziel aus der Logdatei eines Burp- oder anderen Proxys -x SITEMAPURL parst das Ziel aus der entfernten Sitemap(.xml)-Datei --Parse Target(s) aus der Remote Sitemap(.xml)-Datei Scannen Sie mehrere Ziele, die in einer Textdatei -------- BULKFILE angegeben sind, -r REQUESTFILE HTTP-Anfrage aus einer Datei laden ---------------HTTP-Anfrage aus einer Datei laden HTTP-Anfrage aus einer Datei laden -g GOOGLEDORK Behandle Google Dork-Ergebnisse als Ziel-URLs--- -c CONFIGFILE Ladeoptionen aus einer Konfigurations-INI-Datei -------------- Ladeoptionen aus einer Konfigurations-INI-Datei laden
Bitten:
Die folgenden Optionen geben an, wie man mit der Ziel-URL verbunden ist.
--method=METHOD Erzwingen Sie die Verwendung einer gegebenen HTTP-Methode (z. B. PUT------------------ --data=DATA Datenstring wird über POST mit der POST-Methode gesendet------------------ --param-del=PARA.. Setzen Sie das Symbol zum Trennen von Parameterwerten-------------------- Zeichen, der zum Aufteilen von Parameterwerten verwendet wird --cookie=COOKIE spezifiziert den HTTP-Cookie-Wert ---------------------- HTTP-Cookie-Headerwert --cookie-del=COO.. Charakter, der zum Aufteilen von Cookie-Werten verwendet wird------------------ Beim Testen eines Injektionspunkts mit SQLMAP kann man den Parameter -v x verwenden, um die Komplexität der Echo-Informationen anzugeben, die von [0~6] bis 7 Stufen reicht, mit einem Standardwert von 1.
0: Nur Python-Fehler werden zusammen mit kritischen Informationen angezeigt. 1: Zeigen Sie sowohl grundlegende Informationen als auch Warnhinweise an. (Standard) 2: Zeigt gleichzeitig die Debug-Informationen an. 3: Die eingespritzte Nutzlast wird gleichzeitig angezeigt. 4: HTTP-Anfragen gleichzeitig anzeigen. 5: Gleichzeitig den HTTP-Antwort-Header anzeigen. 6: Zeigt gleichzeitig die HTTP-Antwortseite an.
ASP.NET Einrichtung der Kerninjektionsumgebung
Erstellen Sie ein neues Webprojekt mit ASP.NET Core, schreiben Sie eine Schnittstelle mit Injektion, und der Quellcode ist wie folgt:
Testschnittstelle:
Häufig verwendete Penetrationstests
DBMS-Datenbanken aufzählen
Und verwenden Sie das SQL Server Profile, um die Ausführung der SQL zu erfassen, wie in der folgenden Abbildung gezeigt:
wählen * aus [Benutzern], wobei [Benutzername] = 'itsvse' UNION ALLE AUSWÄHLEN NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(NAME AUSWÄHLEN VOM Master.. sysdatabases FÜR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Listen Sie die Tabellen der angegebenen Datenbank auf
Der Befehl lautet wie folgt:
Für komplexe HTTP-Anfragen können Sieüber den Parameter -r(HTTP-Anfragen aus Dateien laden,Verwenden Sie das Tool Burp Suite, um HTTP-Anfragen von Paketen zu erfassen), um die ursprüngliche HTTP-Anfrage aus einer Textdatei zu laden. Dadurch können Sie viele andere Optionen (z. B. Cookie-Einstellungen, veröffentlichte Daten usw.) überspringen.
SQLMAP ist leistungsstark, siehe die Dokumentation für fortgeschrittenere Funktionen. (Ende)
|