Sécurité

Localisez facilement les vulnérabilités XSS avec cet outil

Plus que jamais, il n’y a pas d’excuses quand il s’agit d’outils de piratage faciles à installer et vraiment utiles. De plus, si vous utilisez Linux comme système d’exploitation principal, ou si vous l’utilisez de temps en temps, vous trouverez de nombreuses options. A cette occasion, nous allons vous montrer un tutoriel simple et rapide pour installer une solution appelée FinDOM-XSS . Cet outil ne nécessite que quelques commandes et vous aidera à détecter les vulnérabilités de type XSS, c’est-à-dire le Cross-Site Scripting. Surtout, il se concentre sur les vulnérabilités XSS basées sur DOM.

Qu’est-ce que le DOM ?

Son acronyme signifie Document Object Model . En espagnol, il fait référence au Document Object Model . Il se compose d’une API qui est développée dans des documents aux formats HTML et XML. Mais à quoi ça sert exactement ? Il est chargé de construire la logique des documents des formats précités, afin qu’ils soient accessibles et manipulables. On comprend mieux le concept grâce aux documents au format HTML.

Nous savons que le HTML est l’un des formats essentiels du web tel que nous le connaissons. Un fichier HTML peut avoir un contenu comme celui illustré ci-dessous :

<!DOCTYPE html>
<html>
<head>
<title>Página HTML</title>
<style>
body {
background-color: red;
text-align: center;
color: white;
}
</style>
</head>
<body>
<h1>Este es un encabezado</h1>
<p>Este es un párrafo.</p>
<img src="avatar.png" alt="Avatar" style="width:200px">
</body>
</html>

Si on y regarde de près, le fichier HTML que nous partageons est divisé en plusieurs parties :

  • Le header (head) qui est l’endroit où l’on fait quelques définitions essentielles avant d’aller au contenu de la page en question :

    • Le titre principal de la page qui apparaît dans l’onglet de notre navigateur (titre).
    • La section où nous personnalisons la mise en page  de la page, c’est-à-dire le format général qu’elle aura. C’est comme choisir un thème WordPress ou Blogger que nous aimons le plus.
  • Le corps de la page où est stocké le contenu (body) :

    • Nous mettons un en-tête.
    • On met le texte qu’on veut.
    • Nous insérons une image de notre préférence dans laquelle nous pouvons personnaliser sa largeur et/ou sa hauteur.

Bien sûr, tout cela peut être étendu à bien plus. Ce n’est qu’avec un document HTML que nous pouvons tirer beaucoup d’avantages du contenu multimédia. Cependant, cet exemple nous montre que grâce au DOM, il est possible que nous puissions gérer de manière pratique, simple et surtout standardisée. Le modèle DOM n’est pas réservé au HTML, il est ouvert à d’autres langages de programmation populaires tels que JavaScript.

Attaques et vulnérabilités XSS basées sur DOM

Les attaques basées sur XSS DOM sont effectuées en modifiant l’environnement DOM qui s’affiche dans le navigateur de l’utilisateur lorsque vous visitez un site particulier. Fondamentalement, lorsqu’un utilisateur visite une page Web, le navigateur interprète le code de manière à pouvoir visualiser ce qu’il veut. C’est-à-dire des images, du texte, de la vidéo, de l’audio et bien plus encore. Cependant, cette variante dangereuse de l’attaque XSS a la capacité de modifier ce que l’utilisateur peut voir dans le navigateur. Il le fait d’une manière qui entraîne des dommages tels que l’installation de logiciels malveillants, divers types de virus, des scripts qui consomment les ressources de votre ordinateur en exploitant des crypto-monnaies, et bien plus encore.

Nous allons nous appuyer sur un exemple partagé par l’ OWASP pour illustrer comment cette attaque est mise en œuvre. Supposons que vous souhaitiez visiter la page Web suivante qui vous permet de sélectionner votre langue préférée :

L’URL, c’est-à-dire le lien de la page d’origine est le suivant :

http://www.some.site/page.html?default=French

Très facilement, un cybercriminel peut altérer ladite URL et cela ressemble à ceci :

http://www.some.site/page.html?default=<script>alert(document.cookie)</script>

Comme on peut le voir, ce qui distingue la deuxième URL de la première est la suivante :

default=<script>alert(document.cookie)

Au lieu de dire « français », le cybercriminel parvient à modifier l’URL pour qu’un « document.cookie » s’affiche dans le navigateur de l’utilisateur, qui peut être n’importe quel code malveillant.

