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 Anfragen eingefügt werden, markiert ist {SQLINJ}, das heißt, wenn der Parameter getid anfällig ist, dann in der URL schreiben wir

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

http://localhost/test.php?getid=1'{SQLINJ}
Nun, alles andere ist eigentlich, wer das verstehen will.

Das Programm kann durch animierte Viren wie zB Kaspersky Antivirus 7.0 als HackTool definiert werden
Erkennungsbericht: schädliches Programm HackTool.Win32.SQLInject.i 4 Datei: s-tool.exe


Software.gif
SQL Injection Tool 4
Sipt4.rar [2437KB]

Handbuch zu SQL Injection TooL 3

1. Einleitung.
Voobshchem hier endlich diese Hände haben gelernt, ein Handbuch zu meinem Programm zu schreiben. Also auf 95% der Fragen zum Programm finden Sie hier die Antwort.

2. Beginnen Sie zu verwenden.

Das erste, was zu tun ist, geben Sie den Pfad zum anfälligen Skript, den HTTP-Server-Port, konfigurieren Sie den Proxy- Server- Proxy in der Registerkarte SETTINGS -> MAIN , legen Sie das Server-Timeout auf der Registerkarte SETTINGS -> MAIN in Millisekunden fest und wählen Sie die Angriffsmethode aus. 2.1.

2.1.1 Die GET-Methode
Die Methode wird verwendet, wenn die Injektion im GET-Parameter 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 Methode GET (mit Cookie)
Die Methode wird verwendet, wenn die Injektion in Cookies vorhanden ist, aber GET wird verwendet
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

Es wird darauf hingewiesen, dass bei Verwendung mehrerer Cookie-Parameter alle unverwundbaren Parameter in die Tabelle eingegeben werden, die bei Betätigen der Cookie-Parameter- Taste erscheint und im Feld Vulnerable-Parameter der anfällige Parameter eingegeben wird und dessen üblicher Wert im Feld Value eingegeben wird POST-Parameter.

2.1.3 Die Cookie-Methode (GET)
Die Methode wird verwendet, wenn die Injektion im GET-Parameter vorhanden ist, aber auf dem Server ist es notwendig, im Header ein bestimmtes Cookie (NeedCook), zB zur Autorisierung, zu senden
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 POST-Parameter 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 Die Methode POST (With Cookie) ist ein sehr seltener Fall
Die Methode wird verwendet, wenn die Injektion in Cookies vorhanden ist, aber POST 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 POST-Parameter vorhanden ist, aber auf dem Server ist es notwendig, im Header ein bestimmtes Cookie (NeedCook), zB für die Autorisierung, zu senden
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 Stichwort oder Satz (Textfeld String)

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

Ein Beispiel für die GET-Methode,
Erster Blick
Code: http://www.target.ru/vulnscript.php?id=1
Dann schauen wir
Code: http://www.target.ru/vulnscript.php?id=2
Wir finden dort was da
Code: http://www.target.ru/vulnscript.php?id=1
Was ist nicht hier (wir vergleichen so zu sprechen)
Code: http://www.target.ru/vulnscript.php?id=2
In der Nähe gibt es ein Feld, in dem es einen Wert FOUND und NICHT GEFUNDEN , ist es nur notwendig, eine Methode der Suche zu wählen,

GEFUNDEN - Dieses Stück Code oder Phrase wird als Grundlage der Korrektheit genommen (eine positive Schlussfolgerung, dass die Injektion richtig gemacht wird)

NICHT GEFUNDEN - Dieses Stück Code oder Phrasen, wird als Grundlage für NOT Korrektheit genommen
(Auch eine positive Schlussfolgerung, dass die Injektion korrekt durchgeführt wurde)

TIPP: Um die Suche zu automatisieren, kannst du die AUTO DETERMINE- Taste verwenden, aber es ist erwähnenswert, dass es eine falsche Definition oder eine falsche Definition nicht gibt, wenn ein Stück des Keyword innerhalb der Tags ist.

2.3 Das Kontrollkästchen Basisberechtigung verwenden und die Felder " Anmelden und Kennwort" dienen dazu, bestimmte Standorte zu erfassen oder auf Dateien zuzugreifen.

