Automatiser l’analyse JavaScript devient un jeu d’enfant avec JsAgent : cet outil pensé pour le pentest et le bug bounty utilise la puissance des LLM pour inspecter automatiquement vos scripts JS, détecter les failles potentielles, les endpoints sensibles et les secrets exposés. Un gain de temps précieux dans vos phases de reconnaissance.
🎯 Objectif
Automatiser l’analyse de fichiers JavaScript afin d’identifier :
- les secrets exposés (API keys, tokens…),
- les endpoints d’API,
- les fonctions critiques,
- et les patterns potentiellement vulnérables (XSS, injection, etc.).
1️⃣ Prérequis
Avant toute installation :
🧰 Environnement conseillé :
- OS : Linux ou macOS (Windows avec WSL)
- Python ≥ 3.9
- Git
- Clé d’API OpenAI ou autre LLM compatible (si le projet utilise une API LLM externe)
📦 Dépendances générales :
bash sudo apt install git python3 python3-pip pip install openai rich termcolor
2️⃣ Clonage du projet
bash git clone https://github.com/dwawdsdwasdwasdwa/JsAgent.git<br>cd JsAgent
3️⃣ Configuration
🔑 Ajout de la clé API (exemple OpenAI)
Créer un fichier .env
:
bash echo "OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx" > .env
Ou configurer via une variable d’environnement :
bash export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxx"
4️⃣ Lancer une analyse simple
Supposons que tu veux analyser un fichier JavaScript nommé main.js
:
bash python jsagent.py --file main.js
✅ Paramètres disponibles (à adapter selon version) :
Option | Description |
---|---|
--file | Fichier JS à analyser |
--folder | Répertoire contenant plusieurs JS |
--model | (facultatif) LLM utilisé (gpt-3.5, 4…) |
--output | Sauvegarde de l’analyse dans un fichier |
5️⃣ Exemple d’analyse multiple
bash python jsagent.py --folder ./scripts --model gpt-4 --output rapport-jsagent.txt
6️⃣ Intégration dans un workflow de pentest
🔁 Étapes types :
- Recon (subdomain takeover / OSINT) : récupérer les domaines cibles
- Extraction JS : utiliser
waybackurls
,gau
, ougetJS
pour extraire les fichiers JS publics - Analyse via JsAgent : lancer l’outil sur tous les fichiers JS récupérés
- Extraction des endpoints, secrets, fonctions sensibles
- Utilisation complémentaire : Burp Suite, nuclei, etc. pour approfondir
📂 Exemple de script bash pour automatiser :
bash #!/bin/bash domain=$1 # Récupérer les URLs JS gau $domain | grep ".js" | tee js-urls.txt # Télécharger les fichiers mkdir js-files cat js-urls.txt | while read url; do filename=$(basename "$url") curl -s "$url" -o "js-files/$filename" done # Analyse avec JsAgent python jsagent.py --folder js-files --model gpt-4 --output rapport.txt
7️⃣ Bonnes pratiques
✔️ Utiliser une version de LLM récente pour de meilleures performances
✔️ Compléter l’analyse avec tools classiques : grep, gf, nuclei
✔️ Attention aux faux positifs : un token dans un commentaire n’est pas forcément actif
✔️ Ne jamais utiliser cet outil sans consentement écrit du propriétaire de la cible
8️⃣ Limitations
- Peut générer du bruit si trop de JS « brouillon » est scanné
- La qualité dépend fortement du LLM utilisé
- Pas un scanner de vulnérabilités, mais un agent d’assistance à la reconnaissance
9️⃣ Idées d’amélioration
- Ajouter un export JSON ou CSV structuré
- Intégrer avec Burp Extender
- Détecter automatiquement le langage (TS/JS)
- Support des CDN / JS obfusqués
📎 Pour aller plus loin
Tu peux l’enchaîner avec :
LinkFinder
(recherche de endpoints)SecretFinder
DOM-XSS-Scanner
- Utiliser GPT-4 en local via LM Studio + Ollama pour éviter les quotas API