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

SQL Injection Tool 4

Sagen Sie einfach, dass eine Änderung stattgefunden hat. Der Ort, an dem die Anforderungen eingefügt werden, ist mit {SQLINJ} markiert, dh wenn der Parameter getid anfällig ist, dann schreiben wir in der URL

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

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

Das Programm kann durch animierte Viren wie zB Kaspersky Antivirus 7.0 als HackTool definiert werden
Erkennungsbericht: bösartiges 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. Einführung.
Generell haben hier endlich die Hände den Punkt erreicht, ein Handbuch zu meinem Programm zu schreiben. Also zu 95% der Fragen zum Programm finden Sie hier die Antwort.

2. Starten Sie zu verwenden.

Als erstes müssen Sie den Pfad zum anfälligen Skript, den HTTP-Server-Port, den Proxy- Server- Proxy auf der Registerkarte EINSTELLUNGEN -> HAUPT festlegen und die Zeitüberschreitung der Serverantwort in Millisekunden auf der Registerkarte EINSTELLUNGEN -> HAUPT festlegen . 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 Parameter id anfällig ist, nimmt die Anforderung an den Server das Formular
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

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 unveränderbaren Parameter in die Tabelle eingegeben, die angezeigt wird, wenn die Cookie-Parameter- Schaltfläche gedrückt wird und der anfällige Parameter in das Feld Vulnerable-Parameter eingegeben wird und sein üblicher Wert in das Feld Wert eingegeben wird. POST-Parameter.

2.1.3 Die Cookie-Methode (GET)
Die Methode wird verwendet, wenn die Injektion im GET-Parameter vorhanden ist. Auf dem Server ist es jedoch notwendig, einen Header (ein bestimmtes Cookie) (zB NeedCook) im Header zu senden
Code: Beispiel: http://www.target.ru/vulnscript.php?id=1{SQL}
Wenn der Parameter id anfällig ist, nimmt die Anforderung an den Server das Formular

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 Anforderung an den Server das Formular

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

Id = {SQL}

2.1.5 Die POST-Methode (mit Cookie) ist ein sehr seltener Fall
Die Methode wird verwendet, wenn die Injektion in Cookies vorliegt, 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

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, einen Header (ein bestimmtes Cookie) (z. B. NeedCook)
Code: Beispiel: http://www.target.ru/vulnscript.php
Wenn der Parameter id anfällig ist, nimmt die Anforderung an den Server das Formular

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 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 was hier ist
Code: http://www.target.ru/vulnscript.php?id=1
was nicht hier ist (wir vergleichen sozusagen)
Code: http://www.target.ru/vulnscript.php?id=2
In der Nähe gibt es ein Feld, in dem es einen Wert gibt, der GEFUNDEN und NICHT GEFUNDEN ist , es ist nur notwendig, eine Methode der Suche zu wählen,

GEFUNDEN - Dieses Stück Code oder Sätze wird als Grundlage für die Richtigkeit (eine positive Schlussfolgerung, dass die Injektion richtig gemacht wird)