3.1 Als nächstes müssen Sie die Anzahl der Felder festlegen, die in der Abfrage in der Datenbank verwendet werden. Dies geschieht durch Anklicken der Schaltfläche "LET KNOW QUANTITY"

Es gibt mehrere Möglichkeiten zur Fehlkalkulation:

3.1.1 Das Dropdown-Menü "USE METHOD"
Hier können Sie bestimmen, welche Methode eine Fehleinschätzung vornehmen soll
- UNION WÄHLEN
- BESTELLEN DURCH
- GRUPPE DURCH
Im Allgemeinen ist die häufigste Methode ORDER BY und UNION SELECT
Aber die bevorzugte Methode für das Programm ist UNION SELECT, da diese Methode sofort die Ausgabefelder (das FELD SUPPORTS PRINTING Textfeld) für mehrere Programmfunktionen benötigt.

Es ist zu beachten, dass, wenn Sie die Anzahl der Abfragefelder mit den Methoden ORDER BY und GROUP BY definiert haben und erfolgreich festgelegt haben, dann sollten Sie die Startnummer der Suchfelder und die endgültige Zahl gleich der gefundenen Nummer angeben und die UNION SELECT-Methode auswählen, um die Felder mit der Ausgabe zu definieren und die Schaltfläche zu drücken "KENNEN SIE MENGE" wieder.

3.1.2 Das Kontrollkästchen Prüflinge drucken mit LIMIT markieren
Es wird als alternative Möglichkeit zur Suche nach Feldern mit Ausgabe benötigt.

HINWEIS: Sie können auch den Wert des anfälligen Parameters mit einem nicht erreichten Wert ersetzen, um die Felder mit der Ausgabe zu bestimmen und sie erneut mit dem Häkchen 3.1.2 zu kombinieren

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

4.1 Identifizierung der Datenbank (SQL Injection -> Identification DB)
4.1.1 Art der DB - Im Moment kann das Programm zwei Arten von Datenbanken definieren, das sind MySQL und MSSQL

4.1.2 USER () - der Name des Nutzers der Datenbank, in dessen Auftrag die Verbindung zur Datenbank erfolgt

Es gibt 3 Optionen für die Bestimmung.

UNION - die annehmbarste Art zu bestimmen, wird der Server gesendet 1 Anfrage, um den gesamten Wert auf einmal zu bestimmen.

TAKE ONE SYMBOL - Charakter nach Charakter, brutit von einem Charakter.
Und das Intervall kann auf der Registerkarte Einstellungen angegeben werden.
BRUTE- symbolische Definition, brutit alle Abfluss.

Beide Optionen sind für die Verwendung in MySQL 3, oder wenn nicht möglich, nach Standardmethoden zu bestimmen. Nun, oder für Kamikaze.

4.1.3 DATABASE () - der Name der Datenbank, an die das Skript angehängt ist, um die Abfrage auszuführen.
Die Arbeitsweise ähnelt dem USER () S.4.1.2

4.1.4 VERSION () - die Version der Datenbank, an die das Skript angehängt ist, um die Abfrage auszuführen.
Die Arbeitsweise ähnelt dem USER () S.4.1.2

4.1.5 Das CONVERT-Dropdown-Menü kann bei der Bestimmung von Werten mit UNION helfen, wenn die Datenbank eine Codierung verwendet und die Werte USER (), DATABASE (), VERSION () einen anderen verwenden.

5.1 Brut Namen von Tabellen und Feldfeldern.
(SQL Injektionen -> Identifizieren von DB -> MySQL / MSSQL)

Wird verwendet, um die Namen zu durchsuchen, wie oben erwähnt
Für eine erfolgreiche Suche müssen Sie die Anzahl der in Abschnitt 3.1.1 beschriebenen Felder auswählen

Hier stelle ich fest, dass die Suche Wörter aus externen Textwörterbüchern verwendet , also müssen sie auf der Registerkarte SETTINGS -> DICTIONARY verbunden sein, bevor sie mit der Arbeit beginnen .
Wörterbücher haben 4 Typen
- Tabellenwörterbuch
- Feldwörterbuch
- Präfix Wörterbuch
- Wörterbuch der Suffixe (Suffix Wörterbuch)

