
jshunter è uno strumento da riga di comando progettato per analizzare file JavaScript ed estrarre endpoint. Questo strumento è specializzato nell'identificazione di dati sensibili, come endpoint API e potenziali vulnerabilità di sicurezza, rendendolo una risorsa essenziale per cacciatori di bug e ricercatori di sicurezza.
Strumento Professionale di Analisi della Sicurezza JavaScript
Scoperta completa di endpoint, rilevamento di dati sensibili e analisi avanzata del codice per professionisti della sicurezza
JSHunter è uno strumento completo da riga di comando per l'analisi della sicurezza JavaScript e la scoperta di endpoint. Progettato per professionisti della sicurezza, penetration tester e sviluppatori, offre capacità di analisi di livello enterprise con algoritmi di rilevamento ad alta precisione e funzionalità di reporting professionali.
https://github.com/user-attachments/assets/5a5f60fa-f8dc-4aac-bd06-2e93779f9af4
JSHunter in azione — una cattura reale del terminale della CLI (ogni segreto mostrato è dato di test fittizio)
Precisione di livello enterprise con algoritmi di analisi avanzati
Autenticazione e Header:
-H): Header di autenticazione ripetibili e header di richiesta personalizzati-c): Cookie di sessione per accedere a risorse protette-U): Stringhe UA personalizzate o rotazione basata su file per la stealthPrestazioni e Affidabilità:
-R): Ritardi di richiesta configurabili (millisecondi) per evitare il rilevamento-T): Impostazioni di timeout personalizzate per diverse condizioni di rete-y): Meccanismo di retry automatico con backoff esponenziale per richieste falliteIntegrazione Professionale:
-p): Integrazione completa con Burp Suite e proxy personalizzati (HTTP/HTTPS/SOCKS5)-k): Bypass opzionale della verifica dei certificati per ambienti di test-t): Gestione configurabile delle richieste concorrenti per prestazioni ottimaliStrumenti di Analisi Principali:
-d): Decomprime JavaScript minificato e offuscato per un'analisi approfondita-m): Estrae e analizza il codice sorgente originale dalle source map-z): Identifica e classifica tecniche e pattern di offuscamentoAnalisi Dinamica:
-e): Analizza l'esecuzione dinamica del codice (eval(), Function(), generazione runtime)Intelligenza del Codice:
Utilizzo Professionale: Combina gli strumenti di analisi con il rilevamento della sicurezza per una copertura massima Esempio:
jshunter -u target.js -d -m -e -s -g(deoffuscamento completo + analisi della sicurezza)
Rilevamento Principale della Sicurezza:
-s): Chiavi API, token di accesso, password e credenziali hardcoded-x): Estrazione, validazione e ispezione del payload dei token di autenticazione-F): Analisi della configurazione, chiavi API e rilevamento URL del databaseAnalisi Avanzata:
-P): Parametri di modulo nascosti, variabili e chiavi di configurazione-PU): Analisi avanzata dei parametri con contesto URL completo-g): Rilevamento schema, estrazione query e scoperta endpoint-B): Pattern di bypass della sicurezza e tecniche di evasioneAmbito e Contesto:
-i): Identificazione e classificazione di risorse private/interne-L): Estrazione completa degli URL e mappatura delle relazioniFormati di Output Principali:
-o): Salva risultati completi in posizioni file personalizzate-j): Formato dati strutturato per automazione ed elaborazione programmatica-C): Formato compatibile con fogli di calcolo per reporting esecutivo e analisiIntegrazione Professionale:
-n): Integrazione diretta con Burp Suite Professional per test immediati-r): Corrispondenza pattern personalizzata per il filtraggio mirato dei risultati-v): Output di analisi dettagliato con informazioni di debug e contestoGestione Risultati:
--found-only): Nasconde i risultati vuoti per un reporting di sicurezza mirato-q): Sopprime il banner per scripting automatizzato e integrazione CI/CDgo install -v github.com/cc1a2b/jshunter/cmd/jshunter@latest
jshunter --help
### Compilare dal sorgente```bash
git clone https://github.com/cc1a2b/jshunter.git
cd jshunter
go build -o jshunter ./cmd/jshunter
jshunter -u "https://example.com/app.js"
jshunter -l urls.txt
jshunter -f app.js
### Analisi di Sicurezza Completa```bash
# Find API keys, secrets, and credentials
jshunter -u "https://target.com/app.js" -s
# Full analysis with deobfuscation, GraphQL, and Firebase detection
jshunter -u "https://target.com/app.js" -d -s -g -F -x -L
# Professional security assessment with all tools
jshunter -u "https://target.com/app.js" -d -m -e -s -x -P -g -F -B -L
# Export comprehensive results for reporting
jshunter -l targets.txt -s -g -F -j -o security_findings.json
jshunter -u "https://example.com/app.js"
jshunter -l urls.txt
cat urls.txt | grep ".js" | jshunter
jshunter -u "https://example.com/app.js" -s -x -F
jshunter -u "https://target.com/app.js" -d -m -e -s -x -P -g -F -B -L
jshunter -u "https://target.com/bundle.js" -d -m -s -g -F
jshunter -l targets.txt -s -x -F -g -j -o security_findings.json
jshunter -l targets.txt -p 127.0.0.1:8080 -s -g -F -n -o burp_findings.txt
jshunter -l targets.txt -p socks5://127.0.0.1:9050 -s -x -F
jshunter -l urls.txt -R 2000 -H "Authorization: Bearer token" -s -x -F -g -q
jshunter -l urls.txt -ep -P -PU -L -w 2
jshunter -f obfuscated.js -d -z -e -s -v
---
## Riferimento ai Comandi
Ottieni la guida completa in qualsiasi momento con `jshunter --help````
Usage:
-u, --url URL Input a URL
-l, --list FILE.txt Input a file with URLs (.txt)
-f, --file FILE.js Path to JavaScript file
--har FILE Ingest a Chrome DevTools HAR archive
Basic Options:
-t, --threads INT Number of concurrent threads (default: 5)
-c, --cookies <cookies> Authentication cookies for protected resources
-p, --proxy host:port HTTP/SOCKS5 proxy (e.g., 127.0.0.1:8080 for Burp Suite)
-q, --quiet Suppress ASCII art output
--no-color Disable ANSI color (auto-off when not a TTY)
-o, --output FILENAME Output file path
-r, --regex <pattern> RegEx for filtering results
--update, --up Update the tool to latest version
-ep, --end-point Extract endpoints from JavaScript files
-k, --skip-tls Skip TLS certificate verification
-fo, --found-only Only show results when sensitive data is found
HTTP Configuration:
-H, --header "Key: Value" Custom HTTP headers (repeatable, including Auth)
-U, --user-agent UA Custom User-Agent string or file path
-R, --rate-limit MS Request rate limiting delay (milliseconds)
-T, --timeout SEC HTTP request timeout (seconds)
-y, --retry INT Retry attempts for failed requests (default: 2)
--per-host INT Per-host outbound concurrency cap (default: 4)
--max-bytes N Cap response body read in bytes (default: 32MiB)
--allow-internal Permit localhost / RFC1918 / link-local targets
--cache-dir DIR Persist responses on disk; revalidate via ETag
JavaScript Analysis:
-d, --deobfuscate Deobfuscate minified and obfuscated JavaScript
-m, --sourcemap Fetch and parse source maps + sourcesContent[]
-e, --eval Analyze dynamic code execution (eval, Function)
-z, --obfs-detect Detect code obfuscation patterns and techniques
--inline-html Scan inline <script> tags + SRI/CSP in HTML responses
--csp-origins Emit CSP-allowed origins as candidate endpoints
Security Analysis:
-s, --secrets Detect API keys, tokens, and credentials
-x, --tokens Extract JWT and authentication tokens
-P, --params Discover hidden parameters and variables
-PU, --param-urls Advanced parameter extraction with URL context
-i, --internal Filter for internal/private endpoints
-g, --graphql Analyze GraphQL endpoints and queries
-B, --bypass Detect WAF bypass patterns and techniques
-F, --firebase Analyze Firebase configurations and keys
-L, --links Extract and analyze all embedded links
Detection Tuning:
-mc, --min-confidence FLOAT Minimum confidence (0.0-1.0) for a finding (default: 0.50)
-sc, --show-confidence Print [conf=X.XX] alongside each finding
--no-fp-filter Disable the false-positive filter (debug)
--ignore-file FILE Permanent suppressions (.jshunterignore)
--diff PREVIOUS.json Report only NEW findings vs previous JSON envelope
--rules-file FILE.json Load an external JSON rule pack
--only-rules id,glob Run only matching rules (supports * glob)
--disable-rule id,glob Disable matching rules (supports * glob)
Verification:
--verify Probe findings against provider read-only endpoints
--verify-timeout SEC Timeout per verification probe (default: 10)
--verify-workers INT Concurrent verifier worker pool (default: 8)
Scope & Discovery:
-w, --crawl DEPTH Recursive JavaScript discovery depth (default: 1)
-D, --domain DOMAIN Limit analysis to specific domain
-E, --ext Filter by JavaScript file extensions
--robots Fetch /robots.txt for each input host and exit
Output Formats:
-j, --json Structured JSON output (schema_version 2)
--ndjson Newline-delimited JSON (jq / SIEM streaming)
--sarif SARIF 2.1.0 (GitHub code-scanning compatible)
-C, --csv CSV format for spreadsheet analysis
-v, --verbose Detailed analysis and debug output
-n, --burp Burp Suite compatible export format
--stats Per-stage counters on stderr at end of run
Registry:
--list-rules Print the rule registry as a table and exit
--explain RULE_ID Print full rule details and exit
--self-test Run rule registry against built-in TP/FP fixtures
-h, --help Display this help message
Ogni corrispondenza di classe segreta viene valutata in [0.0, 1.0]. Il punteggio parte da una priorità per regola e viene aggiustato da:
Il valore predefinito --min-confidence 0.50 filtra la lunga coda di corrispondenze basate solo sul pattern. Usa --min-confidence 0.80 per un triage ad alta precisione, --no-fp-filter per un output grezzo e non filtrato.
Un validatore è un controllo di coerenza per regola che viene eseguito dopo la corrispondenza della regex.
È la difesa più forte contro i falsi positivi: una stringa casuale che per caso
si adatta alla forma deve comunque superare un checksum, una decodifica strutturale o una
prova di lunghezza/charset prima di essere segnalata (e superarne uno aggiunge +0.10).
Il registro curato include 85+ rilevatori che coprono cloud e gestori di segreti
(AWS, Azure, GCP/PKCS#8, HashiCorp Vault, Terraform, Fly.io, Tailscale), controllo
versione e CI/CD (GitHub, GitLab, Docker Hub, Atlassian, Sentry, CircleCI,
Buildkite), pagamenti (Stripe, Square, Braintree, Plaid), provider AI/LLM
(OpenAI, Anthropic, Groq, Perplexity, Replicate, OpenRouter, Fireworks,
HuggingFace), messaggistica (Slack, Discord, Telegram, Twilio, Intercom, SendGrid,
Mailgun), SaaS e database (Notion, Airtable, Figma, Postman, Databricks,
PlanetScale, Grafana, New Relic, Dropbox, RubyGems, Supabase) e materiale PKI
(chiavi private RSA/EC/DSA/OpenSSH/PGP/PKCS#8, .ppk PuTTY, URI di connessione
a database). Esegui jshunter --list-rules per la tabella autorevole e
jshunter --explain <rule_id> per il pattern, il validatore e le
fixture di ogni singola regola. Le forme "hash nudo" senza prefisso vengono distribuite solo quando
un validatore strutturale o un gate di contesto obbligatorio può mantenerle prive di falsi positivi.
jshunter -l targets.txt -d -m -e -z -s -x -P -PU -g -F -B -L -j -v -o complete_assessment.json
jshunter -l targets.txt -d -m -z -e -s -g -F --found-only -o deobfuscated_findings.json
jshunter -l targets.txt -R 2000 -U "Mozilla/5.0..." -H "X-Forwarded-For: 1.1.1.1" -s -x -F -q
jshunter -l targets.txt -p 127.0.0.1:8080 -s -x -g -F -B -n -o burp_comprehensive.txt
jshunter -l targets.txt -ep -P -PU -L -w 3 -i -j -o endpoint_discovery.json
### Integrazione Enterprise & Automazione```bash
# CI/CD Security Pipeline Integration
jshunter -f dist/bundle.js -d -s -x -F -j --found-only > security-scan.json
# Comprehensive automated security reporting
jshunter -l production-js.txt -d -s -x -P -g -F -B -C -o enterprise-security-report.csv
# Source map analysis for development security
jshunter -f app.js -m -s -x -F -v -o sourcemap-analysis.json
# Firebase and GraphQL focused assessment
jshunter -l targets.txt -g -F -L -j -o api_security_findings.json
Accogliamo con piacere i contributi! Ecco come puoi aiutarci:
git clone https://github.com/cc1a2b/jshunter.git cd jshunter go mod tidy go build -o jshunter ./cmd/jshunter
## Licenza
JSHunter è rilasciato sotto la **Licenza MIT**. Consulta [LICENSE](https://github.com/cc1a2b/jshunter/blob/master/LICENSE) per i dettagli.```
Copyright (c) 2024-2026 Hussain Alsharman
Licensed under MIT License - free for commercial and personal use
Se JSHunter ti aiuta nella tua ricerca sulla sicurezza o nel lavoro professionale:
Metti una stella a questo repo • Segui @cc1a2b • Condividi con altri
JSHunter - Analisi Professionale della Sicurezza JavaScript
Creato da cc1a2b per la community della sicurezza
Funzionalità per Professionisti della Sicurezza: Progettato per penetration test e valutazioni della sicurezza Esempio:
jshunter -l targets.txt -p 127.0.0.1:8080 -H "Authorization: Bearer token" -R 1000
Suggerimento Professionale: Combina i flag per un'analisi completa (es.,
jshunter -u target.js -s -x -F -g)
Flusso di Lavoro di Reporting: Usa JSON per l'automazione, CSV per i report gestionali, esportazione Burp per test immediati Esempio:
jshunter -l targets.txt -s -j -o security-findings.json(report di sicurezza strutturato)
| Segnale | Effetto |
|---|
| Il percorso sorgente sembra un bundle vendor/chunk | −0.15 |
| Il contesto circostante contiene formulazioni da fixture | −0.30 |
| Validatore specifico del provider superato | +0.10 |
| Parola chiave di contesto richiesta presente (regola generica) | +0.05 |
| Entropia di Shannon ≥ 4.5 | +0.05 |
| Diversità delle classi di caratteri ≥ 3 | +0.05 |
| Corrispondenza nella denylist del rumore vendor | scartata prima della valutazione |
| Lunghezza / entropia sotto la soglia della regola | scartata prima della valutazione |
La riga è un marcatore //# sourceMappingURL= | scartata prima della valutazione |
| Provider | Validatore |
|---|
| AWS | Famiglia di prefissi (AKIA/ASIA/A3T…) + corpo base32 di 16 caratteri |
| Stripe | Famiglia di chiavi (sk/rk/pk_live/test_) e corpo webhook whsec_ in base62 |
| GitHub | Checksum CRC32 in base62 verificato rispetto al corpo casuale |
| OpenAI | Prefisso di famiglia + finestra di lunghezza (sk-/sk-proj-/sk-svcacct-) |
| Slack | Forma a segmenti con trattini (segmenti interni numerici, coda alfanumerica) |
| JWT | Header JSON decodificato in base64url con campo alg + payload JSON |
| Twilio | Corpo di 32 esadecimali + soglia di entropia |
| Azure | Il corpo base64 AccountKey= si decodifica esattamente in 64 byte; AD …<digit>Q~… |
| Telegram | Divisione <id di 8-10 cifre>:AA…, segreto base64url + soglia di entropia |
| Intercom | Il base64 si decodifica in un payload con prefisso tok: |
| Sentry | Il payload del token org sntrys_ si decodifica in base64 in JSON con una rivendicazione url |
| Terraform | Struttura a tre segmenti <14>.atlasv1.<60-70> |
| Square | Famiglia sq0atp-/sq0csp-/sq0idp- + lunghezza esatta del corpo + entropia |
| Braintree | Struttura a quattro segmenti access_token$<env>$<16 base36>$<32 hex> |
| Airtable | Divisione a due segmenti pat<14>.<64 hex> |
| Postman | Lunghezze dei segmenti PMAK-<24 hex>-<34 hex> + entropia |
| Database | password dell'URI di connessione rifiutata se templata/predefinita/a bassa entropia |