This page has been robot translated, sorry for typos if any. Original content here.

SQL Injection Tool 4

Sofort werde ich sagen, dass es eine Änderung gab, der Ort, an dem die Abfragen eingefügt werden, ist mit {SQLINJ} markiert, dh wenn der Parameter getid anfällig ist, schreiben wir in die URL

http://localhost/test.php?getid=1{SQLINJ}
und wenn dies ein Textparameter ist, dann lautet die URL

http://localhost/test.php?getid=1'{SQLINJ}
Nun, alles andere scheint tatsächlich zu sein, wer es herausfinden will.

Das Programm kann von Antivirenprogrammen wie z. B. Kaspersky Antivirus 7.0 als HackTool erkannt werden
Erkennungsbericht: Malware HackTool.Win32.SQLInject.i 4 Datei: s-tool.exe


software.gif
SQL Injection Tool 4
sipt4.rar [2437KB]

SQL Injection TooL 3 Handbuch

1. Einleitung
Im Allgemeinen haben die Hände schließlich den Punkt erreicht, ein Handbuch für mein Programm zu schreiben. Für 95% der Fragen zum Programm finden Sie hier die Antwort.

2. Beginnen Sie mit.

Als erstes müssen Sie in die URL-Zeile den Pfad zu dem verwundbaren Skript, den HTTP-Server-Port eingeben. Konfigurieren Sie das Programm für die Arbeit mit dem Proxyserver auf der Registerkarte EINSTELLUNGEN -> MAIN , legen Sie das Serverantwortzeitlimit in der Registerkarte EINSTELLUNGEN -> MAIN in Millisekunden fest und wählen Sie die Angriffsmethode p aus. 2.1.

2.1.1 GET-Methode
Die Methode wird verwendet, wenn die Injektion im Parameter GET vorhanden ist.
Code: Beispiel: http://www.target.ru/vulnscript.php?id=1
Wenn der id-Parameter anfällig ist, nimmt die Anforderung an den Server das Formular an
Code: http://www.target.ru/vulnscript.php?id=1{SQL}

2.1.2 GET (With Cookie) -Methode
Die Methode wird verwendet, wenn die Injektion in Cookies vorhanden ist, GET jedoch verwendet wird.
Code: Beispiel: http://www.target.ru/vulnscript.php?id=1
Wenn der VulnCook-Parameter in Cookies anfällig ist, nimmt die Anforderung an den Server das Formular an

Code: GET /vulnscript.php?id=1 HTTP / 1.0
Gastgeber: www.target.ru
Cookie: VulnCook = {SQL}
Verbindung: Schließen

Wenn mehrere Cookie-Parameter verwendet werden, werden alle unverwundbaren Parameter in die Tabelle eingegeben, die angezeigt wird, wenn auf die Schaltfläche Cookie-Parameter geklickt wird. Der anfällige Parameter wird in das Feld Vulnerable-Parameter eingegeben. Der übliche Wert wird in das Feld Value eingegeben, für das dasselbe Prinzip verwendet wird POST-Parameter.

2.1.3 Cookie-Methode (GET)
Die Methode wird verwendet, wenn die Injektion im Parameter GET vorhanden ist, aber ein bestimmter Cookie (NeedCook) im Header an den Server gesendet werden muss, beispielsweise zur Autorisierung
Code: Beispiel: http://www.target.ru/vulnscript.php?id=1{SQL}
Wenn der id-Parameter anfällig ist, nimmt die Anforderung an den Server das Formular an

Code: GET /vulnscript.php?id=1{SQL} HTTP / 1.0
Gastgeber: www.target.ru
Cookie: NeedCook = Phpsession
Verbindung: Schließen

2.1.4 POST-Methode
Die Methode wird verwendet, wenn die Injektion im Parameter POST vorhanden ist.
Code: Beispiel: http://www.target.ru/vulnscript.php
Wenn der id-Parameter anfällig ist, nimmt die Anforderung an den Server das Formular an

Code: POST /vulnscript.php?id=1 HTTP / 1.0
Gastgeber : www.target.ru
Verbindung: Schließen

Id = {SQL}

