
Une interface en ligne de commande pour l'exploitation XSS et un générateur de payloads.
toxssin est un outil de test d'intrusion open-source qui automatise le processus d'exploitation des vulnérabilités de type Cross-Site Scripting (XSS). Il se compose d'un serveur https qui agit comme un interpréteur pour le trafic généré par la charge utile JavaScript malveillante qui alimente cet outil (toxin.js).
Ce projet a commencé comme (et reste) une entreprise créative basée sur la recherche pour explorer la profondeur d'exploitabilité qu'une vulnérabilité XSS peut introduire en utilisant du JavaScript vanille, des certificats de confiance et des astuces bon marché.
Avertissement : L'utilisation de cet outil contre des applications web pour lesquelles vous n'avez pas d'autorisation explicite de test est illégale. Vous êtes responsable de tout problème que vous pourriez causer en utilisant cet outil.
https://www.youtube.com/watch?v=Z9I4UJUBrrY

Trouvez plus de captures d'écran ici.
Par défaut, le poison JavaScript de toxssin se propage automatiquement à travers les éléments et les informations d'une page web, abusant de l'objet XMLHttpRequest pour intercepter :
Plus important encore, toxssin :
git clone https://github.com/t3l3machus/toxssin
cd ./toxssin
pip3 install -r requirements.txt
Pour démarrer toxssin.py, vous devrez fournir un certificat SSL et des fichiers de clé privée.
Si vous ne possédez pas de domaine avec un certificat de confiance, vous pouvez créer et utiliser des certificats auto-signés avec la commande suivante (bien que cela ne vous mènera pas loin) :
openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365
Il est fortement recommandé d'exécuter toxssin avec un certificat de confiance (voir Comment obtenir un certificat valide dans ce document). Cela dit, vous pouvez démarrer le serveur toxssin comme ceci :
python3 toxssin.py -u https://your.domain.com -c /your/certificate.pem -k /your/privkey.pem
Consultez le wiki du projet pour plus d'informations.
D'après mon expérience, il y a 4 obstacles majeurs lorsqu'il s'agit d'attaques Cross-Site Scripting tentant d'inclure des scripts JS externes :
Content-Security-Policy avec script-src défini sur un ou plusieurs domaines spécifiques bloquera le chargement de scripts avec un src cross-domain. Toxssin s'appuie sur la fonction eval() pour délivrer son poison ; par conséquent, si le site web a une CSP et que l'expression unsafe-eval n'est pas spécifiée dans la directive script-src, l'attaque échouera très probablement (je travaille sur une deuxième méthode de délivrance de poison pour contourner ce problème).Note : L'erreur "Mixed Content" peut bien sûr se produire lorsque le site web cible est hébergé via http et que la charge utile JavaScript est servie via https. Cela limite la portée de toxssin aux sites web https uniquement, car (par défaut) toxssin est démarré avec ssl uniquement.
Tout d'abord, vous devez posséder un nom de domaine.
Vous pouvez rechercher des options gratuites sur freenom. C'est un peu délicat à faire correctement. Je vous suggère de suivre cette vidéo instructive. De plus, si vous créez un compte pour la première fois, assurez-vous que le pays que vous sélectionnez correspond à votre adresse IP, sinon vous pourriez rencontrer des erreurs.
Achetez un domaine auprès d'un service de registraire (par exemple https://www.namecheap.com/). Le moyen le plus économique est de rechercher un nom de domaine aléatoire (par exemple "fvcm98duf") et de vérifier les TLD moins courants, comme .xyz, car ils coûteront probablement environ 3 $ par an.
Après avoir acheté un nom de domaine, vous pouvez utiliser certbot (Let's Encrypt) pour obtenir un certificat de confiance en 5 minutes ou moins :
Astuce : N'installez pas et n'exécutez pas certbot tout seul, vous pourriez obtenir des erreurs inattendues. Tenez-vous-en aux instructions.
2022-06-19 - Ajout de la commande exec dans l'invite (vous pouvez désormais exécuter des scripts JS personnalisés contre une session).
2022-06-23 - J'ai ajouté deux scripts simples et sales comme modèles pour tester la commande exec. J'ai également corrigé l'accès à l'historique arrière de l'invite de commandes et apporté quelques améliorations.
L'idée est de le rendre plus précis, plus fiable et d'étendre ses capacités. Actuellement, je travaille à améliorer les captures de fichiers.