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

SQL Injection Tool 4

Ich muss sofort sagen, dass es eine Änderung gab, die Stelle, an der die Abfragen eingefügt werden, ist mit {SQLINJ} markiert, dh wenn der Parameter getid anfällig ist , schreiben wir in URL

http://localhost/test.php?getid=1{SQLINJ}
und wenn es sich um einen Textparameter handelt, sieht die URL so aus

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

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


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

SQL Injection TooL 3 Handbuch

1. Einleitung.
Im Allgemeinen erreichten meine Hände hier endlich den Punkt, ein Handbuch für mein Programm zu schreiben. Für 95% der Fragen im Programm finden Sie hier die Antwort.

2. Wir beginnen zu verwenden.

Das erste, was Sie in die URL-Zeichenfolge eingeben müssen, ist der Pfad zum anfälligen Skript, dem HTTP-Server-Port. Konfigurieren Sie das Programm für die Zusammenarbeit mit dem Proxyserver auf der Registerkarte EINSTELLUNGEN -> HAUPT , legen Sie das Zeitlimit für die Serverantwort auf der Registerkarte EINSTELLUNGEN -> HAUPT 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 Parameter id anfällig ist, nimmt die Serveranforderung die Form an
Code: http://www.target.ru/vulnscript.php?id=1{SQL}

2.1.2 GET-Methode (mit Cookie)
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, hat die Serveranforderung die Form

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

Es ist anzumerken, dass bei Verwendung mehrerer Cookie-Parameter alle unverwundbaren Parameter in die Tabelle eingegeben werden, die beim Klicken auf die Schaltfläche Cookie-Parameter angezeigt wird, und der anfällige Parameter in das Feld Vulnerable-Parameter eingegeben wird und sein üblicher Wert in das Feld Value eingegeben wird, 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, das Cookie jedoch beispielsweise zur Autorisierung an den Server im Header (NeedCook) gesendet werden muss
Code: Beispiel: http://www.target.ru/vulnscript.php?id=1{SQL}
Wenn der Parameter id anfällig ist, nimmt die Serveranforderung die Form 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 POST-Parameter vorhanden ist.
Code: Beispiel: http://www.target.ru/vulnscript.php
Wenn der Parameter id anfällig ist, nimmt die Serveranforderung die Form an

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

Id = {SQL}

2.1.5 POST-Methode (mit Cookie) - ein 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, hat die Serveranforderung die Form

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 POST-Parameter vorhanden ist, das Cookie jedoch beispielsweise zur Autorisierung an den Server im Header (NeedCook) gesendet werden muss
Code: Beispiel: http://www.target.ru/vulnscript.php
Wenn der Parameter id anfällig ist, nimmt die Serveranforderung die Form 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 (String-Textfeld)

Hier wird ein Wort eingeführt, das wir auf diese Weise finden können.

Ein Beispiel für die GET-Methode:
Schau zuerst
Code: http://www.target.ru/vulnscript.php?id=1
Dann schauen wir
Code: http://www.target.ru/vulnscript.php?id=2
finde 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 befindet sich ein Feld, in dem der Wert FOUND und NOT FOUND angegeben ist. Sie müssen lediglich eine Suchmethode auswählen

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

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

TIPP: Um die Suche zu automatisieren, können Sie die Schaltfläche AUTO DETERMINE verwenden. Es ist jedoch zu beachten, dass möglicherweise eine falsche Definition oder eine falsche Nichtbestimmung vorliegt , wenn sich ein Teil des Schlüsselworts in den Tags befindet.

2.3 Das Kontrollkästchen Basisautorisierung verwenden und die Textfelder Anmelden und Kennwort werden zur Authentifizierung verwendet, um bestimmte Stellen auf der Site einzugeben oder auf Dateien zuzugreifen.

3.1 Als nächstes müssen Sie die Anzahl der Felder bestimmen, die in der Abfrage an die Datenbank verwendet werden. Klicken Sie dazu auf die Schaltfläche "LET KNOW QUANTITY".

