Les injections SQL servent généralement à se connecter sur le compte d'une autre personne sans son mot de passe où encore à trouver des mots de passe.
Elles sont très utiles pour un hacker quand il a compris leur fonctionnement.
Et il faut également comprendre leur principe si on veut protéger son site de ce genre de failles.
Que vous vouliez protéger votre site ou en apprendre encore plus sur le hacking, cet article est pour vous.
Maintenant, voici la faille en question. Pour outrepasser la connection et se loguer il suffit d'injecter des morceaux de code SQL dont l'égalité est toujours vraie ("1=1","=",..)
Exemple d'un formulaire de convection (inutile d'essayer :D il ne mène a rien )
dont voici le code source :
Désolé blogger ne veux pas afficher du code source qu'il prend pour du html, j'ai du mettre une image :/
Voici des exemples d'injections qui retournent toujours true :
SELECT * FROM table WHERE 1=1SELECT * FROM table WHERE 'iii'='iii'
SELECT * FROM table WHERE 1<>2
SELECT * FROM table WHERE 3>2
SELECT * FROM table WHERE 2<3>0 THEN 1 END
Corriger la faille :
Si vous êtes webmestre, et si votre hébergeur a désactivé la fonction get_magic_quotes_gpc() alors vous pouvez être victime d'injection SQL.
Pour protéger votre site utilisez la fonction addlashes() qui rajoute des anti-slashs devant les ' si get_magic_quotes_gpc() est off.
Exemple :
$login = addslashes($_POST['login']);
$password = addslashes($_POST['password']);