2.1.5 POST (With Cookie) -Methode - sehr seltener Fall
Die Methode wird verwendet, wenn die Injektion in Cookies vorhanden ist, POST jedoch verwendet wird.
Code: Beispiel: http://www.target.ru/vulnscript.php
Wenn der VulnCook-Parameter in Cookies anfällig ist, nimmt die Anforderung an den Server das Formular an

Code: POST /vulnscript.php HTTP / 1.0
Gastgeber: www.target.ru
Cookie: VulnCook = {SQL}
Verbindung: Schließen

2.1.6 Cookie-Methode (POST)
Die Methode wird verwendet, wenn die Injektion im Parameter POST vorhanden ist, aber ein bestimmter Cookie (NeedCook) im Header an den Server gesendet werden muss, beispielsweise zur Autorisierung
Code: Beispiel: http://www.target.ru/vulnscript.php
Wenn der id-Parameter anfällig ist, nimmt die Anforderung an den Server das Formular an

Code: POST /vulnscript.php?id=1{SQL} HTTP / 1.0
Gastgeber: www.target.ru
Cookie: NeedCook = Phpsession
Verbindung: Schließen

id = 1 {SQL}

2.2 Schlüsselwort oder Phrase (Textfeld String)

Hier stellen wir das Wort vor, das wir auf diese Weise finden können.

Beispiel für die GET-Methode
Zuerst schauen wir nach
Code: http://www.target.ru/vulnscript.php?id=1
Dann schauen wir hin
Code: http://www.target.ru/vulnscript.php?id=2
wir finden was hier ist
Code: http://www.target.ru/vulnscript.php?id=1
was ist nicht hier (vergleiche sozusagen)
Code: http://www.target.ru/vulnscript.php?id=2
In der Nähe gibt es ein Feld, in dem der Wert GEFUNDEN und NICHT GEFUNDEN steht. Es ist nur erforderlich, um eine Suchmethode auszuwählen.

GEFUNDEN - Dieser Code oder Satz wird als Grundlage für die Richtigkeit verwendet (die positive Schlussfolgerung, dass die Injektion korrekt durchgeführt wurde)

NICHT GEFUNDEN - Dieser Code oder Satz wird als Grundlage für die NICHT-Richtigkeit verwendet.
(auch eine positive Schlussfolgerung, dass die Injektion richtig gemacht wurde)

TIPP: Um die Suche zu automatisieren, können Sie die Schaltfläche AUTO DETERMINE verwenden. Beachten Sie jedoch, dass möglicherweise eine falsche Definition vorliegt oder eine falsche Definition, wenn sich das Schlüsselwort in den Tags befindet.

2.3 Das Kontrollkästchen Grundlegende Autorisierung verwenden und die Textfelder Login und Passwort werden verwendet, um bestimmte Bereiche auf der Site einzugeben oder auf Dateien zuzugreifen.

3.1 Als Nächstes müssen Sie die Anzahl der Felder ermitteln, die in der Abfrage an die Datenbank verwendet werden. Dies kann durch Klicken auf die Schaltfläche "KNOW QUANTITY" erfolgen

Es gibt mehrere Möglichkeiten zum Rendern:

3.1.1 Dropdown-Menü "USE METHOD"
Hier können Sie bestimmen, welche Methode die Berechnung durchführen soll
- UNION SELECT
- BESTELLEN DURCH
- GRUPPE VON
Im Allgemeinen ist ORDER BY und UNION SELECT die gebräuchlichste Methode.
Die bevorzugte Methode für das Programm ist jedoch UNION SELECT, da diese Methode sofort die Ausgabefelder (Textfeld FIELD SUPPORTS PRINTING ) bestimmt, die für mehrere Funktionen des Programms erforderlich sind.

Wenn Sie die Anzahl der Abfragefelder mit den ORDER BY- und GROUP BY-Methoden ermittelt und erfolgreich ermittelt haben, sollten Sie die Startnummer der Felder für die Suche und die endgültige Anzahl der gefundenen Zähler angeben und die UNION SELECT-Methode auswählen, um Felder mit Ausgabe zu definieren, und klicken Sie auf "Lass die Menge wissen" wieder.

3.1.2 Kontrollkästchen für Unterstützungsfelder mithilfe von LIMIT festlegen
Dies ist eine alternative Methode, um nach Feldern mit Ausgabe zu suchen.