NICHT GEFUNDEN - Dieses Stück Code oder Sätze wird als Grundlage für NICHT-Korrektheit
(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. Beachten Sie jedoch, dass eine falsche Definition oder eine falsche Definition nicht vorhanden ist, wenn sich ein Teil des Schlüsselworts innerhalb der Tags befindet.

2.3 Verwenden Sie das Kontrollkästchen " Basisautorisierung" und die Felder " Anmelden" und " Passwort" , um zu autorisieren, bestimmte Standortspeicherorte einzugeben oder auf Dateien zuzugreifen.

3.1 Als nächstes müssen Sie die Anzahl der Felder festlegen, die in der Abfrage für die Datenbank verwendet werden. Dies kann durch Klicken auf den Button "LET KNOW QUANTITY"

Es gibt verschiedene Möglichkeiten zur Fehlberechnung:

3.1.1 Das Dropdown-Menü "VERWENDUNGSMETHODE"
Hier können Sie bestimmen, welche Methode zur Fehleinschätzung
- UNION SELECT
- ORDER BY
- GRUPPE BY
Im Allgemeinen ist die üblichste Methode ORDER BY und UNION SELECT
Die bevorzugte Methode für das Programm ist jedoch UNION SELECT, da diese Methode sofort die Ausgabefelder (das Textfeld FELD UNTERSTÜTZT DRUCKEN ) bestimmt, die für mehrere Programmfunktionen benötigt werden.

Wenn Sie die Anzahl der Abfragefelder mit den Methoden ORDER BY und GROUP BY definiert und erfolgreich festgelegt haben, sollten Sie die Startnummer der Suchfelder und die Endnummer der gefundenen Nummer angeben und die UNION SELECT-Methode auswählen, um die Felder mit der Ausgabe zu definieren. «LESEN SIE DIE MENGE» erneut.

3.1.2 Häkchen Bestimmen Sie die Felder für die Druckausgabe mit LIMIT
Es wird als alternative Möglichkeit zur Suche nach Feldern mit Ausgabe benötigt.

ANMERKUNG: Sie können auch den Wert eines anfälligen Parameters durch einen nicht realisierten Wert ersetzen, um die Felder mit der Ausgabe zu ermitteln, die wiederum mit dem Häkchen 3.1.2

Nach der 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" öffnet diese Abfrage im Browser.

4.1 Identifizieren der Datenbank (SQL Injections -> Identifying DB)
4.1.1 Art des DB - Im Moment kann das Programm zwei Arten von Datenbanken definieren, dies sind MySQL und MSSQL

4.1.2 USER () - Der Name des Benutzers der Datenbank, in deren Namen die Verbindung zur Datenbank hergestellt wird

Es gibt 3 Optionen zur Bestimmung.

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

TAKE ONE SYMBOL - Charakter für Charakter, grob von einem Charakter.
Das Intervall kann auf der Registerkarte Einstellungen angegeben werden.
BRUTE - symbolische Definition, brutit den ganzen Abfluss.

Beide Optionen sind für die Verwendung in MySQL 3 oder wenn sie nicht durch Standardmethoden bestimmt werden können. Nun, oder für Kamikaze.

4.1.3 DATENBANK () - Der Name der Datenbank, an die das Skript angehängt ist, um die Abfrage auszuführen.
Die Funktionsweise ist ähnlich wie USER () p.4.1.2

4.1.4 VERSION () - Die Version der Datenbank, an die das Skript angehängt ist, um die Abfrage auszuführen.
Die Funktionsweise ist ähnlich wie USER () p.4.1.2

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

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

Zum Durchsuchen von Namen, 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 merke ich, dass die Suche Wörter aus externen Textverzeichnissen verwendet , also müssen sie vor dem Beginn der Arbeit auf der Registerkarte EINSTELLUNGEN -> WÖRTERBUCH verbunden werden .
Wörterbücher sind von 4 Arten
- Tabellenverzeichnis
- 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 Kontrollkästchen auf der Registerkarte prüfen (SQL Injections -> Identifying DB -> MySQL / MSSQL)

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

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

Klicken Sie dann auf "GET TABLE NAMES"

Wenn in diesem Fall alle Wörter aus dem Wörterbuch 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, damit ihr Name im grauen Feld angezeigt wird, und Sie können die Suche nach den Feldnamen fortsetzen, indem Sie auf die 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 fragt Sie, wenn Sie den Knopf "GET FIELD NAMES" drücken.

6.1 Abrufen von Tabellen- und Feldnamen mit der Tabelle INFORMATION_SCHEMA.
(SQL-Injektionen -> Identifizierungs-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 Optionen.
- Nur Tabellennamen - Nur Tabellennamen erhalten
- Tabellen- und Spaltennamen - erhalten die Namen der Tabellen und Spalten in ihnen.

Es gibt auch ein Datenempfangslimit, die oberste Ebene ( FROM ) ist standardmäßig auf 16 gesetzt, da die ersten 15 Tabellen Standard sind und nicht viele Informationen enthalten.

Die Schaltfläche "GO DUMP" startet den Datenerfassungsprozess.
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" , die Essenz des Menüs und seine Bedienung ist identisch mit S.4.1.5

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

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

Sie können den Abfragetyp verwenden, SELECT id FROM news

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

Der Button "ERGEBNIS ERSTELLEN" startet den Prozess der Brute.

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.

Um zu beginnen, müssen Sie das Tabellenfeld mit dem Namen der gewünschten Tabelle füllen.
Als nächstes müssen Sie die Namen der erforderlichen Felder zur Liste hinzufügen, indem Sie diese Namen in das Feld unterhalb der Liste eingeben und die Schaltfläche "FELD HINZUFÜGEN" drücken.

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

HINWEIS: Sie können unnötige Felder aus der Liste löschen, indem Sie den Knopf "FELD ENTFERNEN"

Als nächstes wird die Start- und Endposition der Linie angepasst. Um die Richtigkeit der Einstellungen zu überprüfen, drücken Sie die Taste "TEST" . Wenn alles in Ordnung ist, sollten Sie den Wert der ausgewählten Felder durch einen Doppelpunkt ":" in der Liste der ersten Zeile in der Datenbank links neben der Schaltfläche "TEST"

Wenn der Wert erscheint, können Sie die Daten empfangen, indem Sie auf den Button "GET IT" klicken .

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

9.1 Zurück verbinden von MSSQL
Dient zum Erstellen eines Backcontext aus einer Datenbank. Dabei wird die Datenbankprozedur MSSQL master.xp_cmdshell verwendet. Um den Backcontext zu implementieren, müssen Sie die IP-Adresse in der Zeichenfolge prüfen und den NetCat-Pfad auf der Registerkarte SETTINGS -> MAIN festlegen .

Bei erfolgreichem Betrieb haben Sie eine Kommandokonsole, in der die Verbindung zum Server geöffnet wird.
10.1 Arbeiten mit Dateien

10.1.1 MySQL
Wird verwendet, um Dateien über SQL-Injection zu bearbeiten

10.1.1.1 Eine Datei lesen

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 Frame-Feld registrieren.

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

Und drücken Sie die "READ" Taste. Bei erfolgreichem Lesen erscheint die Datei im Editorfenster auf dem Bildschirm, wo Sie diese Datei mit dem Menüpunkt " Datei speichern "

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) IN DER SERVER-KONFIGURATION SOLLTEN SIE NICHT VORGEBRACHT WERDEN !!


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

Es gibt 2 Optionen zum Hochladen einer Datei.
- UNION - verwendet INTO OUTFILE (Standardversion)
- ENCLOSED BY - in MySQL seit Version 3 verwendet (es ist ratsam, 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 Abschnitt 10.1.1

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

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

Das Senden der Anfrage erfolgt durch Drücken der Taste "SEND REQUEST"

12.1 Geschichte
Hier werden alle Anfragen an den Server und zusätzliche Informationen angezeigt.
Sie können sie speichern, indem Sie den Menüpunkt "GESCHICHTE -> SPEICHERN LOG" oder löschen, indem Sie die gleiche "GESCHICHTE -> LÖSCHEN 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
Das Symbolintervall ( BruteForce Symbol Code Intervall ) wird in 4.1.2-4.1.5 und 7.1 verwendet

Menü 1. Schließen Sie die SQL-Anweisung (Close SQL) , mit der die ursprüngliche Abfrage abgeschnitten wird, damit kein Fehler auftritt.
Für jede Datenbank werden verschiedene "Verschlüsse" verwendet
- MySQL = / *
- MSSQL = -

Menü 2. Zitate zu einem Analog ändern (Anführungszeichen ändern)
Wird verwendet, um die Filterung mit Skripts zu umgehen.

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

Andere Eigenschaften:

Hauptmenü.

Doppelte Werkzeuge - das Programmfenster ist vergrößert, es ist möglich, die Programmregister willkürlich anzuordnen, zum Beispiel jedes Fenster mit einem Terminal oder Historie, Kodierer 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


Dein SQLHack.