
jshunter ist ein Befehlszeilen-Tool zur Analyse von JavaScript-Dateien und zum Extrahieren von Endpunkten. Dieses Tool ist auf die Identifizierung sensibler Daten wie API-Endpunkte und potenzieller Sicherheitslücken spezialisiert und ist damit eine unverzichtbare Ressource für Bug-Bounty-Jäger und Sicherheitsforscher.
Professionelles JavaScript-Sicherheitsanalysetool
Vollständige Endpunkt-Erkennung, Erkennung sensibler Daten und erweiterte Code-Analyse für Sicherheitsexperten
JSHunter ist ein umfassendes Kommandozeilen-Tool für JavaScript-Sicherheitsanalyse und Endpunkt-Erkennung. Entwickelt für Sicherheitsexperten, Penetrationstester und Entwickler, bietet es Analysefunktionen auf Unternehmensniveau mit hochpräzisen Erkennungsalgorithmen und professionellen Berichtsfunktionen.
https://github.com/user-attachments/assets/5a5f60fa-f8dc-4aac-bd06-2e93779f9af4
JSHunter in Aktion — eine echte Terminalaufnahme der CLI (jedes angezeigte Geheimnis sind gefälschte Testdaten)
Genauigkeit auf Unternehmensniveau mit erweiterten Analysealgorithmen
Authentifizierung & Header:
-H): Wiederholbare Authentifizierungs-Header und benutzerdefinierte Anfrage-Header-c): Sitzungs-Cookies für den Zugriff auf geschützte Ressourcen-U): Benutzerdefinierte UA-Strings oder dateibasierte Rotation für StealthLeistung & Zuverlässigkeit:
-R): Konfigurierbare Anfrageverzögerungen (Millisekunden) zur Vermeidung von Erkennung-T): Benutzerdefinierte Timeout-Einstellungen für verschiedene Netzwerkbedingungen-y): Automatischer Wiederholungsmechanismus mit exponentiellem Backoff für fehlgeschlagene AnfragenProfessionelle Integration:
-p): Vollständige Burp Suite- und benutzerdefinierte Proxy-Integration (HTTP/HTTPS/SOCKS5)-k): Optionale Umgehung der Zertifikatsprüfung für TestumgebungenKern-Analysewerkzeuge:
-d): Entpackt minifiziertes und obfuskiertes JavaScript für tiefgehende Analysen-m): Extrahiert und analysiert den ursprünglichen Quellcode aus Source Maps-z): Identifiziert und klassifiziert Obfuskationstechniken und -musterDynamische Analyse:
-e): Analysiert dynamische Codeausführung (eval(), Function(), Laufzeitgenerierung)Code-Intelligenz:
Professionelle Nutzung: Kombinieren Sie Analysetools mit Sicherheitserkennung für maximale Abdeckung Beispiel:
jshunter -u target.js -d -m -e -s -g(vollständige Deobfuskation + Sicherheitsanalyse)
Kern-Sicherheitserkennung:
-s): API-Schlüssel, Zugriffstokens, Passwörter und hartkodierte Anmeldedaten-x): Authentifizierungs-Token-Extraktion, Validierung und Payload-Inspektion-F): Konfigurationsanalyse, API-Schlüssel und Datenbank-URL-ErkennungErweiterte Analyse:
-P): Versteckte Formularparameter, Variablen und Konfigurationsschlüssel-PU): Erweiterte Parameteranalyse mit vollständigem URL-Kontext-g): Schema-Erkennung, Query-Extraktion und Endpunkt-Erkennung-B): Sicherheits-Bypass-Muster und EvasionstechnikenUmfang & Kontext:
-i): Identifizierung und Klassifizierung privater/interner Ressourcen-L): Umfassende URL-Extraktion und BeziehungszuordnungKern-Ausgabeformate:
-o): Speichert umfassende Ergebnisse an benutzerdefinierten Speicherorten-j): Strukturiertes Datenformat für Automatisierung und programmatische Verarbeitung-C): Tabellenkalkulations-kompatibles Format für Führungsberichte und AnalysenProfessionelle Integration:
-n): Direkte Integration mit Burp Suite Professional für sofortige Tests-r): Benutzerdefinierte Mustererkennung für gezielte Ergebnisfilterung-v): Detaillierte Analyseausgabe mit Debugging-Informationen und KontextErgebnisverwaltung:
--found-only): Leere Ergebnisse ausblenden für fokussierte Sicherheitsberichte-q): Banner für automatisierte Skripte und CI/CD-Integration unterdrückengo install -v github.com/cc1a2b/jshunter/cmd/jshunter@latest
jshunter --help
### Aus dem Quellcode erstellen```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
### Vollständige Sicherheitsanalyse```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
---
## Befehlsreferenz
Rufen Sie jederzeit die vollständige Hilfe mit `jshunter --help` auf.```
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
Jeder Secret-Klassentreffer wird mit einem Wert in [0.0, 1.0] bewertet. Der Wert startet mit einem regel-spezifischen Prior und wird wie folgt angepasst:
Der Standardwert --min-confidence 0.50 filtert den langen Ausläufer reiner Muster-Treffer heraus. Verwenden Sie --min-confidence 0.80 für hochpräzises Triage, --no-fp-filter für rohe, ungefilterte Ausgabe.
Ein Validator ist eine regel-spezifische Konsistenzprüfung, die nach dem Regex-Treffer ausgeführt wird.
Er ist die stärkste Verteidigung gegen False Positives: Eine zufällige Zeichenkette, die zufällig
der Form entspricht, muss dennoch eine Prüfsumme, eine strukturelle Dekodierung oder einen
Längen-/Zeichensatz-Nachweis überstehen, bevor sie gemeldet wird (und das Bestehen eines solchen fügt +0.10 hinzu).
Das kuratierte Register enthält 85+ Detektoren, die Cloud- und Secret-Manager
(AWS, Azure, GCP/PKCS#8, HashiCorp Vault, Terraform, Fly.io, Tailscale),
Versionskontrolle & CI/CD (GitHub, GitLab, Docker Hub, Atlassian, Sentry, CircleCI,
Buildkite), Zahlungen (Stripe, Square, Braintree, Plaid), KI/LLM-Anbieter
(OpenAI, Anthropic, Groq, Perplexity, Replicate, OpenRouter, Fireworks,
HuggingFace), Messaging (Slack, Discord, Telegram, Twilio, Intercom, SendGrid,
Mailgun), SaaS & Datenbanken (Notion, Airtable, Figma, Postman, Databricks,
PlanetScale, Grafana, New Relic, Dropbox, RubyGems, Supabase) sowie PKI-Material
(RSA/EC/DSA/OpenSSH/PGP/PKCS#8-Private Keys, PuTTY .ppk, Datenbank-Verbindungs-
URIs) abdecken. Führen Sie jshunter --list-rules für die maßgebliche Tabelle und
jshunter --explain <rule_id> für das Muster, den Validator und die Fixtures einer
einzelnen Regel aus. Präfix-lose „Bare-Hash"-Formen werden nur dann ausgeliefert,
wenn ein struktureller Validator oder ein obligatorisches Kontext-Gate sie
false-positive-frei halten kann.
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
### Enterprise- & Automatisierungsintegration```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
Wir freuen uns über Beiträge! So kannst du helfen:
git clone https://github.com/cc1a2b/jshunter.git cd jshunter go mod tidy go build -o jshunter ./cmd/jshunter
## Lizenz
JSHunter wird unter der **MIT-Lizenz** veröffentlicht. Einzelheiten finden Sie in der [LICENSE](https://github.com/cc1a2b/jshunter/blob/master/LICENSE).```
Copyright (c) 2024-2026 Hussain Alsharman
Licensed under MIT License - free for commercial and personal use
Wenn JSHunter bei deiner Sicherheitsforschung oder deiner beruflichen Arbeit hilft:
Star dieses Repo • Folge @cc1a2b • Teile es mit anderen
JSHunter – Professionelle JavaScript-Sicherheitsanalyse
Erstellt von cc1a2b für die Sicherheits-Community
-tFunktionen für Sicherheitsexperten: Entwickelt für Penetrationstests und Sicherheitsbewertungen Beispiel:
jshunter -l targets.txt -p 127.0.0.1:8080 -H "Authorization: Bearer token" -R 1000
Professioneller Tipp: Kombinieren Sie Flags für umfassende Analysen (z. B.
jshunter -u target.js -s -x -F -g)
Berichts-Workflow: Verwenden Sie JSON für Automatisierung, CSV für Management-Berichte, Burp-Export für sofortige Tests Beispiel:
jshunter -l targets.txt -s -j -o security-findings.json(strukturierter Sicherheitsbericht)
| Signal | Effekt |
|---|
| Quellpfad sieht nach einem Vendor/Chunk-Bundle aus | −0.15 |
| Umgebender Kontext enthält Fixture-Formulierungen | −0.30 |
| Anbieter-spezifischer Validator bestanden | +0.10 |
| Erforderliches Kontext-Keyword vorhanden (generische Regel) | +0.05 |
| Shannon-Entropie ≥ 4.5 | +0.05 |
| Zeichenklassen-Diversität ≥ 3 | +0.05 |
| Treffer in der Vendor-Noise-Denylist | vor der Bewertung verworfen |
| Länge / Entropie unterhalb des Regel-Minimums | vor der Bewertung verworfen |
Zeile ist ein //# sourceMappingURL=-Marker | vor der Bewertung verworfen |
| Anbieter | Validator |
|---|
| AWS | Präfix-Familie (AKIA/ASIA/A3T…) + 16-Zeichen-Base32-Body |
| Stripe | Schlüssel-Familie (sk/rk/pk_live/test_) und whsec_-Webhook-Base62-Body |
| GitHub | CRC32-Base62-Prüfsumme gegen zufälligen Body verifiziert |
| OpenAI | Familien-Präfix + Längenfenster (sk-/sk-proj-/sk-svcacct-) |
| Slack | Bindestrich-Segmentform (numerische innere Segmente, alphanumerisches Ende) |
| JWT | base64url-dekodierter JSON-Header mit alg-Feld + JSON-Payload |
| Twilio | 32-Hex-Body + Entropie-Gate |
| Azure | AccountKey=-Base64-Body dekodiert zu exakt 64 Bytes; AD …<digit>Q~… |
| Telegram | <8-10-stellige ID>:AA…-Aufteilung, base64url-Geheimnis + Entropie-Gate |
| Intercom | Base64 dekodiert zu einem tok:-präfixierten Payload |
| Sentry | sntrys_-Org-Token-Payload base64-dekodiert zu JSON mit url-Anspruch |
| Terraform | <14>.atlasv1.<60-70>-Drei-Segment-Struktur |
| Square | sq0atp-/sq0csp-/sq0idp--Familie + exakte Body-Länge + Entropie |
| Braintree | access_token$<env>$<16 base36>$<32 hex>-Vier-Segment-Struktur |
| Airtable | pat<14>.<64 hex>-Zwei-Segment-Aufteilung |
| Postman | PMAK-<24 hex>-<34 hex>-Segmentlängen + Entropie |
| Datenbank | Verbindungs-URI-Passwort abgelehnt, wenn templatisiert/Standard/niedrige Entropie |