HINWEIS: Sie können den Wert des anfälligen Parameters auch durch einen nicht vorhandenen Wert ersetzen, um die Felder mit der Ausgabe zu bestimmen. Dies wird wiederum mit dem Häkchen 3.1.2 kombiniert

Nach einer erfolgreichen Auswahl der Anzahl der Felder, wenn Sie die GET-Methode verwenden, wird im Feld Arbeits- URL eine Zeile angezeigt, indem Sie auf die Schaltfläche "Im Browser anzeigen" klicken. Diese Abfrage wird im Browser geöffnet.

4.1 Datenbankidentifikation (SQL-Injektionen -> DB identifizieren)
4.1.1 Art der Datenbank - Derzeit kann das Programm zwei Arten von Datenbanken ermitteln, dies sind MySQL und MSSQL

4.1.2 USER () ist der Name des Datenbankbenutzers, in dessen Namen die Verbindung zur Datenbank hergestellt wird

Es gibt 3 Definitionen.

UNION ist die am besten geeignete Methode, um festzustellen, dass der Server 1 Anforderung sendet, um den gesamten Wert auf einmal zu ermitteln.

TAKE ONE SYMBOL - Zeichenweise Definition, nimmt jeweils ein Zeichen.
Darüber hinaus kann das Intervall auf der Registerkarte Einstellungen festgelegt werden.
BRUTE - Charakterdefinition schlägt den ganzen Abfluss.

Beide Optionen für die Verwendung in MySQL 3 oder wenn die Standardmethoden nicht festgelegt werden können. Na oder für Kamikaze.

4.1.3 DATABASE () - der Name der Datenbank, mit der das Skript verbunden ist, um die Anforderung auszuführen.
Die Arbeitsmethode ähnelt USER (), Abschnitt 4.1.2

4.1.4 VERSION () - Die Version der Datenbank, mit der das Skript verbunden ist, um die Anforderung auszuführen.
Die Arbeitsmethode ähnelt USER (), Abschnitt 4.1.2

4.1.5 Das Dropdown-Menü CONVERT kann bei der Bestimmung der Werte mithilfe von UNION helfen, wenn die Basis eine Codierung verwendet und die Werte USER (), DATABASE (), VERSION () eine andere verwenden.

5.1 Brut-Tabelle und Feldnamen.
(SQL-Injektionen -> Datenbank identifizieren -> MySQL / MSSQL)

Wird verwendet, um nach Namen zu suchen, wie oben erwähnt
Für eine erfolgreiche Suche müssen Sie die Anzahl der Felder wie in Abschnitt 3.1.1 beschrieben ausgewählt haben.

Hier werde ich beachten, dass beim Sortieren Wörter aus externen Textwörterbüchern verwendet werden. Bevor sie mit der Arbeit beginnen, müssen sie mit der Registerkarte EINSTELLUNGEN -> DICTIONARY verbunden werden.
Wörterbücher haben 4 Typen
- Tischwörterbuch
- Feldwörterbuch
- Präfixwörterbuch
- Suffix-Wörterbuch

HINWEIS : Sie können auf derselben Registerkarte bearbeitet werden.
.
Um Präfix- und Suffixwörterbücher zu verwenden, sollten Sie die entsprechenden Kontrollkästchen auf der Registerkarte markieren (SQL-Injektionen -> Identifizieren von DB -> MySQL / MSSQL).

"Präfix aus Datei verwenden, wenn Bruteforce-Tabellen und -Felder verwendet werden"
"Suffix aus Datei verwenden, wenn Tabellen und Felder in Bruteforce erstellt werden"

Um ein Präfix oder Suffix dauerhaft zu verwenden, können Sie sie in die Felder Prefix und Suffix eingeben. Dann werden sie nicht aus Wörterbüchern übernommen.

Klicken Sie anschließend auf "GET TABLE NAMES".

Wenn außerdem alle Wörter aus dem Wörterbuch in dieser Liste angezeigt werden, sind die Programmeinstellungen nicht korrekt.

Nach einer erfolgreichen Suche wird die vorhandene Tabelle in der angegriffenen Datenbank angezeigt. Sie müssen die gewünschte Tabelle auswählen, so dass ihr Name im grauen Feld oben angezeigt wird. Durchsuchen Sie die Tabelle weiter, um die Feldnamen zu finden, indem Sie auf die Schaltfläche "GET FIELD NAMES" klicken