HINWEIS : Sie können sie auf derselben Registerkarte bearbeiten
.
Um die Präfix- und Suffix-Wörterbücher zu verwenden, müssen Sie die entsprechenden Checkboxen auf der Registerkarte (SQL Injection -> Identification DB -> MySQL / MSSQL)

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

Um ein Präfix oder ein Suffix dauerhaft zu verwenden, kannst du sie in die Felder Präfix und Suffix eingeben. Dann werden sie nicht aus Wörterbüchern genommen.

Dann klicke auf "GET TABLE NAMES"

In diesem Fall, wenn Sie alle Wörter aus dem Wörterbuch in dieser Liste erscheinen, dann sind die Programmeinstellungen nicht korrekt.

Nach einer erfolgreichen Suche sehen Sie die vorhandene Tabelle in der angegriffenen Datenbank, Sie müssen die Tabelle auswählen, die Sie benötigen, damit ihr Name im grauen Feld erscheint und die Tabelle zum Suchen der Feldnamen durch Drücken der Schaltfläche "GET FIELD NAMES"

HINWEIS : Sie können Präfixe und Suffixe aus den Wörterbüchern zu den Feldnamen hinzufügen, das Programm wird Sie fragen, wenn Sie die Schaltfläche "GET FIELD NAMES" drücken.

6.1 Tabellen- und Feldnamen mit der Tabelle INFORMATION_SCHEMA abrufen.
(SQL Injektionen -> Identifizierung von DB -> DUMP INF_SCH)
Tatsächlich für MySQL5 und MSSQL

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

Es gibt 2 Möglichkeiten.
- Nur Tabellennamen - bekomme nur Tabellennamen
- Tabellen- und Spaltennamen - erhalten die Namen der Tabellen und Spalten in ihnen.

Es gibt auch einen Dateneingabebegrenzer, die oberste Ebene ( FROM ) ist standardmäßig auf 16 gesetzt, da die ersten 15 Tabellen standardmäßig sind und keine viel Information tragen.

Die Schaltfläche "GO DUMP" startet den Datenerfassungsvorgang.
Die empfangenen Daten können durch Drücken der Taste "SAVE TO FILE" in eine Datei gespeichert werden

Es gibt ein Dropdown-Menü "Convert" , das Wesen des Menüs und dessen Betrieb ist identisch mit S.4.1.5

7.1 Symbol der willkürlichen Daten
(SQL Injektionen -> OneChar BruteForce)
MySQL ist seit Version 4.1 und MSSQL aktuell.
Wird für eine Zeichendatenleiste aus einer Tabelle verwendet

Das Intervall des Truhens wird aus dem Tab SETTINGS -> MAIN genommen.

Sie können Abfragetyp verwenden, SELECT id FROM news

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

Die Schaltfläche "GET RESULT" startet den Vorgang des Throns.

8.1 Daten aus der Datenbank abrufen (SQL Injektionen -> Daten BruteForce)
Tatsächlich für MySQL 4 und MSSQL

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

Zuerst musst du das Tabellenfeld mit dem Namen der gewünschten Tabelle füllen.
Als nächstes müssen Sie die Namen der erforderlichen Felder der Liste hinzufügen, indem Sie diese Namen in das Feld unterhalb der Liste eingeben und die Schaltfläche "ADD FIELD" drücken.

Feldnamen können über die Registerkarten 5.1 und 6.1 erhalten werden.

HINWEIS: Mit der Schaltfläche "REMOVE FIELD" können Sie unnötige Felder aus der Liste löschen

Anschließend wird die Start- und Endposition der Linie eingestellt. Um die Korrektheit der Einstellungen zu überprüfen, können Sie die Schaltfläche "TEST" drücken, wenn alles in Ordnung ist, dann 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" getrennt haben

Wenn der Wert erscheint, können Sie mit dem Empfangen der Daten beginnen, für diese Taste drücken Sie die Taste "GET IT" .

Die empfangenen Daten können durch Drücken der Taste "SAVE TO FILE" in eine Datei gespeichert werden

