
Une meilleure version de mon outil xssfinder - analyse différents types de xss sur une liste d'URLs.
Il s'agit de la version étendue basée sur l'idée initiale déjà publiée sous le nom de « xssfinder ». Cette version privée permet à un attaquant d'effectuer non seulement des requêtes GET mais aussi POST. De plus, il est possible de faire passer chaque requête via Burp ou un autre tunnel.
Renommez le fichier example.app-settings.conf en app-settings.conf et ajustez les paramètres. Il devrait fonctionner immédiatement, mais selon la cible, je recommanderais d'ajuster les tailles de blocs (chunk sizes).
Cet outil n'attend aucun argument en ligne de commande, tapez simplement :
python3 extended-xss-search.py
Il est possible de définir de nombreuses options et paramètres, voici quelques explications.
Le fichier de configuration principal est le « app-settings.conf », tout doit être fait dans ce fichier ! En dehors de cela, il existe d'autres fichiers qui permettent de définir des données plus complexes comme les en-têtes, les URLs et les cookies.
config/cookie-jar.txt
Utilisez ce fichier pour ajouter une chaîne de cookie. Je copie généralement celle que l'on peut voir dans chaque requête Burp. Veuillez simplement copier la valeur de l'en-tête « Cookie: ». Un exemple de saisie se trouve dans le fichier par défaut.
config/http-headers.txt
Ce fichier définit les en-têtes HTTP qui sont ajoutés à la requête et manipulés (la charge utile est ajoutée à chacun). Les plus importants sont déjà dans le fichier. Mais n'hésitez pas à en ajouter d'autres.
config/parameters.txt
L'outil a l'option de réaliser une attaque par force brute sur les paramètres GET et POST. Dans ce cas, ces paramètres (ainsi que ceux de la chaîne de requête) seront utilisés. Chaque paramètre reçoit la charge utile comme valeur. Les plus importants sont déjà dans ce fichier.
config/urls-to-test.txt
C'est le fichier dont vous avez besoin ! Veuillez ajouter ici vos liens à analyser. Les formats suivants sont autorisés :
Lorsque le dernier cas est détecté, un « http:// » est ajouté au début. Cet outil est destiné à fonctionner avec une bonne liste d'URLs. Un bon moyen d'en obtenir une est de simplement l'exporter en utilisant Burp. Vous aurez alors une liste valide d'URLs. Tout ce que vous avez à faire est d'ajouter vos cookies.
logs/
C'est le dossier de logs où tout est enregistré !
Le fichier app-settings.conf définit le flux de travail du programme. C'est le fichier le plus important, vous pouvez y activer/désactiver différents modules.
Paramètres de base
HTTPTimeout
Certaines requêtes peuvent prendre du temps. Ici, vous pouvez définir le temps d'exécution maximal d'une requête. Je recommande des valeurs entre 2 et 6 secondes.
MaxThreads
Plus il y a de threads, plus le script est rapide - mais comme nous traitons beaucoup de connexions, je garde généralement cela en dessous de 10 sur mon ordinateur personnel et autour de 30 sur mon VPS.
Types d'attaque
OnlyBaseRequest
Mettre ceci à true ne donnera que des « requêtes de base » - cela signifie que la liste d'URLs est simplement explorée (spidered) et les paramètres intéressants extraits. Vous pourriez utiliser cela pour remplir rapidement votre sitemap Burp.
UsePost
Vous pouvez ignorer les requêtes POST en mettant ceci à « false »
UseGet
C'est similaire - ignorer les requêtes GET si mis à « false »
Paramètres des types d'attaque
GetChunkSize
Combien de paramètres GET tester avec une requête ?
PostChunkSize
Combien de paramètres POST tester avec une requête ?
Tunnelisation
Il est également possible d'utiliser un tunnel, par exemple « 127.0.0.1:8080 » (Burp Proxy), pour surveiller tout le trafic dans Burp.
Active
Mettre ceci à « true » forcera le script à utiliser une connexion tunnelisée.
Tunnel
Définissez ici votre serveur proxy « ip:port ».
Le résultat est le suivant : lorsque vous ouvrez Burp, vous pouvez regarder votre historique HTTP :



Veuillez simplement créer une issue et la marquer comme demande de fonctionnalité.
Aimez-vous cet outil ? Vous a-t-il aidé à obtenir une prime ? Vous voulez donner quelque chose en retour/me soutenir ? Pourquoi pas !