
Escáner de análisis estático para vulnerabilidades XSS CVE-2020-11023 en JavaScript. Detecta versiones vulnerables de jQuery y patrones peligrosos de manipulación del DOM en páginas web y archivos locales.
¿Te persigue el espectro de las vulnerabilidades de Cross-Site Scripting (XSS) acechando en tu código JavaScript? ¿Te preocupa que CVE-2020-11023 deje tus aplicaciones web abiertas a ataques? ¡No temas más! El Escáner CVE-2020-11023 está aquí para ayudarte a encontrar y conquistar esas molestas vulnerabilidades.
Esta herramienta de análisis estático, rápida y fiable, está diseñada para escanear archivos JavaScript y páginas web en busca de las señales reveladoras de vulnerabilidades XSS, especialmente aquellas relacionadas con CVE-2020-11023. Se centra en las versiones de jQuery anteriores a la 3.5.0, que se sabe que son susceptibles.
Aviso legal: Recuerda que esta herramienta realiza solo análisis estático. No ejecuta ningún código, por lo que no puede garantizar la explotabilidad con la misma certeza que el análisis dinámico. ¡Revisa siempre manualmente los hallazgos y realiza pruebas adicionales para confirmar el riesgo real!
.js..html(), .append(), .after(), .before() y .replaceWith() cuando se utilizan con entradas potencialmente inseguras.window.location, document.cookie y más.requests (pip install requests)beautifulsoup4 (pip install beautifulsoup4)packaging (pip install packaging)Clona este repositorio:
git clone <your-repository-url>
cd <your-repo-name>
Instala las dependencias:
pip install -r requirements.txt
Argumentos de línea de comandos:
--url <URL>: Especifica la URL objetivo a escanear.--file <ruta>: Especifica una ruta de archivo o directorio local a escanear.--deep: Habilita el escaneo profundo para URLs (rastreo recursivo de archivos JavaScript enlazados).Ejemplos:
Escanear un sitio web (con escaneo profundo):
python scan.py --url [https://www.example.com](https://www.example.com) --deep
Escanear un archivo JavaScript local:
python scan.py --file /path/to/your/file.js
Escanear un directorio local de forma recursiva:
python scan.py --file /path/to/your/directory
Ejemplo de informe:
════════════════════════════════════════════════════════════════════════════════════════════
VULNERABILITY SCAN REPORT
CVE-2020-11023
════════════════════════════════════════════════════════════════════════════════════════════
■ [POTENTIAL VULNERABLE] JQUERY_VERSION
Location: [https://www.example.com/](https://www.example.com/)
Line: N/A
Code: Update to >=3.5.0
Details: jQuery 3.4.0 (POTENTIALLY VULNERABLE)
■ [POTENTIAL VULNERABLE] METHOD_APPEND
Location: [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)
Line: 25
Code: element.append(data);
Details: Unsafe variable: data, Direct source: window.location
■ [INFO] JQUERY_VERSION
Location: [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)
Line: N/A
Code: Safe version
Details: jQuery 3.6.0 (SAFE)
🛡️ Recomendaciones
Actualiza jQuery: Si se detecta una versión vulnerable de jQuery, actualízala a la última versión (>= 3.5.0) inmediatamente.
Sanea las entradas: Sanea a fondo cualquier dato proporcionado por el usuario o no confiable antes de usarlo con métodos de manipulación del DOM potencialmente peligrosos. Considera el uso de bibliotecas como DOMPurify.
Usa .text() con criterio: Si solo necesitas insertar contenido de texto, usa el método .text() en lugar de .html() u otros métodos que podrían interpretar la entrada como HTML.
Revisión manual: Revisa siempre manualmente los hallazgos de este script para determinar el riesgo real y descartar falsos positivos.
🙌 Contribuciones
¡Hagamos del mundo digital un lugar más seguro juntos! ¡Tus contribuciones son muy bienvenidas! No dudes en enviar pull requests o abrir issues para mejorar el rendimiento y las capacidades de este script.
📄 Licencia
Este proyecto está licenciado bajo la Licencia MIT.