Es gibt verschiedene Möglichkeiten zur Fehleinschätzung:

3.1.1 Dropdown-Menü VERWENDUNGSMETHODE
Hier können Sie bestimmen, mit welcher Methode eine Fehleinschätzung durchgeführt werden soll.
- UNION SELECT
- BESTELLEN NACH
- GRUPPE VON
Im Allgemeinen ist die häufigste Methode ORDER BY und UNION SELECT.
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 Programmfunktionen erforderlich sind.

Es ist anzumerken, dass Sie, wenn Sie die Anzahl der Abfragefelder mit den Methoden ORDER BY und GROUP BY ermittelt und erfolgreich ermittelt haben, die Startanzahl der zu durchsuchenden Felder und die endgültige Anzahl gleich der gefundenen Anzahl angeben und die Methode UNION SELECT auswählen sollten, um die Felder mit der Ausgabe zu bestimmen, und die Schaltfläche drücken "LASSEN SIE MENGE WISSEN" noch einmal.

3.1.2 Häkchen Bestimmen Sie Suppots-Druckfelder mit LIMIT
Es wird als alternative Methode zur Suche nach Ausgabefeldern benötigt.

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, und dies erneut mit dem Häkchen 3.1.2 kombinieren

Wenn Sie nach erfolgreicher Auswahl der Anzahl der Felder die GET-Methode verwenden, wird im Feld Arbeits-URL eine Zeile angezeigt. Wenn Sie auf die Schaltfläche "Im Browser anzeigen" klicken, wird diese Anforderung in Ihrem Browser geöffnet.

4.1 Datenbankidentifikation (SQL Injections -> Identifying DB)
4.1.1 DB-Typ - Derzeit kann das Programm zwei Arten von Datenbanken ermitteln, nämlich MySQL und MSSQL

4.1.2 USER () - Datenbankbenutzername, mit dem die Datenbank verbunden ist

Es gibt 3 mögliche Definitionen.

UNION ist der akzeptabelste Weg, um zu bestimmen, während dem Server 1 Anfrage gesendet wird, um den gesamten Wert auf einmal zu bestimmen.

TAKE ONE SYMBOL - Definition von Zeichen für Zeichen, brutal von einem Zeichen.
Darüber hinaus kann das Intervall auf der Registerkarte Einstellungen festgelegt werden.
BRUTE - Zeichenweise Definition, brutet den gesamten Abfluss.

Beide Optionen, zur Verwendung in MySQL 3 oder wenn es nicht möglich ist, auf standardmäßige Weise zu bestimmen. Na ja, oder für Kamikaze.

4.1.3 DATABASE () - Der Name der Datenbank, mit der das Skript verbunden ist, um die Abfrage auszuführen.
Die Funktionsweise ähnelt USER () S. 4.1.2

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

4.1.5 Das Dropdown-Menü CONVERT kann bei der Ermittlung von Werten mit UNION hilfreich sein, wenn die Datenbank eine Codierung verwendet und die Werte USER (), DATABASE (), VERSION () eine andere verwenden.

5.1 Brute-Namen von Tabellen und Feldfeldern.
(SQL Injections -> DB identifizieren -> MySQL / MSSQL)

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

Hier stelle ich fest, dass bei der Suche Wörter aus externen Textwörterbüchern verwendet werden, sodass diese vor Arbeitsbeginn auf der Registerkarte EINSTELLUNGEN -> WÖRTERBUCH verbunden werden müssen .
Es gibt 4 Arten von Wörterbüchern
- Wörterbuch der Tabellen (Tabellenwörterbuch)
- Feldwörterbuch
- Präfix-Wörterbuch
- Suffix-Wörterbuch

HINWEIS : Sie können sie auf derselben Registerkarte bearbeiten.
.
Um Wörterbücher mit Präfixen und Suffixen zu verwenden, sollten Sie die entsprechenden Kontrollkästchen auf der Registerkarte aktivieren (SQL Injections -> Identifying DB -> MySQL / MSSQL).

