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

Outil d'injection SQL 4

Je dirai tout de suite qu’une modification est apparue, l’endroit où les requêtes seront insérées est marqué {SQLINJ}, c’est-à-dire que si le paramètre getid est vulnérable , nous écrivons à l’URL.

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 semble être, en fait, qui veut le savoir.

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


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

SQL Injection TooL 3 manuel

1. Introduction
En général, enfin, les mains ont atteint le point de rédiger un manuel pour mon prog. Donc, pour 95% des questions sur le prog, vous trouverez la réponse ici.

2. Commencez à utiliser.

La première chose que vous devez entrer dans la ligne URL est le chemin du script vulnérable, le port du serveur HTTP, configurez le programme pour qu'il fonctionne avec le serveur proxy dans l'onglet PARAMÈTRES -> PRINCIPAL , définissez le délai de réponse du serveur dans l'onglet PARAMÈTRES -> PRINCIPAL en millisecondes et sélectionnez la méthode d'attaque p. 2.1.

2.1.1 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 demande 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 demande 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 convient de noter que si plusieurs paramètres de cookie sont utilisés, tous les paramètres invulnérables sont entrés dans la table qui apparaît lorsque le bouton Paramètres de cookie est cliqué, et le paramètre vulnérable est entré dans le champ Paramètre vulnérable , et sa valeur habituelle est entrée dans le champ Valeur , le même principe est utilisé. Paramètres POST.

2.1.3 Méthode Cookie (GET)
La méthode est utilisée lorsque l'injection est présente dans le paramètre GET, mais un certain cookie (NeedCook) doit être envoyé dans l'en-tête au serveur, 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 demande 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 demande 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 Méthode POST (avec cookie) - cas très rare
La méthode est utilisée lorsque l'injection est présente dans les cookies, mais que le POST est utilisé.
Code: Exemple: http://www.target.ru/vulnscript.php
Si le paramètre VulnCook dans les cookies est vulnérable, la demande 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 Cookie (POST)
La méthode est utilisée lorsque l'injection est présente dans le paramètre POST, mais un certain cookie (NeedCook) doit être envoyé dans l'en-tête au serveur, par exemple pour l'autorisation.
Code: Exemple: http://www.target.ru/vulnscript.php
Si le paramètre id est vulnérable, la demande 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 (champ de texte Chaîne)

Nous introduisons ici le mot que nous pouvons trouver de cette façon.

Exemple pour la méthode GET,
D'abord on regarde
Code: http://www.target.ru/vulnscript.php?id=1
Puis on regarde
Code: http://www.target.ru/vulnscript.php?id=2
nous trouvons ce qui est ici
Code: http://www.target.ru/vulnscript.php?id=1
ce qui n'est pas ici (comparer pour ainsi dire)
Code: http://www.target.ru/vulnscript.php?id=2
À proximité, il y a un champ dans lequel il y a une valeur FOUND et NOT FOUND , il suffit simplement de choisir une méthode de recherche,