HINWEIS : Sie können den Feldnamen Präfixe und Suffixe aus den Wörterbüchern hinzufügen. Das Programm fordert Sie dazu auf, wenn Sie auf die Schaltfläche "FIELD NAMES" klicken.

6.1 Abrufen der Namen von Tabellen und Feldern mithilfe der Tabelle INFORMATION_SCHEMA.
(SQL-Injektionen -> Identifizieren von DB -> DUMP INF_SCH)
Aktuell für MySQL5 und MSSQL

Die Funktion funktioniert, wenn Sie mindestens ein Ausgabefeld haben und die Anzahl der Felder festgelegt ist.

Es gibt zwei Möglichkeiten.
- Nur Tabellennamen - nur Tabellennamen
- Tabellen- und Spaltennamen - Liefert die Namen der Tabellen und Spalten.

Es gibt auch einen Datenerfassungsbegrenzer. Die obere Ebene ( FROM ) ist standardmäßig auf 16 eingestellt, da die ersten 15 Tabellen Standard sind und nicht viele Informationen enthalten.

Die Schaltfläche „GO DUMP“ startet die Datenerfassung.
Die erhaltenen Daten können in einer Datei gespeichert werden, indem Sie auf die Schaltfläche "Save to File" klicken

Es gibt ein Dropdown-Menü "Konvertieren" , das Wesen des Menüs und seine Bedienung ist identisch mit Abschnitt 4.1.5

7.1 Zeichenweise, brutale Zufallsdaten
(SQL-Injektionen -> OneChar BruteForce)
Eigentlich MySQL seit Version 4.1 und MSSQL.
Wird für zeichenweise Zeichendaten aus der Tabelle verwendet

Das brutale Intervall wird von der Registerkarte EINSTELLUNGEN -> MAIN übernommen.

Sie können Typabfragen verwenden, SELECT id FROM news

Der Button "Vorschau SQL-Abfrage" zeigt die vorläufige Anfrage an den Server

Die "GET RESULT" -Taste startet den Brute-Prozess.

8.1 Daten aus der Datenbank holen. (SQL-Injektionen -> Data BruteForce)
Aktuell für MySQL 4 und MSSQL

Die Funktion funktioniert, wenn Sie mindestens ein Ausgabefeld haben und die Anzahl der Felder festgelegt ist.

Zuerst müssen Sie im Feld Tabelle den Namen der gewünschten Tabelle eingeben.
Als Nächstes müssen Sie die Namen der erforderlichen Felder zur Liste hinzufügen, indem Sie diese Namen in das Feld unter der Liste eingeben und die Schaltfläche " Feld hinzufügen " drücken.

Feldnamen können mit den Registerkarten 5.1 und 6.1 abgerufen werden.

HINWEIS: Sie können nicht benötigte Felder mit der Schaltfläche „REMOVE FIELD“ aus der Liste entfernen

Als nächstes legen Sie die Start- und Endposition der Linie fest. Um die Richtigkeit der Einstellungen zu überprüfen, können Sie die Schaltfläche "TEST" drücken. Wenn alles in Ordnung ist, sollte der Wert der ausgewählten Felder durch einen Doppelpunkt ":" getrennt in der Liste angezeigt werden, die der ersten Zeile in der Datenbank im Feld links neben der Schaltfläche "TEST" entspricht

Wenn der Wert angezeigt wird, können Sie Daten empfangen. Klicken Sie dazu auf die Schaltfläche "GET IT" .

Die erhaltenen Daten können in einer Datei gespeichert werden, indem Sie auf die Schaltfläche "Save to File" klicken

9.1 Zurück von MSSQL verbinden
Wird verwendet, um eine Rückverbindung von der DB herzustellen. In diesem Fall wird die Datenbankprozedur MSSQL master..xp_cmdshell zum Ausführen von Backconnect verwendet. Sie müssen die IP-Adresse in der Zeichenfolge überprüfen und den Pfad auf der Registerkarte EINSTELLUNGEN -> MAIN auf NetCat festlegen .

Bei Erfolg haben Sie eine Befehlskonsole, in der die Verbindung zum Server geöffnet wird.
10.1 Dateibehandlung

