.: injection sql :.
Je vais vous faire un tuto sur...accrocher vous bien!!!L'INJECTION SQL tatatannn!!! Quoi c'est nul?
Mwé c'est vrai que le nom est pourri mais c'est l'une des failles les plus presentes sur le net et en plus
elle est assez simple a exploiter!!!
Injection SQL kezako? Une injection SQL c'est comme son nom l'indique une injection de script php dans une base de données MySQL.
Comme je suis un mec super sympa 8) je vais vous expliquez le principe avec un exemple simple : Dans cet exemple vous etes ==>vous<== et vous vous baladez sur le net en recherche de victime potentiel
quand soudain vous voyez un formulaire d'authentification de ce style : <form action="admin.php">
<input type="text name="login">
<br><input type="text" name="pass">
<br><input type="submit"> il presente 2 champs :
l'un pour rentrer son login et l'autre son passe et les informations sont envoyées au script admin.php...
Et a votre avis de quel facon ces info sont transmises au script...?Par requete SQL, les information envoyées
seront dans ce genre la: $query = "SELECT * from admin WHERE login ='$login' And pass='$pass' "; Et la le script va voir si il existe dans admin.php le nom login contenu dans cette variable
(ce que vous avez mis dans le formulaire) et pareil pour le pass.
Si il le trouve (et la vous aurez une veine de cocu :) vous pourrez accedez a la page
sinon vous verrez un message d'erreur.Bon alors elle est ou la fa-faille?
Dans les guillements et les quotes qui delimite le script...Si vous mettez ca comme login : admin '
et un passe a la wanéguene: eskuz.
Ca va donner: $query = "SELECT * FROM admin WHERE login = 'admin'' AND pass = 'eskuz' "; On voit clairement que la ya une zolie fa-faille vu que les deux apostrophes (quotes) la votre
plus celle du script ont été prise en compte ce qui veut dire qu'on va pouvoir modifier le script
et prendre le controle dela base de donnée et par la meme occasion si le pass de la base de donnée
est le meme que le passe ftp alors on va pouvoir...Avertir le webmaster qu'il a une fa-faille
(c dure d'etre gentil).Alors pour modifier le script voila ce qu'on va faire:
login = admin' /*
pass = */ AND '1' = '1 Ce qui devient ==> $query = "SELECT * FROM admin WHERE login = 'admin' /*' AND pass = '*/ AND '1' = '1' "; Et il faut savoir qu'en PHP /* et*/ permete de metre des commentaires et le code entre ces deux balise est ignoré
alors la requete deviendra: $query = "SELECT * FROM admin WHERE login = 'admin' AND '1' = '1' "; Alors le script va chercher dans la table admin.php une ligne ou le login est admin et ou 1 = 1 ce qui est toujours vrai (pour ceux
qui sont bon en math)...Et voila vous etes admin a la place de l'admin :) maintenant ca marche pas toujours comme ca mas tant que
vous avez compris le principe et que vous avez quelque notions de php ca devrait aller.Pour s'en proteger regler
l'option gpc_magic_quotes de php a 1.
E-[S]kuZ
|