"Präfix aus Datei verwenden, wenn Bruteforce-Tabellen und -Felder"
"Verwenden Sie das Suffix aus der Datei, wenn Bruteforce-Tabellen und -Felder"

Für die ständige Verwendung eines Präfixes oder Suffix können Sie diese in die Felder Präfix und Suffix eingeben. Dann werden sie nicht aus Wörterbüchern entnommen.

Klicken Sie anschließend auf "TABELLENNAMEN ERHALTEN".

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

Nach erfolgreicher Aufzählung wird die vorhandene Tabelle in der angegriffenen Datenbank angezeigt. Sie müssen die gewünschte Tabelle so auswählen, dass ihr Name im grauen Feld oben angezeigt wird, und die Tabelle weiter nach den Namen der Felder durchsuchen, indem Sie auf die Schaltfläche „FELDNAMEN ERHALTEN“ klicken

HINWEIS : Präfixe und Suffixe aus Wörterbüchern können zu Feldnamen hinzugefügt werden. Das Programm fragt Sie, wenn Sie auf die Schaltfläche „FELDNAMEN ERHALTEN“ klicken.

6.1 Abrufen von Tabellen- und Feldnamen mithilfe der Tabelle INFORMATION_SCHEMA.
(SQL Injections -> DB identifizieren -> DUMP INF_SCH)
Tatsächlich für MySQL5 und MSSQL

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

Es gibt 2 Möglichkeiten.
- Nur Tabellennamen - Nur Tabellennamen abrufen
- Tabellen- und Spaltennamen - Abrufen der Namen der darin enthaltenen Tabellen und Spalten.

Es gibt auch einen Begrenzer für den Empfang von Daten. 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 den Prozess des Datenabrufs.
Die empfangenen Daten können in einer Datei gespeichert werden, indem Sie auf die Schaltfläche „IN DATEI SPEICHERN“ klicken

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

7.1 Zeichenweise Brute beliebiger Daten
(SQL Injections -> OneChar BruteForce)
MySQL ist seit Version 4.1 und MSSQL relevant.
Wird für zeichenweise Brute-Daten aus der Tabelle verwendet

Das Brute-Intervall wird auf der Registerkarte EINSTELLUNGEN -> HAUPT übernommen .

Sie können Abfragen wie SELECT id FROM news verwenden

Die Schaltfläche "Vorschau der SQL-Abfrage" zeigt eine vorläufige Anforderung an den Server an

Die Schaltfläche "GET RESULT" startet den Brutto-Prozess.

8.1 Abrufen von Daten aus der Datenbank. (SQL Injections -> Data BruteForce)
Tatsächlich für MySQL 4 und MSSQL

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

Zuerst müssen Sie das Feld Tabelle mit dem Namen der gewünschten Tabelle ausfüllen.
Als nächstes müssen Sie die Namen der erforderlichen Felder zur Liste hinzufügen, diese Namen in das Feld unter der Liste eingeben und auf die Schaltfläche "FELD HINZUFÜGEN" klicken.

Feldnamen erhalten Sie über die Registerkarten 5.1 und 6.1.

HINWEIS: Mit der Schaltfläche "FELD ENTFERNEN" können Sie unnötige Felder aus der Liste entfernen

Als nächstes wird die Start- und Endposition der Linie konfiguriert. Um die Richtigkeit der Einstellungen zu überprüfen, können Sie auf die Schaltfläche "TEST" klicken. Wenn alles in Ordnung ist, sollten Sie den Wert der ausgewählten Felder durch einen Doppelpunkt ":" in der Liste entsprechend der ersten Zeile in der Datenbank im Feld links neben der Schaltfläche "TEST" trennen

Wenn der Wert angezeigt wird, können Sie mit dem Empfang von Daten beginnen. Drücken Sie dazu die Taste "GET IT" .

Die empfangenen Daten können in einer Datei gespeichert werden, indem Sie auf die Schaltfläche „IN DATEI SPEICHERN“ klicken

