Bonjour, je viens poster ici un petit tuto sur les injection SQL !
Tout d'abord, imaginons un site web ou vous pouvez voir les informations des différents utilisateurs :
Nous voilà donc sur le profile de l'admin par exemple, si vous rajouter une quote et qu'il y a une erreur,
alors il y a une faille SQL !
Maintenant il nous faut le nombre de champs, par exemple, si vous lisez le code, vous voyer qu'il y a deux champs,
user_login et user_mail, si vous faite un order by, vous irez seulement jusqu'a deux.
Voilà comment sera intepréter votre requête SQL :
Ensuite nous allons utiliser union all select qui permet l'affichage des données, pour trouver dans le cas suivant,
la version de la BDD:
Voilà la requete :
version en 5.x sont exploitable !
Deux solution maintenant, soit vous êtes sur un CMS et vous connaissez la structure
de la BDD et des tables, soit il vous faut la trouver par vous même !
group_concat(schema_name)
information_schema.schemata
La fonction group_concat permet de regrouper tous les résultats sur une ligne, schema_name est une table qui contient
le nom de toute les base de données que vous avez.
information_schema est une base donnée qui se génere automatiquement sous phpmyadmin, elle contient les différentes option
et configuration de phpmyadmin, dont le nom de toute vas BDD, dans la table schemata !
Voilà la requête envoyé au server :
Donc là vous sera retourner les différentes base :
Donc maintenant, il nous faut trouver les différentes table, pour cela on va encore utiliser la fonction groupe_concat, mais cette fois, sur
table_name, qui encore une fois est dans information_schema
Bien évidement vous avez bien trop de table, le plus simple serait de rajouter une condition pour voir les tables qui nous intéresse
voilà côté server :
Maintenant il nous faut les colonnes de cette table, nous allons encore utiliser la table information_schema, celle ci contient une table, column qui contient tout les
colonnes de toute les tables, donc on a besoin de la colonne column_name, de la base information_schema et de la table columns ou nous avons comme condition
table_name le nom de la table qui nous intéresse :
voilà côté server :
Maintenant il ne nous reste plus qu'a récupérer les données qui nous intéresse, donc se sera pour nous les colonnes user_login et user_password :
côté server :
Vous aurez donc l'identifiant avec le mdp qui apparaitron :
Si vous avez des questions n'hésiter pas, ou si des explications ne sont pas claire, ou encore si je me suis tromper, dites le :)