
un outil de suivi des changements JavaScript pour les bug bounties
JSMon - Moniteur de changements JavaScript pour BugBounty
Avec ce script, vous pouvez configurer un certain nombre de fichiers JavaScript sur des sites Web que vous souhaitez surveiller. Chaque fois que vous exécutez ce script, ces fichiers sont récupérés et comparés à la version précédemment récupérée. S'ils ont changé, vous serez averti via Telegram avec un message contenant un lien vers le script, les tailles de fichiers modifiées et un fichier diff pour inspecter facilement les changements.


Pour installer JSMon :
git clone https://github.com/robre/jsmon.git
cd jsmon
python setup.py install
Vous devez configurer votre token Slack ou Telegram dans l'environnement, par exemple en créant un fichier .env :
touch .env
Avec le contenu suivant :
JSMON_NOTIFY_TELEGRAM=True
JSMON_TELEGRAM_TOKEN=VOTRE TOKEN TELEGRAM
JSMON_TELEGRAM_CHAT_ID=VOTRE CHAT ID TELEGRAM
#JSMON_NOTIFY_SLACK=True
#JSMON_SLACK_TOKEN=sometoken
#JSMON_SLACK_CHANNEL_ID=somechannel
Pour activer Slack, décommentez les lignes Slack dans le fichier env et ajoutez votre token.
Pour créer un script cron afin d'exécuter JSMon régulièrement :
crontab -e
créez une entrée comme celle-ci :
@daily /path/to/jsmon.sh
Notez que vous devez exécuter le fichier .sh, sinon l'environnement sera perturbé.
Cela exécutera JSMon une fois par jour, à minuit.
Vous pouvez remplacer @daily par l'intervalle qui vous convient.
Pour configurer les notifications Telegram, vous devez ajouter votre clé API Telegram et votre chat_id dans le code, au début de jsmon.py. Vous pouvez lire comment obtenir ces valeurs ici.
Notez que pour la prise en charge de Slack, vous devez configurer correctement votre application Slack et utiliser le token OAuth Slack. L'application doit disposer des droits de téléchargement de fichiers et se trouver dans le canal où vous souhaitez l'utiliser. Enfin, vous devez commencer avec quelques cibles que vous souhaitez surveiller. Créons un exemple :
echo "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.js" >> targets/cdnjs-example
Tout est fait ! Vous pouvez maintenant exécuter python jsmon.py pour télécharger les fichiers spécifiés pour la première fois !
Fournir les points de terminaison via des fichiers dans le répertoire targets/ (points de terminaison séparés par ligne)
Chaque point de terminaison est téléchargé et stocké dans downloads/ avec son hash comme nom de fichier (10 premiers caractères du hachage md5)
jsmon.json garde la trace des points de terminaison associés à quels hachages de fichiers
jsmon est conçu pour surveiller les fichiers JavaScript sur les sites Web - mais il peut être utilisé pour tout type de fichier pour ajouter des points de terminaison
@r0bre - Cœur
@Yassineaboukir - Notifications Slack