10.1.1 MySQL
Wird für die Arbeit mit Dateien über SQL-Injection verwendet

10.1.1.1 Eine Datei lesen

Die Funktion funktioniert, wenn Sie mindestens ein Ausgabefeld haben und die Anzahl der Felder festgelegt ist.

Sie müssen den absoluten Pfad zur Datei auf dem Server im Feld des unteren Frames registrieren.

Beispiel: /home/user/public_hmtl/index.php

Und drücken Sie die "READ" -Taste. Bei erfolgreichem Lesen wird die Datei im Editorfenster auf dem Bildschirm angezeigt. Dort können Sie diese Datei mit dem Menüpunkt „DATEI SPEICHERN“ speichern.

10.1.1.2 Datei auf den Server hochladen

Die Funktion funktioniert, wenn:
1) Sie haben mindestens ein Ausgabefeld
2) bestimmt die Anzahl der Felder.
3) QUALIFIZIEREN SIE IN DER KONFIGURATION DES SERVERS NICHT, DASS DIE QUOTTEN GESPROCHEN WERDEN SOLLTEN !!


Wieder müssen Sie den absoluten Pfad zur erstellten Datei auf dem Server in das Feld des oberen Frames schreiben.

Es gibt zwei Möglichkeiten, die Datei hochzuladen.
- UNION - verwendet INTO OUTFILE (Standardversion)
- ENCLOSED BY - wird in MySQL seit Version 3 verwendet (es ist ratsam, es zu verwenden, wenn Option 1 nicht funktioniert)

Der Text der Datei, die auf den Server hochgeladen werden soll, wird in das Textfeld darunter eingegeben.

10.1.2 MSSQL
Alles wird analog zu S.10.1.1 durchgeführt

11.1 Terminal
Wird verwendet, um beliebige Pakete an den Server zu senden sowie die Serverantwort (Header und Antworttext) anzuzeigen. Es gibt eine Suchfunktion im Körper.

Die Anfrage wird in "HTTP REQUEST" geschrieben.
Der Antwortheader wird geschrieben "ANTWORT: HTTP HEADER"
Der Antworttext wird geschrieben "ANTWORT: HTTP-KÖRPER"

Senden einer Anfrage durch Drücken der Taste «Anfrage senden»

12.1 Geschichte
Hier werden alle Serveranforderungen und zusätzliche Informationen angezeigt.
Sie können sie mit dem Menüpunkt "GESCHICHTE -> SPEICHERN SPEICHERN" speichern oder durch Anklicken der gleichen Stelle in "GESCHICHTE -> LÖSCHEN" löschen.

13.1 Einstellungen
13.1.1 Allgemeines (Haupt)
Interface-Übersetzung (Pfad zur Sprachdatei).
Pfad für NetCat (Pfad zu NetCat) - wird in Abschnitt 9.1 verwendet
Proxy-Einstellungen
- Verwenden Sie einen Proxy
- IP-Adresse
- Hafen
Symbolintervall ( BruteForce-Symbolcode-Intervall ) - wird in 4.1.2-4.1.5 und 7.1 verwendet

Menü 1. Close SQL expression (Close SQL) - zum Abschneiden der ursprünglichen Abfrage, sodass kein Fehler angezeigt wird.
Für jede Basis werden unterschiedliche "Shutters" verwendet.
- MySQL = / *
- MSSQL = -

Menü 2. Zitate in analog ändern (Zitate ändern in)
Wird verwendet, um die Filterung mit Skripts zu umgehen.

Menü 3. Leerzeichen in analog ändern (Leerzeichen ändern in)
Wird verwendet, um die Filterung mit Skripts zu umgehen.

Weitere Funktionen:

Hauptmenü.

Doppelte Tools - vergrößert das Programmfenster, Sie können die Programmregisterkarten beliebig zusammenstellen, z. B. jedes Fenster mit einem Terminal oder eine Historie, Codierer und Decoder

Standardeinstellungen - Alle Programmeinstellungen werden zurückgesetzt.

STOPP - stoppt das Programm.

Dienstprogramme (Tools)

Enthält eine Reihe von Zeichenfolgencodierern und -decodern, z. B. HEX, BASE64, URL-LIKE, PHP CHR


Dein SQLHack.