9.1 Rückseitige Verbindung von MSSQL
Wird verwendet, um die Verbindung aus der Datenbank herzustellen. Dabei wird die MSSQL master.xp_cmdshell Datenbankprozedur zur Implementierung des Backcontext verwendet, Sie müssen die IP Adresse in der Zeile überprüfen und den NetCat Pfad in der Registerkarte SETTINGS -> MAIN setzen .

Bei erfolgreichem Betrieb haben Sie eine Befehlskonsole, in der Sie eine Verbindung zum Server öffnen.
10.1 Arbeiten mit Dateien

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

10.1.1.1 Lesen einer Datei

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

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

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

Und drücken Sie die Taste "READ" . Im Falle eines erfolgreichen Lesens erscheint die Datei auf dem Bildschirm im Editor-Fenster, wo Sie diese Datei mit dem Menüpunkt "SAVE FILE"

10.1.1.2 Hochladen einer Datei auf den Server

Die Funktion funktioniert, wenn:
1) Du hast mindestens ein Ausgabefeld,
2) die Anzahl der Felder wird bestimmt.
3) IN DER SERVER KONFIGURATION, SOLLTE NICHT BESCHRIEBEN!


Auch hier müssen Sie den absoluten Pfad zur erstellten Datei auf dem Server im oberen Rahmenfeld registrieren.

Es gibt 2 Möglichkeiten zum Hochladen der Datei.
- UNION - verwendet INTO OUTFILE (Standardversion)
- ENCLOSED BY - verwendet in MySQL seit Version 3 (es ist ratsam zu verwenden, wenn Version 1 nicht funktioniert)

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

10.1.2 MSSQL
Alles geschieht analog zu Punkt 10.1.1

11.1 Anschluss
Wird verwendet, um beliebige Pakete an den Server zu senden sowie die Antwort des Servers (Header und Response Body) anzuzeigen. Es gibt eine Suchfunktion im Körper.

Die Anforderung wird in "HTTP REQUEST" geschrieben
Der Antwort-Header ist geschrieben "ANTWORT: HTTP HEADER"
Der Antwortkörper ist geschrieben "ANTWORT: HTTP KÖRPER"

Die Anforderung wird durch Drücken der Taste "SEND REQUEST" gesendet

12.1 Geschichte
Hier werden alle Anfragen an den Server angezeigt und weitere Informationen.
Sie können es mit dem Menüpunkt "HISTORY -> SAVE LOG" speichern oder durch Drücken der gleichen "HISTORY -> CLEAR LOG"

13.1 Einstellungen
13.1.1 Allgemeines
Übersetzung der Schnittstelle (Pfad zur Sprachdatei).
Pfad für NetCat (Pfad zu NetCat) - verwendet in Absatz 9.1
Proxy-Einstellungen
- Proxy verwenden
- IP-Adresse
- Hafen
Symbolintervall ( BruteForce Symbolcode Intervall ) - verwendet in 4.1.2-4.1.5 und 7.1

Menü 1. Schließen Sie die SQL-Anweisung (Close SQL) - verwendet, um die ursprüngliche Abfrage abzuschneiden, so dass ein Fehler nicht angezeigt wird.
Für jede Datenbank werden verschiedene "Verschlüsse" verwendet
- MySQL = / *
- MSSQL = -

Menü 2. Ändern Sie Anführungszeichen zu einem Analog (Ändern Sie Anführungszeichen zu)
Wird verwendet, um die Filterung mit Scripts zu umgehen.

Menü 3. Ändern Sie den Platz für das Analog (Platzwechsel ändern)
Wird verwendet, um die Filterung mit Scripts zu umgehen

Weitere Merkmale:

Hauptmenü.

Doppelwerkzeuge - das Programmfenster ist vergrößert, es ist möglich, die Programmregistern beliebig anzuordnen, zum Beispiel für jedes Fenster mit einem Terminal oder einer Historie, Encoder und Decoder

Standardeinstellungen - alle Einstellungen des Programms werden zurückgesetzt.

STOP - stoppt das Programm.

Dienstprogramme

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


Ihr SQLHack.