
jshunter هي أداة سطر أوامر مصممة لتحليل ملفات JavaScript واستخراج نقاط النهاية. تتخصص هذه الأداة في تحديد البيانات الحساسة، مثل نقاط نهاية API والثغرات الأمنية المحتملة، مما يجعلها موردًا أساسيًا لصيادي المكافآت الأمنية والباحثين في مجال الأمن.
أداة تحليل أمان JavaScript احترافية
اكتشاف شامل لنقاط النهاية، وكشف البيانات الحساسة، وتحليل كود متقدم لمحترفي الأمن
JSHunter هي أداة سطر أوامر شاملة لتحليل أمان JavaScript واكتشاف نقاط النهاية. صُممت لمحترفي الأمن، ومختبري الاختراق، والمطورين، وتوفر قدرات تحليلية بمستوى المؤسسات مع خوارزميات كشف عالية الدقة وميزات إعداد تقارير احترافية.
https://github.com/user-attachments/assets/5a5f60fa-f8dc-4aac-bd06-2e93779f9af4
JSHunter أثناء العمل — لقطة طرفية حقيقية لواجهة CLI (كل سر معروض هو بيانات اختبار وهمية)
دقة بمستوى المؤسسات مع خوارزميات تحليل متقدمة
المصادقة والرؤوس:
-H): رؤوس مصادقة ورؤوس طلبات مخصصة قابلة للتكرار-c): ملفات تعريف ارتباط الجلسة للوصول إلى الموارد المحمية-U): سلاسل UA مخصصة أو تدوير قائم على ملفات للتمويهالأداء والموثوقية:
-R): تأخيرات طلبات قابلة للتكوين (بالمللي ثانية) لتجنب الكشف-T): إعدادات مهلة مخصصة لظروف شبكة مختلفة-y): آلية إعادة محاولة تلقائية مع تراجع أسي للطلبات الفاشلةالتكامل الاحترافي:
-p): تكامل كامل مع Burp Suite والوكلاء المخصصين (HTTP/HTTPS/SOCKS5)-k): تجاوز اختياري للتحقق من الشهادات لبيئات الاختبار-t): معالجة طلبات متزامنة قابلة للتكوين للأداء الأمثل: مصممة لاختبار الاختراق وتقييمات الأمان :
أدوات التحليل الأساسية:
-d): فك ضغط JavaScript المصغّر والمعتّم للتحليل العميق-m): استخراج وتحليل كود المصدر الأصلي من خرائط المصدر-z): تحديد وتصنيف تقنيات وأنماط التعتيمالتحليل الديناميكي:
-e): تحليل تنفيذ الكود الديناميكي (eval()، Function()، التوليد في وقت التشغيل)ذكاء الكود:
الاستخدام الاحترافي: اجمع أدوات التحليل مع كشف الأمان لأقصى تغطية مثال:
jshunter -u target.js -d -m -e -s -g(إزالة تعتيم كاملة + تحليل أمان)
كشف الأمان الأساسي:
-s): مفاتيح API ورموز الوصول وكلمات المرور وبيانات الاعتماد المكتوبة بشكل ثابت-x): استخراج رموز المصادقة والتحقق منها وفحص الحمولة-F): تحليل التكوين ومفاتيح API وكشف عناوين URL لقاعدة البياناتالتحليل المتقدم:
-P): معاملات النماذج المخفية والمتغيرات ومفاتيح التكوين-PU): تحليل معاملات متقدم مع سياق URL كامل-g): كشف المخطط واستخراج الاستعلامات واكتشاف نقاط النهاية-B): أنماط تجاوز الأمان وتقنيات المراوغةالنطاق والسياق:
-i): تحديد وتصنيف الموارد الخاصة/الداخلية-L): استخراج شامل لعناوين URL ورسم خرائط العلاقات: اجمع العلامات لتحليل شامل (مثال: )
تنسيقات الإخراج الأساسية:
-o): حفظ النتائج الشاملة في مواقع ملفات مخصصة-j): تنسيق بيانات منظم للأتمتة والمعالجة البرمجية-C): تنسيق متوافق مع جداول البيانات للتقارير التنفيذية والتحليلالتكامل الاحترافي:
-n): تكامل مباشر مع Burp Suite Professional للاختبار الفوري-r): مطابقة أنماط مخصصة لتصفية النتائج المستهدفة-v): إخراج تحليل مفصل مع معلومات تصحيح وسياقإدارة النتائج:
--found-only): إخفاء النتائج الفارغة لتقارير أمان مركزة-q): إخفاء الشعار للبرمجة النصية الآلية وتكامل CI/CDسير عمل التقارير: استخدم JSON للأتمتة وCSV لتقارير الإدارة وتصدير Burp للاختبار الفوري مثال:
jshunter -l targets.txt -s -j -o security-findings.json(تقرير أمان منظم)
go install -v github.com/cc1a2b/jshunter/cmd/jshunter@latest
jshunter --help
### البناء من المصدر```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
### تحليل أمني شامل```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
---```bash
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
---
## مرجع الأوامر
احصل على المساعدة الكاملة في أي وقت باستخدام `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
يتم تسجيل كل تطابق من فئة الأسرار في نطاق [0.0, 1.0]. تبدأ النتيجة من احتمال مسبق خاص بكل قاعدة ويتم تعديلها بواسطة:
الافتراضي --min-confidence 0.50 يفلتر الذيل الطويل من التطابقات القائمة على النمط فقط. استخدم --min-confidence 0.80 للفرز عالي الدقة، و--no-fp-filter للإخراج الخام غير المفلتر.
أداة التحقق هي فحص اتساق خاص بكل قاعدة يتم تشغيله بعد تطابق التعبير النمطي.
وهي أقوى دفاع ضد النتائج الإيجابية الكاذبة: سلسلة عشوائية تصادف أنها
تناسب الشكل لا تزال بحاجة إلى اجتياز مجموع اختباري، أو فك ترميز بنيوي، أو
إثبات طول/مجموعة أحرف قبل الإبلاغ عنها (وإجتياز أحدها يضيف +0.10).
يوفّر السجل المنظّم أكثر من 85 كاشفًا تغطي السحابة ومديري الأسرار
(AWS, Azure, GCP/PKCS#8, HashiCorp Vault, Terraform, Fly.io, Tailscale)، والتحكم
بالإصدارات وCI/CD (GitHub, GitLab, Docker Hub, Atlassian, Sentry, CircleCI,
Buildkite)، والمدفوعات (Stripe, Square, Braintree, Plaid)، ومزوّدي AI/LLM
(OpenAI, Anthropic, Groq, Perplexity, Replicate, OpenRouter, Fireworks,
HuggingFace)، والمراسلة (Slack, Discord, Telegram, Twilio, Intercom, SendGrid,
Mailgun)، وSaaS وقواعد البيانات (Notion, Airtable, Figma, Postman, Databricks,
PlanetScale, Grafana, New Relic, Dropbox, RubyGems, Supabase)، ومواد PKI
(مفاتيح خاصة RSA/EC/DSA/OpenSSH/PGP/PKCS#8، وملفات PuTTY .ppk، وروابط اتصال
قواعد البيانات). شغّل jshunter --list-rules للحصول على الجدول المرجعي و
jshunter --explain <rule_id> لمعرفة نمط أي قاعدة وأداة التحقق وبياناتها
الاختبارية. لا يتم توفير أشكال "التجزئة المجردة" بدون بادئة إلا عندما يمكن
لأداة تحقق بنيوية أو بوابة سياق إلزامية إبقاؤها خالية من النتائج الإيجابية الكاذبة.
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
### تكامل المؤسسات والأتمتة```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
نرحب بالمساهمات! إليك كيف يمكنك المساعدة:
git clone https://github.com/cc1a2b/jshunter.git cd jshunter go mod tidy go build -o jshunter ./cmd/jshunter
---
## الترخيص
يُصدر JSHunter بموجب **رخصة MIT**. راجع [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
إذا كان JSHunter يساعدك في أبحاثك الأمنية أو عملك المهني:
قم بتمييز هذا المستودع بنجمة • تابع @cc1a2b • شاركه مع الآخرين
JSHunter - تحليل أمني احترافي لجافاسكريبت
تم بناؤه بواسطة cc1a2b من أجل مجتمع الأمن
jshunter -l targets.txt -p 127.0.0.1:8080 -H "Authorization: Bearer token" -R 1000jshunter -u target.js -s -x -F -g| الإشارة | التأثير |
|---|
| مسار المصدر يبدو كحزمة بائع/مجمّعة | −0.15 |
| السياق المحيط يحتوي على صياغة بيانات اختبارية | −0.30 |
| التحقق الخاص بالمزوّد نجح | +0.10 |
| كلمة سياق مطلوبة موجودة (قاعدة عامة) | +0.05 |
| إنتروبيا شانون ≥ 4.5 | +0.05 |
| تنوّع فئات الأحرف ≥ 3 | +0.05 |
| تطابق في قائمة حظر ضوضاء البائع | يُستبعد قبل التسجيل |
| الطول / الإنتروبيا أقل من الحد الأدنى للقاعدة | يُستبعد قبل التسجيل |
السطر هو علامة //# sourceMappingURL= | يُستبعد قبل التسجيل |
| المزوّد | أداة التحقق |
|---|
| AWS | عائلة البادئة (AKIA/ASIA/A3T…) + نص base32 بطول 16 حرفًا |
| Stripe | عائلة المفتاح (sk/rk/pk_live/test_) ونص base62 لخطاف الويب whsec_ |
| GitHub | مجموع اختباري CRC32 base62 تم التحقق منه مقابل النص العشوائي |
| OpenAI | بادئة العائلة + نافذة الطول (sk-/sk-proj-/sk-svcacct-) |
| Slack | شكل مقاطع مفصولة بواصلة (مقاطع داخلية رقمية، ذيل أبجدي رقمي) |
| JWT | ترويسة JSON مفكوكة base64url مع حقل alg + حمولة JSON |
| Twilio | نص بطول 32 حرفًا سداسيًا + بوابة إنتروبيا |
| Azure | نص AccountKey= base64 يُفك إلى 64 بايت بالضبط؛ AD …<digit>Q~… |
| Telegram | تقسيم <8-10 digit id>:AA…، سر base64url + بوابة إنتروبيا |
| Intercom | base64 يُفك إلى حمولة مسبوقة بـ tok: |
| Sentry | حمولة رمز المؤسسة sntrys_ تُفك base64 إلى JSON يحمل ادعاء url |
| Terraform | بنية ثلاثية المقاطع <14>.atlasv1.<60-70> |
| Square | عائلة sq0atp-/sq0csp-/sq0idp- + طول نص دقيق + إنتروبيا |
| Braintree | بنية رباعية المقاطع access_token$<env>$<16 base36>$<32 hex> |
| Airtable | تقسيم ثنائي المقاطع pat<14>.<64 hex> |
| Postman | أطوال المقاطع PMAK-<24 hex>-<34 hex> + إنتروبيا |
| قاعدة بيانات | رفض كلمة مرور URI الاتصال إذا كانت قالبية/افتراضية/منخفضة الإنتروبيا |