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

Outil d'injection SQL 4

Il suffit de dire qu'il y avait un changement, l'endroit où les requêtes seront insérées est marqué {SQLINJ}, c'est-à-dire, si le paramètre getid est vulnérable, alors dans l'URL, nous écrivons

http://localhost/test.php?getid=1{SQLINJ}
Et s'il s'agit d'un paramètre de texte, l'URL sera

http://localhost/test.php?getid=1'{SQLINJ}
Eh bien, tout le reste est, en fait, qui veut comprendre.

Le programme peut être défini par des virus animés tels que par exemple Kaspersky Antivirus 7.0 comme HackTool
Rapport de détection: programme malveillant HackTool.Win32.SQLInject.i 4 Fichier: s-tool.exe


software.gif
Outil d'injection SQL 4
sipt4.rar [2437KB]

Manuel to SQL Injection TooL 3

1. Introduction.
En général, voici enfin les mains ont atteint le point d'écrire un manuel à mon prog. Donc, sur 95% des questions sur le programme, vous trouverez la réponse ici.

2. Commencez à utiliser.

La première chose à faire est d'entrer le chemin du script vulnérable, le port du serveur HTTP, configurer le proxy du serveur proxy dans l'onglet SETTINGS -> MAIN , définir le délai de réponse du serveur dans l'onglet SETTINGS -> MAIN en millisecondes et sélectionner la méthode d'attaque. 2.1.

2.1.1 La méthode GET
La méthode est utilisée lorsque l'injection est présente dans le paramètre GET.
Code: Exemple: http://www.target.ru/vulnscript.php?id=1
Si le paramètre id est vulnérable, la requête au serveur prend la forme
Code: http://www.target.ru/vulnscript.php?id=1{SQL}

2.1.2 Méthode GET (avec cookie)
La méthode est utilisée lorsque l'injection est présente dans les cookies, mais GET est utilisé
Code: Exemple: http://www.target.ru/vulnscript.php?id=1
Si le paramètre VulnCook dans les cookies est vulnérable, la requête au serveur prend la forme

Code: GET /vulnscript.php?id=1 HTTP / 1.0
Hôte: www.target.ru
Cookie: VulnCook = {SQL}
Connexion: Fermer

Il est à noter que si plusieurs paramètres cookie sont utilisés, tous les paramètres invulnérables sont entrés dans la table qui apparaît lorsque le bouton Cookie parameters est pressé et le paramètre vulnerable est entré dans le champ Vulnerable parameter , et sa valeur habituelle est entrée dans le champ Value. Paramètres POST.

2.1.3 La méthode des cookies (GET)
La méthode est utilisée lorsque l'injection est présente dans le paramètre GET, mais sur le serveur il est nécessaire d'envoyer dans l'entête un certain cookie (NeedCook), par exemple pour l'autorisation
Code: Exemple: http://www.target.ru/vulnscript.php?id=1{SQL}
Si le paramètre id est vulnérable, la requête au serveur prend la forme

Code: GET /vulnscript.php?id=1{SQL} HTTP / 1.0
Hôte: www.target.ru
Cookie: NeedCook = phpsession
Connexion: Fermer

2.1.4 Méthode POST
La méthode est utilisée lorsque l'injection est présente dans le paramètre POST.
Code: Exemple: http://www.target.ru/vulnscript.php
Si le paramètre id est vulnérable, la requête au serveur prend la forme

Code: POST /vulnscript.php?id=1 HTTP / 1.0
Hôte : www.target.ru
Connexion: Fermer

Id = {SQL}

2.1.5 La méthode POST (avec Cookie) est un cas très rare
La méthode est utilisée lorsque l'injection est présente dans les cookies, mais POST est utilisé
Code: Exemple: http://www.target.ru/vulnscript.php
Si le paramètre VulnCook dans les cookies est vulnérable, la requête au serveur prend la forme

Code: POST /vulnscript.php HTTP / 1.0
Hôte: www.target.ru
Cookie: VulnCook = {SQL}
Connexion: Fermer

2.1.6 Méthode de cookie (POST)
La méthode est utilisée lorsque l'injection est présente dans le paramètre POST, mais sur le serveur il est nécessaire d'envoyer dans l'en-tête un certain cookie (NeedCook), par exemple pour l'autorisation
Code: Exemple: http://www.target.ru/vulnscript.php
Si le paramètre id est vulnérable, la requête au serveur prend la forme

Code: POST /vulnscript.php?id=1{SQL} HTTP / 1.0
Hôte: www.target.ru
Cookie: NeedCook = phpsession
Connexion: Fermer

id = 1 {SQL}

