
Статический анализатор уязвимостей XSS CVE-2020-11023 в JavaScript. Обнаруживает уязвимые версии jQuery и опасные шаблоны манипуляций с DOM на веб-страницах и в локальных файлах.
Вас преследует призрак уязвимостей межсайтового скриптинга (XSS), скрывающихся в вашем JavaScript-коде? Беспокоит, что CVE-2020-11023 оставляет ваши веб-приложения открытыми для атак? Не бойтесь! CVE-2020-11023 Сканер здесь, чтобы помочь вам найти и победить эти надоедливые уязвимости!
Этот быстрый и надёжный инструмент статического анализа предназначен для сканирования JavaScript-файлов и веб-страниц на предмет признаков XSS-уязвимостей, особенно связанных с CVE-2020-11023. Он ориентирован на версии jQuery до 3.5.0, которые, как известно, уязвимы.
Отказ от ответственности: Помните, что этот инструмент выполняет только статический анализ. Он не выполняет код, поэтому не может гарантировать эксплуатацию с той же определённостью, что и динамический анализ. Всегда вручную проверяйте результаты и проводите дополнительное тестирование, чтобы подтвердить реальный риск!
.js файлов..html(), .append(), .after(), .before() и .replaceWith(), при использовании с потенциально небезопасными входными данными.window.location, document.cookie и других.requests library (pip install requests)beautifulsoup4 library (pip install beautifulsoup4)packaging library (pip install packaging)Клонируйте этот репозиторий:
git clone <your-repository-url>
cd <your-repo-name>
Установите зависимости:
pip install -r requirements.txt
Аргументы командной строки:
--url <URL>: Указывает целевой URL для сканирования.--file <путь>: Указывает путь к локальному файлу или каталогу для сканирования.--deep: Включает глубокое сканирование URL (рекурсивный обход связанных JavaScript-файлов).Примеры:
Сканирование веб-сайта (с глубоким сканированием):
python scan.py --url [https://www.example.com](https://www.example.com) --deep
Сканирование локального JavaScript-файла:
python scan.py --file /path/to/your/file.js
Рекурсивное сканирование локального каталога:
python scan.py --file /path/to/your/directory
Пример отчёта:
════════════════════════════════════════════════════════════════════════════════════════════
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)
🛡️ Рекомендации
Обновите jQuery: Если обнаружена уязвимая версия jQuery, немедленно обновитесь до последней версии (>= 3.5.0).
Очищайте ввод: Тщательно очищайте любые пользовательские или ненадёжные данные перед использованием с потенциально опасными методами манипуляции DOM. Рассмотрите возможность использования библиотек, таких как DOMPurify.
Используйте .text() с умом: Если нужно вставить только текстовое содержимое, используйте метод .text() вместо .html() или других методов, которые могут интерпретировать ввод как HTML.
Ручная проверка: Всегда вручную проверяйте результаты работы этого скрипта, чтобы определить реальный риск и исключить ложные срабатывания.
🙌 Вклад в развитие
Давайте сделаем цифровой мир безопаснее вместе! Ваш вклад приветствуется! Пожалуйста, не стесняйтесь отправлять pull request'ы или открывать issues для улучшения производительности и возможностей этого скрипта.
📄 Лицензия
Этот проект лицензирован в соответствии с лицензией MIT.