L’attaque XSS basée sur DOM est possible dans ce cas car le code Javascript original de la page Web n’accepte pas le code HTML. Par conséquent, le navigateur interprète directement ce que l’URL de la page indique. Ce dernier, que le script auquel l’URL se réfère soit ou non soit malveillant. Malheureusement, cela est quelque peu difficile à contrôler pour l’utilisateur. Cependant, plus tard, nous donnerons des conseils pour nous protéger de ce type d’attaque.

Qu’est-ce que XSS ?

Il vaut la peine de rafraîchir le concept des attaques par injection XSS. L’acronyme signifie Cross (X) Site Scripting. Il s’agit de l’action de scripts malveillants qui sont injectés dans des sites Web et des applications qui, en principe, ont des objectifs licites ou bénins. Comment se produisent-ils en général ? Le cybercriminel s’empare du site ou de l’application web, notamment dans la partie front-end , et de diverses manières le code malveillant est inséré. Malheureusement, il est courant que les sites Web et les applications n’aient pas un contrôle strict sur ce qui est exécuté du côté de l’utilisateur final ou sur ce que l’utilisateur peut insérer, en particulier via des formulaires Web. .

En plus des attaques XSS basées sur DOM, que nous avons décrites dans cette note, il existe d’autres variantes qui sont aussi ou plus dangereuses que celle-ci. Il convient de mentionner le XSS stocké et le XSS réfléchi, qui sont des attaques qui visent davantage à violer la sécurité et l’intégrité du serveur Web.

Comment installer FIN-DOM XSS

Cette solution est un puissant scanner pour les vulnérabilités qui pourraient conduire à des attaques XSS basées sur DOM. Il est extrêmement simple à installer, il vous suffit d’avoir Linux via la distribution de votre choix. N’oubliez pas qu’il n’est pas nécessaire d’avoir un ordinateur séparé avec ce système d’exploitation. Vous avez toujours la possibilité de virtualiser !

La première chose que nous devons garder à l’esprit est que l’installation se fait via la ligne de commande et nous obtiendrons tout ce dont nous avons besoin via son portail officiel sur Github.

Installer LinkFinder

Il s’agit d’un script développé en Python pour détecter les endpoints et leurs paramètres dans les fichiers Javascript. Il est largement utilisé par les pentesters et les chasseurs de bogues . En plus de FIN-DOM XSS, nous allons installer à partir de la ligne de commande. Il s’agit d’une condition préalable ou d’une dépendance pour le bon fonctionnement du scanner.

Entrez les commandes suivantes pour installer LinkFinder :

$ git clone https://github.com/GerbenJavado/LinkFinder.git
$ cd LinkFinder
$ python setup.py install

Enfin, nous ajoutons quelques dépendances qui sont des modules en Python afin que ce script fonctionne correctement via pip . Pour plus de détails concernant LinkFinder, vous pouvez vous référer au portail officiel sur Github.

$ pip3 install -r requirements.txt

Commencer avec FIN-DOM XSS

Maintenant que vous avez terminé avec les prérequis, vous pouvez procéder à l’installation du scanner en question avec la commande suivante :

$ git clone https://github.com/dwisiswant0/findom-xss.git

Une fois l’installation terminée, vous devez effectuer un ajustement dans la configuration. Il s’agit de changer la valeur de la variable LINKFINDER à la ligne 3 avec le chemin correspondant à votre fichier LinkFinder principal .

Pour exécuter FIN-DOM XSS, il vous suffit d’exécuter la commande suivante :

$ ./findom-xss.sh https://target.host/about-us.html

La structure est simple, la commande qui appelle FIN-DOM XSS à exécuter est ./findom-xss-sh .

D’autre part, il y a le lien qui serait notre cible que nous voulons examiner à la recherche de vulnérabilités. Il peut s’agir de n’importe quelle page Web. Ensuite, il est possible de traduire la commande ci-dessus en un exemple plus concret.

$ ./findom-xss.sh https://www.freecodecamp.org

Vous avez même la possibilité d’ajouter un paramètre supplémentaire à la commande afin que les résultats soient automatiquement exportés dans un fichier texte brut situé où vous préférez.

$ ./findom-xss.sh https://www.freecodecamp.org /rutaejemplo/rutaejem/resultadosescaneo.txt

Cependant, même si vous ne mettez pas le troisième paramètre, les résultats des analyses sont stockés par défaut dans le dossier des résultats et le nom du fichier est target.host.txt .

Voici le résultat d’écran que vous devriez obtenir lorsque vous exécutez avec succès FIN-DOM XSS :

Nous espérons que ce didacticiel vous aidera à trouver ces types de vulnérabilités.

Articles Similaires

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba