Inhaltsverzeichnis
1. Vorwort
2. Analysieren Sie kurz die zeitbasierte Injektion von sqlmap
3. Analysieren Sie den Quellcode eingehend
4. Das Schließen der Zeichen vor dem Injektionspunkt ist der Schlüssel dafür, ob es injiziert werden kann.
5.1 Methode 1
Beziehen Sie sich auf die Bei der vorherigen awvs-Injektion habe ich mir eine Erkennungsmethode ausgedacht, die einfacher zu verstehen ist. Nehmen Sie die Verbrauchszeit von 6 normalen Tests ohne injizierte Nutzlast und berechnen Sie den Durchschnittswert als native Anforderungszeit (ori_time).
Sehen Sie sich den SQLMap-Code noch einmal an. Sie haben ein mathematisches Problem verwendet, das ich nicht verstehe (Details)
Heim Betrieb und Instandhaltung Sicherheit So implementieren Sie die Analyse der zeitbasierten SQLMAP-Injektion

So implementieren Sie die Analyse der zeitbasierten SQLMAP-Injektion

May 12, 2023 pm 12:10 PM
sqlmap time-based

1. Vorwort

Wie erkennt man eine SQL-Injection?

Meine Antwort lautet: Wenn es um die Sicherheit von Partei A geht, 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, kontaktieren Sie den Betrieb und die Wartung, um langsame Protokolldatenbankaufzeichnungen zu erstellen, überwachen Sie den Ruhezustand und führen Sie eine Benchmark-Schlüsselwortüberwachung durch. Sie können die ID-Nummer der Scanaufgabe zum Dezimalpunkt der Ruhezeit hinzufügen, um dies zu erleichtern Positionierung. (P.S.: Diese Methode kann 99 % der SQL-Injektionen finden)

Daher beschränke ich den Zeitfehler bei der zeitbasierten Zeitinjektion sehr streng. Allerdings führt @chengable sicherheitsrelevante Arbeiten an Partei B durch, und eine zeitbasierte Zeitinjektion ist im Allgemeinen nicht möglich. Es versteht sich, dass er hauptsächlich zuerst das Vorhandensein von Injektionspunkten filtert und dann sqlmapapi.py erkennt. Ich habe zuvor auch sqlmap zum Testen verwendet. Das Problem war, dass die Scanzeit zu lang war und die JSON-Formatinjektion nicht unterstützt wurde. . Die Zeitinjektion von sqlmap ist jedoch relativ genau. Was ist, wenn Sie sqlmapapi.py nicht verwenden möchten? Hier werde ich die zeitbasierte Injektionslogik von sqlmap herausarbeiten.

2. Analysieren Sie kurz die zeitbasierte Injektion von sqlmap

Beschweren Sie sich: Der Code von sqlmap ist nicht standardisiert, hässlich und groß. Jemand hat mir empfohlen, den SQLMAP-Quellcode zu lesen und viel zu lernen. Jetzt, wo ich darüber nachdenke, habe ich früh aufgegeben.

Wenn Sie also faul sind und sich den Quellcode nicht ansehen möchten, fügen Sie --technique=T -v 3 hinzu und schauen Sie sich zuerst die Nutzlast der SQLMap-Erkennung an.

如何实现sqlmap time-based inject的分析

如何实现sqlmap time-based inject的分析

如何实现sqlmap time-based inject的分析

Es scheint, dass ich faul war und einige Wege gefunden habe:

Zuerst hat sqlmap die Injektionsnutzlast des Schlafs gestopft:

Erster gefüllter Schlaf (5) , nachdem festgestellt wurde, dass es ausgeführt wird; Sleep(0) wird eingefügt und schließlich wird Sleep(5) eingefügt.

Dann raten Sie, zuerst zu schlafen (5) und dann zu schlafen (0), wenn die zweite Verzögerung erfolgreich ist. Wenn keine Verzögerung festgestellt wird, fahren Sie mit dem Ruhezustand fort (5). Wenn die Verzögerung erneut erfolgreich ist, wird eine Erinnerung angezeigt, dass möglicherweise eine Injektion erfolgt:

如何实现sqlmap time-based inject的分析

Schließlich wird SQLMap sehr geschickt verwendet, um Fehlalarme zu verhindern Wenn die Beurteilungsbedingung verwendet wird, um falsch positive Ergebnisse zu eliminieren, können Sie sehen, dass sqlmap zweimal prüft, ob die Gleichung wahr ist, und zweimal testet, ob die Gleichung falsch positiv ist, basierend auf der zweiten Verzögerung.

3. Analysieren Sie den Quellcode eingehend

Kehren Sie zum Quellcode zurück und werfen Sie einen Blick darauf: Gehen wir basierend auf einigen der vorherigen Schlüsselwörter direkt zum Code, um einen Blick darauf zu werfen. Beispielsweise erscheint *appears to be* vor der Suche. Siehe den Code des ersten Schritts:

sqlmap/lib/controller/checks.py:

如何实现sqlmap time-based inject的分析

Ich habe hier festgestellt, dass es fast so ist das Gleiche, was ich vorher vermutet habe.

Suchen Sie, wo sich die Nutzlast befindet, insbesondere die Nutzlast mit if-Bedingung, und finden Sie sie hier:

sqlmap/xml/payloads/time_blind.xml:

如何实现sqlmap time-based inject的分析

Sie können jeweils sehen, ob die Nutzlast von Die Bedingungen liegen im Vektorfeld.

4. Das Schließen der Zeichen vor dem Injektionspunkt ist der Schlüssel dafür, ob es injiziert werden kann.


Observed tools/sqlmap/xml/boundaries.xml, daher müssen wir hier auch auf die verschiedenen Schließungssituationen verweisen:

如何实现sqlmap time-based inject的分析5. Bestimmen Sie, ob eine Verzögerung vorliegt

5.1 Methode 1

Beziehen Sie sich auf die Bei der vorherigen awvs-Injektion habe ich mir eine Erkennungsmethode ausgedacht, die einfacher zu verstehen ist. Nehmen Sie die Verbrauchszeit von 6 normalen Tests ohne injizierte Nutzlast und berechnen Sie den Durchschnittswert als native Anforderungszeit (ori_time).

Wenn die Injektionszeit Sleep(5) ist, subtrahiere ori_time von der aktuellen Zeit als Sleep_time. Wenn „sleep_time“ kleiner als 4 ist, wird davon ausgegangen, dass die Verzögerung nicht aufgetreten ist. (Angesichts der Tatsache, dass ori_time vom Netzwerk beeinflusst wird und größer wird, wird der Schwellenwert hier auf vier Sekunden angepasst.)

Wenn die Injektionszeit Sleep (0) ist, subtrahieren Sie ori_time von der aktuellen Zeit als Sleep_time. Wenn „sleep_time“ größer als 2 ist, bedeutet dies, dass in der Verzögerung ein Fehlalarm vorliegt.

5.2 Methode 2

Sehen Sie sich den SQLMap-Code noch einmal an. Sie haben ein mathematisches Problem verwendet, das ich nicht verstehe (Details)


Nachverfolgung: Request.queryPage --->wasLastResponseDelayed Sie können sehen, dass die Logik so ist : Nehmen Sie die Verbrauchszeit von 30 normalen Tests ohne injizierte Nutzlast und geben Sie sie in kb.responseTimes ein. Berechnen Sie die Standardabweichung 30 Mal als Abweichung und berechnen Sie die langsamste Reaktionszeit basierend auf der Abweichung als unteres StdLimit:

如何实现sqlmap time-based inject的分析

Sein Wert ist der Durchschnitt aus dem 30-fachen plus TIME_STDEV_COEFF*Standardabweichung (Abweichung). Wenn Sie TIME_STDEV_COEFF auf 7 setzen, kann die Beurteilungsgenauigkeit 99,999999997440 % betragen.

Beurteilen Sie abschließend, ob die Verbrauchszeit der aktuellen Anforderung größer als das untere StdLimit ist. Wenn sie größer ist, bedeutet dies, dass eine Verzögerung auftritt. Wenn sie kleiner ist, bedeutet dies, dass keine Verzögerung vorliegt (außerdem, wenn das untere StdLimit weniger als 0,5 Sekunden beträgt). , unteresStdLimit dauert 0,5 Sekunden).

Emotion sagt mir, dass ich Methode eins wählen sollte, und Rationalität sagt mir, dass ich Methode zwei wählen sollte. Ich habe mich trotzdem für Methode zwei entschieden und den Einspritzpunkt gemessen (Details). Beim sehr stabilen Scannen wurden Injektionsschwachstellen gefunden.

Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Analyse der zeitbasierten SQLMAP-Injektion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
1 Monate vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Beispielanalyse der automatisierten Sqlmap-Injektion Beispielanalyse der automatisierten Sqlmap-Injektion May 13, 2023 pm 03:31 PM

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

So analysieren Sie Probleme mit sqlmap So analysieren Sie Probleme mit sqlmap May 27, 2023 pm 01:07 PM

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

So analysieren Sie die SQLMap- und SQLi-Injection-Abwehr So analysieren Sie die SQLMap- und SQLi-Injection-Abwehr May 11, 2023 pm 06:37 PM

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

Was ist der Zwiebelmodus-Proxy von SQLMAP? Was ist der Zwiebelmodus-Proxy von SQLMAP? May 26, 2023 am 09:56 AM

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,

So implementieren Sie die Analyse der zeitbasierten SQLMAP-Injektion So implementieren Sie die Analyse der zeitbasierten SQLMAP-Injektion May 12, 2023 pm 12:10 PM

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

Was ist die sqlmap _dns-Injection-Konfigurationsmethode? Was ist die sqlmap _dns-Injection-Konfigurationsmethode? May 12, 2023 pm 12:25 PM

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.

Die Idee der SQLMAP-Verarbeitung ist Zeichenverschlüsselung Die Idee der SQLMAP-Verarbeitung ist Zeichenverschlüsselung May 14, 2023 am 11:52 AM

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.

So verwenden Sie sqlmapGetshell So verwenden Sie sqlmapGetshell May 13, 2023 pm 06:25 PM

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

See all articles