2.2 Mot-clé ou expression (chaîne de texte)

Un mot est entré ici que nous pouvons trouver de cette manière.

Un exemple pour la méthode GET,
Premier regard
Code: http://www.target.ru/vulnscript.php?id=1
Ensuite, nous regardons
Code: http://www.target.ru/vulnscript.php?id=2
nous trouvons ce qu'il y a ici
Code: http://www.target.ru/vulnscript.php?id=1
ce qui n'est pas ici (on compare pour ainsi dire)
Code: http://www.target.ru/vulnscript.php?id=2
A proximité il y a un champ dans lequel il y a une valeur TROUVEE et NON TROUVEE , il faut juste choisir une méthode de recherche,

TROUVE - Ce morceau de code, ou phrases, est pris comme base de la correction (une conclusion positive que l'injection est faite correctement)

NOT FOUND - Ce morceau de code, ou des phrases est pris comme base pour NON exactitude
(également une conclusion positive que l'injection a été faite correctement)

ASTUCE: Pour automatiser la recherche, vous pouvez utiliser le bouton AUTO DETERMINE , mais il vaut la peine de noter qu'il peut y avoir une fausse définition ou une fausse définition non, lorsqu'une partie du mot-clé se trouve dans les balises.

2.3 La case à cocher Utiliser l'autorisation de base et les champs de texte Connexion et Mot de passe permettent d'autoriser l'accès à certains emplacements de site ou d'accéder à des fichiers.

3.1 Ensuite, vous devez déterminer le nombre de champs qui sont utilisés dans la requête à la base de données, cela peut être fait en cliquant sur le bouton "LET KNOW QUANTITY"

Il y a plusieurs options pour une erreur de calcul:

3.1.1 Le menu déroulant "MÉTHODE D'UTILISATION"
Ici vous pouvez déterminer quelle méthode effectuer une erreur de calcul
- UNION SELECT
- COMMANDER PAR
- GROUP BY
En général, la méthode la plus courante est ORDER BY et UNION SELECT
Mais la méthode préférée pour le programme est UNION SELECT, car cette méthode détermine immédiatement les champs de sortie (le champ de texte IMPRESSION DU SUPPORT DE CHAMP ) requis pour plusieurs fonctions du programme.

Si vous avez défini le nombre de champs de requête avec les méthodes ORDER BY et GROUP BY et que vous avez déterminé avec succès, vous devez spécifier le nombre de champs de recherche et le nombre final égal au nombre trouvé et sélectionner la méthode UNION SELECT pour définir les champs avec sortie. «RÉPONDRE À LA QUANTITÉ» .

3.1.2 checkmark Déterminer les champs d'impression des suppots en utilisant LIMIT
Il est nécessaire comme une alternative pour rechercher des champs avec sortie.

NOTE: Vous pouvez également remplacer la valeur d'un paramètre vulnérable par une valeur non réalisée pour déterminer les champs avec sortie, en le combinant à nouveau avec la coche 3.1.2

Après la sélection réussie du nombre de champs, si vous utilisez la méthode GET, vous aurez une ligne dans le champ URL de travail , en cliquant sur le bouton "Afficher dans le navigateur" ouvrira cette requête dans le navigateur.

4.1 Identification de la base de données (Injections SQL -> Identification de la base de données)
4.1.1 Type de DB - Actuellement, le programme peut définir deux types de bases de données: MySQL et MSSQL

4.1.2 USER () - le nom de l'utilisateur de la base de données au nom de laquelle la connexion à la base de données est faite

Il y a 3 options pour déterminer.

UNION - la façon la plus acceptable de déterminer, le serveur est envoyé 1 demande pour déterminer la valeur entière à la fois.

PRENEZ UN SYMBOLE - personnage par caractère, brutal par un personnage.
Et l'intervalle peut être spécifié sur l'onglet des paramètres.
BRUTE- définition symbolique, brutalité tout le drain.

Les deux options sont à utiliser dans MySQL 3, ou si elles ne peuvent pas être déterminées par des méthodes standard. Eh bien, ou pour kamikaze.

4.1.3 DATABASE () - le nom de la base de données à laquelle le script est attaché pour exécuter la requête.
La méthode de fonctionnement est similaire à USER () p.4.1.2

4.1.4 VERSION () - la version de la base de données à laquelle le script est attaché pour exécuter la requête.
La méthode de fonctionnement est similaire à USER () p.4.1.2

4.1.5 le menu déroulant CONVERT peut aider à déterminer les valeurs en utilisant UNION lorsque la base de données utilise un encodage, et les valeurs USER (), DATABASE (), VERSION () en utilisent une différente.

5.1 Noms bruts des tables et des champs de champ.
(Injections SQL -> Identification DB -> MySQL / MSSQL)

Utilisé pour parcourir les noms, comme mentionné ci-dessus. +
Pour une recherche réussie, vous devez sélectionner le nombre de champs décrits dans la section 3.1.1

Ici, je note que la recherche utilise des mots de dictionnaires de texte externes, de sorte qu'ils doivent être connectés sur l'onglet PARAMÈTRES -> DICTIONNAIRE avant de commencer le travail .
Les dictionnaires sont de 4 types
- Dictionnaire de table
- Dictionnaire de terrain
- Préfixe dictionnaire
- Dictionnaire des suffixes ( Dictionnaire des suffixes )

REMARQUE : vous pouvez les modifier dans le même onglet
.
Pour utiliser les dictionnaires de préfixe et de suffixe, vous devez cocher les cases appropriées dans l'onglet (Injections SQL -> Identifier la BD -> MySQL / MSSQL)

"Utiliser le préfixe du fichier lorsque les tables et champs de bruteforce"
"Utiliser le suffixe du fichier lorsque les tables et champs de bruteforce"

Pour utiliser de façon permanente un préfixe ou un suffixe, vous pouvez les entrer dans les champs Préfixe et Suffixe. Ensuite, ils ne seront pas pris dans les dictionnaires.

Puis cliquez sur "GET TABLE NAMES"

Dans ce cas, si tous les mots du dictionnaire apparaissent dans cette liste, les paramètres du programme ne sont pas corrects.

Après une recherche réussie, vous verrez la table existante dans la base de données attaquée, vous devez sélectionner la table dont vous avez besoin pour que son nom apparaisse dans le champ gris et continuer à scanner la table pour trouver les noms des champs en cliquant sur le bouton "GET FIELD NAMES"

NOTE : vous pouvez ajouter des préfixes et des suffixes des dictionnaires aux noms de champs, le programme vous demandera quand vous appuyez sur le bouton "GET FIELD NAMES" .

6.1 Obtention des noms de table et de champ à l'aide de la table INFORMATION_SCHEMA.
(Injections SQL -> Identification de la base de données -> DUMP INF_SCH)
Actual pour MySQL5 et MSSQL

La fonction fonctionnera si vous avez au moins un champ de sortie, et le nombre de champs est défini.

Il y a 2 options.
- Noms de tables uniquement - obtenir uniquement les noms de tables
- Noms de tables et de colonnes - récupère les noms des tables et des colonnes qui s'y trouvent.

Il y a aussi une limite de réception de données, le niveau supérieur ( FROM ) est fixé à 16 par défaut, puisque les 15 premiers tableaux sont standard et ne contiennent pas beaucoup d'informations.

Le bouton "GO DUMP" démarre le processus d'acquisition de données.
Les données reçues peuvent être sauvegardées dans un fichier en cliquant sur le bouton "SAVE TO FILE"

Il y a un menu déroulant "Convertir" , l'essence du menu et son fonctionnement est identique à p.4.1.5

7.1 Symbole de données arbitraires
(Injections SQL -> OneChar BruteForce)
MySQL est à jour depuis la version 4.1 et MSSQL.
Utilisé pour une barre de données de caractères d'une table

L'intervalle de brute est tiré de l'onglet SETTINGS -> MAIN.

Vous pouvez utiliser le type de requête, SELECT ID de nouvelles

Le bouton "Preview SQL query" affiche une requête préliminaire au serveur

Le bouton "GET RESULT" commence le processus de brute.

8.1 Obtention de données de la base de données. (Injections SQL -> Data BruteForce)
Actual pour MySQL 4 et MSSQL

La fonction fonctionnera si vous avez au moins un champ de sortie, et le nombre de champs est défini.

Pour commencer, vous devez remplir le champ Table avec le nom de la table que vous voulez.
Ensuite, vous devez ajouter les noms des champs obligatoires à la liste en entrant ces noms dans le champ sous la liste, et en appuyant sur le bouton "AJOUTER CHAMP" .

Les noms de champs peuvent être obtenus en utilisant les onglets 5.1 et 6.1.

NOTE: vous pouvez supprimer les champs inutiles de la liste en utilisant le bouton "REMOVE FIELD"

Ensuite, la position de début et de fin de la ligne est ajustée. Pour vérifier l'exactitude des paramètres, vous pouvez appuyer sur le bouton "TEST" , si tout va bien, vous devez avoir la valeur des champs sélectionnés séparés par deux points ":" dans la liste correspondant à la première ligne de la base de données à gauche du bouton "TEST"

Si la valeur apparaît, vous pouvez commencer à recevoir les données, pour cela appuyez sur le bouton "GET IT" .

Les données reçues peuvent être sauvegardées dans un fichier en cliquant sur le bouton "SAVE TO FILE"

9.1 Connexion arrière de MSSQL
Utilisé pour créer un backcontext à partir d'une base de données. Pour ce faire, la procédure de base de données MSSQL master.xp_cmdshell est utilisée, pour implémenter le backcontext, vous devez vérifier l'adresse IP dans la chaîne et définir le chemin NetCat dans l'onglet SETTINGS -> MAIN .

En cas de succès, vous disposerez d'une console de commande dans laquelle la connexion au serveur sera ouverte.
10.1 Travailler avec des fichiers

10.1.1 MySQL
Utilisé pour travailler avec des fichiers via l'injection SQL

10.1.1.1 Lire un fichier

La fonction fonctionnera si vous avez au moins un champ de sortie, et le nombre de champs est défini.

Vous devez enregistrer le chemin d'accès absolu au fichier sur le serveur dans le champ du cadre inférieur.

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

Et appuyez sur le bouton "READ" . En cas de lecture réussie, le fichier apparaîtra sur l'écran dans la fenêtre de l'éditeur, où vous pouvez enregistrer ce fichier en utilisant le menu "SAVE FILE"

10.1.1.2 Téléchargement d'un fichier sur le serveur

La fonction fonctionnera si:
1) vous avez au moins un champ de sortie,
2) le nombre de champs est déterminé.
3) DANS LA CONFIGURATION DU SERVEUR, NE DEVRAIT PAS ÊTRE DÉCRIT !!


