
Estensione per Burp Suite per l'analisi statica di JavaScript: estrae endpoint API, URL, segreti ed email con filtraggio del rumore per i test di sicurezza web.
Una potente estensione Burp Suite per l'analisi statica di JavaScript. Estrae endpoint API, URL, segreti e indirizzi email da file JavaScript con un intelligente filtraggio del rumore. L'obiettivo è ridurre il rumore il più possibile per garantire la precisione
Extensions > Extensions-Settings > Python EnvironmentExtensions > Installed > AddPython e vai a js_analyzer.pyPuoi selezionare più richieste dalla cronologia HTTP o dalla Dashboard e inviarle tutte insieme a JS Analyzer.
| Pattern | Esempio |
|---|---|
| Percorsi API | /api/v1/users, /api/v2/auth |
| Endpoint REST | /rest/data, /graphql |
| OAuth/Autenticazione | /oauth2/token, /auth/login, /callback |
| Route admin | /admin, /dashboard, /internal |
| Well-known | /.well-known/openid-configuration |
| Tipo | Pattern |
|---|---|
| Chiave di accesso AWS | AKIA[0-9A-Z]{16} |
| Chiave API Google | AIza[0-9A-Za-z\-_]{35} |
| Chiave live Stripe | sk_live_[0-9a-zA-Z]{24,} |
| PAT GitHub | ghp_[0-9a-zA-Z]{36} |
| Token Slack | xox[baprs]-... |
| JWT | eyJ... |
| Chiavi private | -----BEGIN PRIVATE KEY----- |
| URL di database | mongodb://, postgres://, mysql:// |
#Nota: sentiti libero di fare fork e aggiungere altri rilevamenti di segreti come necessario.
L'estensione filtra automaticamente:
schemas.openxmlformats.org, www.w3.org)./, ../, @angular/, ecc.)/Type, /Font, /Filter)xl/, docProps/, worksheets/)en.js, fr-ca.js)sha.js, aes, bn.js)Rileva riferimenti a tipi di file sensibili:
| Categoria | Estensioni |
|---|---|
| Dati | .sql, .csv, .xlsx, .json, .xml, .yaml |
| Configurazione | .env, .conf, .ini, .cfg, .config |
| Backup | .bak, .backup, .old, .orig |
| Certificati | .key, .pem, .crt, .p12, .pfx |
| Documenti | .pdf, .doc, .docx |
| Archivi | .zip, .tar, .gz |
| Script | .sh, .bat, .ps1, .py |
Per usarlo nei tuoi progetti Python o API:
from js_analyzer_engine import JSAnalyzerEngine
engine = JSAnalyzerEngine()
results = engine.analyze(javascript_content)
print(results["endpoints"]) # ['/api/v1/users', ...]
print(results["urls"]) # ['https://api.example.com', ...]
print(results["secrets"]) # [{'type': 'AWS Key', 'value': '...', 'masked': '...'}, ...]
print(results["emails"]) # ['[email protected]', ...]
from flask import Flask, request, jsonify
from js_analyzer_engine import JSAnalyzerEngine
app = Flask(__name__)
engine = JSAnalyzerEngine()
@app.route('/analyze', methods=['POST'])
def analyze():
content = request.json.get('content', '')
results = engine.analyze(content)
return jsonify(results)
if __name__ == '__main__':
app.run(port=5000)
JSextension/
├── js_analyzer.py # Main Burp extension entry point
├── ui/
│ ├── __init__.py
│ └── results_panel.py # Burp UI panel
├── README.md
└── LICENSE
I contributi sono benvenuti! Sentiti libero di:
Licenza MIT - vedi il file LICENSE.
Ispirato da:
Jenish Sojitra (https://x.com/_jensec)
Creato con ❤️ per la community InfoSec e Tech.