TROUVE - Ce morceau de code, ou cette phrase, sert de base à la correction (conclusion positive que l'injection a été faite correctement)

NOT FOUND - Ce morceau de code, ou cette phrase, sert de base à la non-exactitude.
(également une conclusion positive que l'injection a été faite correctement)

CONSEIL: pour automatiser la recherche, vous pouvez utiliser le bouton DETERMINATION AUTOMATIQUE , mais il convient de noter qu'il peut exister une fausse définition ou une fausse définition lorsque le mot clé est à l'intérieur des balises.

2.3 La case à cocher Utiliser l'autorisation de base et les zones de texte Nom d' utilisateur et Mot de passe permettent d'autoriser l'accès à des emplacements spécifiques du site ou d'accéder aux fichiers.

3.1 Ensuite, vous devez déterminer le nombre de champs utilisés dans la requête à la base de données. Pour ce faire, cliquez sur le bouton "LET KNOW QUANTITY".

Il y a plusieurs options pour le rendu:

3.1.1 Menu déroulant "METHODE D'UTILISATION"
Ici, vous pouvez déterminer quelle méthode pour effectuer le calcul
- UNION SELECT
- COMMANDER PAR
- GROUPE PAR
En général, la méthode la plus courante est ORDER BY et UNION SELECT.
Toutefois, 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 (champ de texte IMPRESSION DE CHAMP ( FIELD SUPPORTS )) nécessaires à plusieurs fonctions du programme.

Il est à noter que si vous avez déterminé le nombre de champs de requête à l’aide des méthodes ORDER BY et GROUP BY, vous devez alors spécifier le nombre de champs de départ pour la recherche, le nombre final du nombre trouvé et sélectionner la méthode UNION SELECT pour définir les champs avec sortie, puis cliquez sur OK. "FAITES CONNAÎTRE LA QUANTITÉ" à nouveau.

3.1.2 Case à cocher Déterminer les zones d'assistance à l'aide de LIMIT
C'est un moyen alternatif de rechercher des champs avec une sortie.

REMARQUE: vous pouvez également remplacer la valeur du paramètre vulnérable par une valeur inexistante pour déterminer les champs avec la sortie, en combinant à nouveau cette opération avec la coche 3.1.2.

Après avoir sélectionné avec succès le 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", vous ouvrirez 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 base de données - Pour l’instant, le programme peut déterminer deux types de bases de données: MySQL et MSSQL.

4.1.2 USER () est le nom de l'utilisateur de la base de données pour le compte duquel la connexion à la base de données est établie.

Il y a 3 définitions.

UNION est le moyen le plus acceptable de déterminer, le serveur recevant une requête pour déterminer la valeur entière en une fois.

SYMBOLE TAKE ONE - Définition caractère par caractère, prend un caractère à la fois.
De plus, l'intervalle peut être spécifié dans l'onglet Paramètres.
BRUTE - Définition du personnage, bat tout le drain.

Les deux options, à utiliser dans MySQL 3, ou s’il n’est pas possible de déterminer les méthodes standard. Eh bien, ou pour le kamikaze.

4.1.3 DATABASE () - nom de la base de données à laquelle le script est connecté pour exécuter la demande.
La méthode de travail est similaire à USER (), clause 4.1.2

4.1.4 VERSION () - version de la base de données à laquelle le script est connecté pour exécuter la demande.
La méthode de travail est similaire à USER (), clause 4.1.2

4.1.5 Le menu déroulant CONVERT peut aider à déterminer les valeurs à l'aide de UNION, lorsque la base utilise un codage et les valeurs USER (), DATABASE (), VERSION () en utilisent un autre.

5.1 Noms de table et de champ bruts.
(Injections SQL -> Identification de la base de données -> MySQL / MSSQL)

Utilisé pour rechercher des noms, comme mentionné ci-dessus.
Pour que la recherche soit réussie, vous devez avoir sélectionné le nombre de champs décrit à la section 3.1.1.

Je noterai ici que lors du tri, les mots de dictionnaires de texte externes sont utilisés. Par conséquent, avant de commencer le travail, vous devez les connecter à l’onglet PARAMÈTRES -> DICTIONNAIRE.
Les dictionnaires ont 4 types
- Dictionnaire de table
- Dictionnaire de terrain
- Dictionnaire préfixe
- Dictionnaire suffixe

NOTE : Ils peuvent être édités sur le même onglet.
.
Pour utiliser les dictionnaires de préfixes et de suffixes, cochez les cases correspondantes dans l'onglet (Injections SQL -> Identification de la base de données -> MySQL / MSSQL).

“Utiliser le préfixe d'un fichier lorsque des tables et des champs bruteforce”
"Utiliser le suffixe du fichier lorsque des tables et des champs bruteforce"

Pour utiliser en permanence un préfixe ou un suffixe, vous pouvez les entrer dans les champs Préfixe et Suffixe. Ensuite, ils ne seront pas extraits des dictionnaires.

Ensuite, cliquez sur "GET TABLE NAMES"

De plus, 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 attaquée, vous devez sélectionner la table dont vous avez besoin pour que son nom apparaisse dans le champ gris en haut, puis continuer à analyser la table pour trouver les noms de champs en appuyant sur le bouton «OBTENIR DES NOMS DE CHAMP».

REMARQUE : vous pouvez ajouter des préfixes et des suffixes de dictionnaires aux noms de champs. Le programme vous le demandera lorsque vous appuierez sur le bouton «LIRE NOM DE CHAMP» .

6.1 Obtenir les noms des tables et des champs à 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 que le nombre de champs est déterminé.

Il y a 2 options.
- Noms de table uniquement - obtenir uniquement les noms de table
- Noms de tables et de colonnes - Obtenez les noms des tables et des colonnes.

Il existe également un limiteur d'acquisition de données. Le niveau supérieur ( FROM ) est défini par défaut sur 16, car les 15 premières tables sont standard et ne contiennent pas beaucoup d'informations.

Le bouton «GO DUMP» lance le processus d’acquisition de données.
Les données obtenues peuvent être sauvegardées dans un fichier en cliquant sur le bouton "ENREGISTRER DANS LE FICHIER"

Il existe un menu déroulant «Convertir» , l’essence du menu et son fonctionnement sont identiques à ceux de la clause 4.1.5.

7.1 Données aléatoires brutes caractère par bit
(Injections SQL -> OneChar BruteForce)
Actuellement MySQL depuis la version 4.1 et MSSQL.
Utilisé pour la force brute des données caractère par caractère de la table

L'intervalle brutal est tiré de l'onglet PARAMÈTRES -> PRINCIPAL.

Vous pouvez utiliser des requêtes de type, SELECT id from news

Le bouton "Aperçu de la requête SQL" affiche la requête préliminaire au serveur

Le bouton "GET RESULT" démarre le processus brute.

8.1 Obtenir des 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 que le nombre de champs est déterminé.

Vous devez d’abord remplir le champ Table avec le nom de la table souhaitée.
Ensuite, vous devez ajouter les noms des champs obligatoires à la liste en les entrant dans le champ situé sous la liste, puis en appuyant sur le bouton «AJOUTER UN CHAMP» .

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

REMARQUE: vous pouvez supprimer les champs non désirés de la liste à l’aide du bouton «SUPPRIMER LE CHAMP».

Ensuite, définissez les positions de début et de fin de la ligne. Afin de vérifier l'exactitude des paramètres, vous pouvez cliquer sur le bouton "TESTER" . Si tout va bien, vous devriez afficher la valeur des champs sélectionnés, séparés par un signe deux-points:

Si la valeur apparaît, vous pouvez commencer à recevoir des données. Pour ce faire, appuyez sur le bouton "OBTENIR" .

Les données obtenues peuvent être sauvegardées dans un fichier en cliquant sur le bouton "ENREGISTRER DANS LE FICHIER"

9.1 Connecter à nouveau depuis MSSQL
Utilisé pour rendre backconnect à partir de DB. Dans ce cas, la procédure de base de données MSSQL master..xp_cmdshell est utilisée pour effectuer le backconnect. Vous devez vérifier l'adresse IP dans la chaîne et définir le chemin d'accès à NetCat dans l'onglet PARAMÈTRES -> PRINCIPAL .

En cas de succès, vous aurez une console de commande dans laquelle la connexion au serveur sera ouverte.
10.1 Gestion des fichiers

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

10.1.1.1 Lecture d'un fichier

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

Vous devez enregistrer le chemin absolu du fichier sur le serveur dans le champ du cadre inférieur.

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

Et appuyez sur le bouton "LIRE" . En cas de lecture réussie, le fichier apparaîtra à l'écran dans la fenêtre de l'éditeur, où vous pourrez sauvegarder ce fichier à l'aide de l'option de menu «ENREGISTRER LE FICHIER».

10.1.1.2 Télécharger le fichier sur le serveur

La fonction fonctionnera si:
1) vous avez au moins un champ de sortie
2) déterminé le nombre de champs.
3) DANS LA CONFIGURATION DU SERVEUR, NE QUALIFIEZ PAS LES CITATIONS DEVRAIENT ÊTRE ENGAGÉES !!


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

