JSMon - 用于 BugBounty 的 JavaScript 变更监控器
使用此脚本,你可以配置你想要监控的网站上的多个 JavaScript 文件。每次运行此脚本时,这些文件将被获取并与之前获取的版本进行比较。如果它们发生了变化,你将通过 Telegram 收到通知,消息中包含脚本链接、更改的文件大小以及用于轻松检查更改的差异文件。


要安装 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,请取消注释 env 中的 slack 行并添加你的令牌。
要创建定期运行 JSMon 的 cron 脚本:
crontab -e
创建如下条目:
@daily /path/to/jsmon.sh
注意:你应该运行 .sh 文件,否则环境会混乱。
这将每天午夜运行一次 JSMon。你可以将 @daily 更改为任何适合你的计划。
要配置 Telegram 通知,你需要在 jsmon.py 的开头将你的 Telegram API 密钥和 chat_id 添加到代码中。你可以阅读此处了解如何获取这些值。
注意,对于 Slack 支持,你需要正确设置 slack 应用程序并使用 slack oauth 令牌。该应用程序需要具有文件上传权限,并且需要位于你希望它所在的频道中。最后,你需要开始添加一些你想要监控的目标。让我们创建一个示例:
echo "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js" >> targets/cdnjs-example
全部完成!现在你可以运行 python jsmon.py 来首次下载指定的文件!
通过 targets/ 目录中的文件提供端点(每行一个端点)
每个端点都会被下载并存储在 downloads/ 中,以哈希值作为文件名(md5 哈希的前 10 个字符)
jsmon.json 跟踪哪些端点与哪些文件哈希关联
jsmon 旨在跟踪网站上的 javascript 文件 - 但它可用于任何文件类型来添加端点
@r0bre - 核心
@Yassineaboukir - Slack 通知