Encore une fois, vous devez enregistrer le chemin absolu vers le fichier créé sur le serveur dans le champ du cadre supérieur.

Il y a 2 options pour télécharger un fichier.
- UNION - utilise INTO OUTFILE (version standard)
- ENCLOSED BY - utilisé dans MySQL depuis la version 3 (il est conseillé d'utiliser quand la version 1 ne fonctionne pas)

Le texte du fichier à télécharger sur le serveur est entré dans le champ de texte à partir du bas.

10.1.2 MSSQL
Tout est fait par analogie avec la clause 10.1.1

11.1 Terminal
Utilisé pour envoyer des paquets arbitraires au serveur, ainsi que pour afficher la réponse du serveur (l'en-tête et le corps de la réponse). Il y a une fonction de recherche dans le corps.

La demande est écrite dans "HTTP REQUEST"
L'en-tête de réponse est écrit "REPONSE: HTTP HEADER"
Le corps de la réponse est écrit "RÉPONSE: CORPS HTTP"

L'envoi de la requête se fait en appuyant sur le bouton "ENVOYER DEMANDE"

12.1 Histoire
Ici toutes les demandes au serveur sont affichées, et des informations supplémentaires.
Vous pouvez l'enregistrer en utilisant l'option de menu "HISTORIQUE -> SAVE LOG" , ou l'effacer en appuyant sur le même "HISTORY -> CLEAR LOG"

13.1 Paramètres
13.1.1 Général
Traduction de l'interface (Chemin vers le fichier de langue).
Chemin d'accès à NetCat (Chemin d'accès à NetCat) - utilisé au paragraphe 9.1
Paramètres de proxy
- utiliser un proxy
- Adresse IP
- Port
L'intervalle de symbole (intervalle de code de symbole BruteForce ) est utilisé dans 4.1.2-4.1.5 et 7.1

Menu 1 Fermez l'instruction SQL (Close SQL) - utilisée pour couper la requête d'origine, de sorte qu'une erreur n'apparaisse pas.
Pour chaque base de données, différentes "fermetures" sont utilisées
- MySQL = / *
- MSSQL = -

Menu 2. Changer les citations en un analogue (Changer les citations en)
Permet de contourner le filtrage avec des scripts.

Menu 3. Changer l'espace pour l'analogique (Changer l'espace en)
Permet de contourner le filtrage avec des scripts

D'autres caractéristiques:

Le menu principal

Double outils - la fenêtre du programme est agrandie, il est possible d'arranger arbitrairement les onglets du programme, pour plus de commodité, par exemple, n'importe quelle fenêtre avec un terminal ou un historique, des encodeurs et des décodeurs

Paramètres par défaut - tous les paramètres du programme sont réinitialisés.

STOP - arrête le programme.

Section des utilitaires

Contient une variété d'encodeurs et de décodeurs de chaînes, tels que HEX, BASE64, URL-LIKE, PHP CHR


Votre SQLHack.