Il existe 2 options pour télécharger le fichier.
- UNION - utilisé INTO OUTFILE (version standard)
- ENCLOSED BY - utilisé dans MySQL depuis la version 3 (il est conseillé de l'utiliser lorsque l'option 1 ne fonctionne pas)

Le texte du fichier à télécharger sur le serveur est entré dans la zone de texte ci-dessous.

10.1.2 MSSQL
Tout se fait par analogie avec p.10.1.1

11.1 Terminal
Utilisé pour envoyer des paquets arbitraires au serveur, ainsi que pour afficher la réponse du serveur (en-tête et 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: EN-TÊTE HTTP".
Le corps de la réponse est écrit "REPONSE: CORPS HTTP"

Envoi d'une demande en appuyant sur le bouton «ENVOYER DEMANDE»

12.1 Histoire
Toutes les demandes de serveur et les informations supplémentaires sont affichées ici.
Vous pouvez l’enregistrer à l’aide de l’option "HISTORY -> SAVE LOG" du menu ou l’effacer en cliquant au même endroit sur "HISTORY -> CLEAR LOG"

13.1 Paramètres
13.1.1 Général (Principal)
Traduction d'interface (chemin d'accès au fichier de langue).
Chemin pour NetCat (Chemin vers NetCat) - utilisé dans la section 9.1
Paramètres de proxy
- utiliser un proxy
- adresse IP
- le port
Intervalle de symbole (intervalle de code de symbole BruteForce ) - utilisé dans 4.1.2-4.1.5 et 7.1

Menu 1. Fermer l'expression SQL (Close SQL) - utilisé pour couper la requête d'origine, de sorte qu'aucune erreur ne s'affiche.
Pour chaque base, différents "Volets" sont utilisés.
- MySQL = / *
- MSSQL = -

Menu 2 Changer les guillemets en analog (Changer les guillemets en)
Utilisé pour contourner le filtrage avec des scripts.

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

Autres caractéristiques:

Menu principal

Double Tools - augmente la fenêtre du programme, vous pouvez assembler arbitrairement les onglets du programme, pour plus de commodité, par exemple, toute fenêtre avec un terminal ou un historique, des codeurs 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 Utilitaires (Outils)

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


Votre SQLHack.