9.1 Back Connect von MSSQL
Wird verwendet, um eine Rückverbindung von einer Datenbank herzustellen. In diesem Fall wird die Datenbankprozedur MSSQL master..xp_cmdshell verwendet . Für das Back-End müssen Sie die IP-Adresse in der Zeile überprüfen und den Pfad zu NetCat auf der Registerkarte SETTINGS -> MAIN festlegen .

Bei erfolgreichem Betrieb verfügen Sie über eine Befehlskonsole, in der die Verbindung zum Server geöffnet ist.
10.1 Arbeiten mit Dateien

10.1.1 MySQL
Wird verwendet, um mit Dateien über SQL Injection zu arbeiten

10.1.1.1 Lesen einer Datei

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

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

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

Und drücken Sie die "READ" -Taste. Bei erfolgreichem Lesen wird die Datei auf dem Bildschirm im Editorfenster angezeigt, wo Sie diese Datei über den Menüpunkt „SAVE FILE“ speichern können.

10.1.1.2 Hochladen einer Datei auf den Server

Die Funktion funktioniert, wenn:
1) Sie haben mindestens ein Ausgabefeld,
2) Die Anzahl der Felder wird bestimmt.
3) ANGEBOTSZITATE SOLLTEN IN DER SERVERKONFIGURATION NICHT BILDSCHIRM!


Auch hier müssen Sie im Feld des oberen Frames den absoluten Pfad zu der auf dem Server erstellten Datei angeben.

Es gibt 2 Möglichkeiten zum Hochladen einer Datei.
- UNION - INTO OUTFILE wird verwendet (Standardoption)
- ENCLOSED BY - Wird in MySQL seit Version 3 verwendet (Es wird empfohlen, diese Option zu verwenden, wenn Option 1 nicht funktioniert.)

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

10.1.2 MSSQL
Alles erfolgt analog zu Ziffer 10.1.1

11.1 Terminal
Es wird verwendet, um beliebige Pakete an den Server zu senden sowie die Antwort des Servers anzuzeigen (Header und Hauptteil der Antwort). Es gibt eine Suchfunktion im Körper.

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

Eine Anfrage wird durch Drücken der Taste "SEND REQUEST" gesendet

12.1 Geschichte
Es zeigt alle Anforderungen an den Server und zusätzliche Informationen an.
Sie können es über den Menüpunkt "HISTORY -> SAVE LOG" speichern oder durch Klicken auf "HISTORY -> CLEAR LOG" löschen.

13.1 Einstellungen
13.1.1 Allgemeines
Schnittstellenübersetzung (Pfad zur Sprachdatei).
Pfad für NetCat (Pfad zu NetCat) - wird in Abschnitt 9.1 verwendet
Proxy-Einstellungen
- Proxies verwenden
- IP-Adresse
- Hafen
Symbolintervall ( BruteForce-Symbolcodeintervall ) - wird in 4.1.2-4.1.5 und 7.1 verwendet

Menü 1. SQL-Anweisung schließen (SQL schließen) - wird verwendet, um die ursprüngliche Abfrage abzuschneiden, damit kein Fehler auftritt.
Für jede Basis werden unterschiedliche „Verschlüsse“ verwendet.
- MySQL = / *
- MSSQL = -

Menü 2. Ändern Sie die Anführungszeichen in analog (Ändern Sie die Anführungszeichen in)
Wird verwendet, um die Filterung mit Skripten zu umgehen.

Menü 3. Ändern Sie den Raum in analog (Ändern Sie den Raum in)
Wird verwendet, um die Filterung mit Skripten zu umgehen

Weitere Funktionen:

Hauptmenü.

Doppelte Werkzeuge - Das Programmfenster wird vergrößert. Sie können die Programmregisterkarten beliebig zusammenstellen, z. B. jedes Fenster mit einem Terminal oder Verlauf, Encoder und Decoder

Standardeinstellungen - Alle Programmeinstellungen werden zurückgesetzt.

STOP - stoppt das Programm.

Dienstprogrammbereich

Enthält eine Vielzahl von Encodern und String-Decodern wie HEX, BASE64, URL-LIKE, PHP CHR


Ihr SQLHack.