
Analyseur statique pour les vulnérabilités XSS CVE-2020-11023 en JavaScript. Détecte les versions vulnérables de jQuery et les motifs dangereux de manipulation du DOM dans les pages web et les fichiers locaux.
Êtes-vous hanté·e par le spectre des vulnérabilités Cross-Site Scripting (XSS) tapies dans votre code JavaScript ? Inquiet·ète que CVE-2020-11023 n'expose vos applications web aux attaques ? N'ayez plus peur ! Le Scanneur CVE-2020-11023 est là pour vous aider à trouver et dompter ces vulnérabilités gênantes !
Cet outil rapide et fiable d'analyse statique est conçu pour parcourir les fichiers JavaScript et les pages web à la recherche des signes révélateurs de vulnérabilités XSS, en particulier celles liées à CVE-2020-11023. Il cible les versions de jQuery antérieures à 3.5.0, connues pour être vulnérables.
Avertissement : N'oubliez pas que cet outil effectue uniquement de l'analyse statique. Il n'exécute aucun code, il ne peut donc pas garantir l'exploitabilité avec la même certitude qu'une analyse dynamique. Vérifiez toujours manuellement les résultats et effectuez des tests supplémentaires pour confirmer le risque réel !
.js..html(), .append(), .after(), .before() et .replaceWith() lorsqu'elles sont utilisées avec des entrées potentiellement non sécurisées.window.location, document.cookie, etc.requests (pip install requests)beautifulsoup4 (pip install beautifulsoup4)packaging (pip install packaging)Clonez ce dépôt :
git clone <url-de-votre-dépôt>
cd <nom-de-votre-dépôt>
Installez les dépendances :
pip install -r requirements.txt
Arguments en ligne de commande :
--url <URL> : Spécifie l'URL cible à scanner.--file <chemin> : Spécifie un fichier ou un répertoire local à scanner.--deep : Active le scan approfondi pour les URLs (parcours récursif des fichiers JavaScript liés).Exemples :
Scanner un site web (avec scan approfondi) :
python scan.py --url [https://www.example.com](https://www.example.com) --deep
Scanner un fichier JavaScript local :
python scan.py --file /chemin/vers/votre/fichier.js
Scanner un répertoire local récursivement :
python scan.py --file /chemin/vers/votre/répertoire
Exemple de rapport :
════════════════════════════════════════════════════════════════════════════════════════════
RAPPORT DE SCAN DE VULNÉRABILITÉ
CVE-2020-11023
════════════════════════════════════════════════════════════════════════════════════════════
■ [POTENTIELLEMENT VULNÉRABLE] JQUERY_VERSION
Emplacement : [https://www.example.com/](https://www.example.com/)
Ligne : N/D
Code : Mettre à jour vers >=3.5.0
Détails : jQuery 3.4.0 (POTENTIELLEMENT VULNÉRABLE)
■ [POTENTIELLEMENT VULNÉRABLE] METHOD_APPEND
Emplacement : [https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id](https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id)
Ligne : 25
Code : element.append(data);
Détails : Variable non sécurisée : data, Source directe : window.location
■ [INFO] JQUERY_VERSION
Emplacement : [https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id](https://support.google.com/photos/thread/202686606/apakah-foto-atau-video-yg-dihapus-secara-permanen-tidak-akan-bisa-kembali-lagi?hl=id)
Ligne : N/D
Code : Version sûre
Détails : jQuery 3.6.0 (SÛR)
🛡️ Recommandations
Mettre à jour jQuery : Si une version vulnérable de jQuery est détectée, mettez-la immédiatement à jour vers la dernière version (>= 3.5.0).
Assainir les entrées : Assainissez soigneusement toutes les données fournies par l'utilisateur ou non fiables avant de les utiliser avec des méthodes de manipulation du DOM potentiellement dangereuses. Envisagez d'utiliser des bibliothèques comme DOMPurify.
Utiliser .text() à bon escient : Si vous avez seulement besoin d'insérer du contenu textuel, utilisez la méthode .text() plutôt que .html() ou d'autres méthodes qui pourraient interpréter l'entrée comme du HTML.
Révision manuelle : Vérifiez toujours manuellement les résultats de ce script pour déterminer le risque réel et écarter les faux positifs.
🙌 Contribution
Rendons le monde numérique plus sûr ensemble ! Vos contributions sont les bienvenues ! N'hésitez pas à soumettre des pull requests ou à ouvrir des issues pour améliorer les performances et les capacités de ce script.
📄 Licence
Ce projet est sous licence MIT.