Injection mysql

Voir le sujet précédent Voir le sujet suivant Aller en bas

Injection mysql

Message  3x0n3 le Jeu 31 Déc - 15:21

Je vais vous faire un tuto sur.

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 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.




Prenez san soin

3x0n3
Admin

Messages : 12
Date d'inscription : 30/12/2009
Localisation : Inernet...internet

Voir le profil de l'utilisateur http://l4x0r-team.jtkc.org

Revenir en haut Aller en bas

Re: Injection mysql

Message  DrP4L4C3 le Dim 20 Mar - 15:08

Je n'ai pas tout compris, on modifie où ?

DrP4L4C3

Messages : 1
Date d'inscription : 20/03/2011

Voir le profil de l'utilisateur

Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum