
инструмент для мониторинга изменений JavaScript для баг-баунти
JSMon - Мониторинг изменений JavaScript для BugBounty
С помощью этого скрипта вы можете настроить мониторинг ряда JavaScript-файлов на сайтах. При каждом запуске скрипта эти файлы будут загружаться и сравниваться с предыдущей версией. Если они изменились, вы получите уведомление через Telegram с сообщением, содержащим ссылку на скрипт, измененные размеры файлов и diff-файл для легкого просмотра изменений.


Для установки JSMon:
git clone https://github.com/robre/jsmon.git
cd jsmon
python setup.py install
Вам нужно настроить токен Slack или Telegram в переменных окружения, например, создав файл .env:
touch .env
С содержимым:
JSMON_NOTIFY_TELEGRAM=True
JSMON_TELEGRAM_TOKEN=YOUR TELEGRAM TOKEN
JSMON_TELEGRAM_CHAT_ID=YOUR TELEGRAM CHAT ID
#JSMON_NOTIFY_SLACK=True
#JSMON_SLACK_TOKEN=sometoken
#JSMON_SLACK_CHANNEL_ID=somechannel
Чтобы включить Slack, раскомментируйте строки Slack в env и добавьте свой токен.
Чтобы создать cron-скрипт для регулярного запуска JSMon:
crontab -e
создайте запись, например:
@daily /path/to/jsmon.sh
Обратите внимание, что следует запускать .sh файл, иначе окружение будет нарушено.
Это будет запускать JSMon раз в день, в полночь.
Вы можете изменить @daily на любое расписание, которое вам подходит.
Для настройки уведомлений Telegram вам нужно добавить свой API-ключ Telegram и chat_id в код, в начале jsmon.py. Вы можете прочитать, как получить эти значения здесь.
Примечание: для поддержки Slack необходимо правильно настроить приложение Slack и использовать OAuth-токен Slack. Приложение должно иметь права на загрузку файлов и находиться в нужном вам канале. Наконец, вам нужно начать с некоторых целей для мониторинга. Давайте создадим пример:
echo "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js" >> targets/cdnjs-example
Готово! Теперь вы можете запустить python jsmon.py, чтобы впервые загрузить указанные файлы!
Укажите конечные точки в файлах в каталоге targets/ (конечные точки, разделенные строками)
Каждая конечная точка загружается и сохраняется в каталоге downloads/ с хешем в качестве имени файла (первые 10 символов MD5-хеша)
jsmon.json отслеживает, какие конечные точки связаны с какими хешами файлов
JSMon предназначен для отслеживания JavaScript-файлов на сайтах, но его можно использовать для любых типов файлов, добавляя конечные точки
@r0bre - Основной разработчик
@Yassineaboukir - Уведомления Slack