
jshunter هي أداة سطر أوامر مصممة لتحليل ملفات JavaScript واستخراج نقاط النهاية. تتخصص هذه الأداة في تحديد البيانات الحساسة، مثل نقاط نهاية API والثغرات الأمنية المحتملة، مما يجعلها موردًا أساسيًا لصيادي المكافآت الأمنية والباحثين في مجال الأمن.
أداة احترافية لتحليل أمان JavaScript
اكتشاف شامل لنقاط النهاية، وكشف البيانات الحساسة، وتحليل متقدم للشيفرة لمتخصصي الأمن
JSHunter هي أداة سطر أوامر شاملة لتحليل أمان JavaScript واكتشاف نقاط النهاية. صُممت لمتخصصي الأمن ومختبري الاختراق والمطورين، وتقدم قدرات تحليل بمستوى المؤسسات مع خوارزميات كشف عالية الدقة وميزات إعداد تقارير احترافية.
https://github.com/user-attachments/assets/5a5f60fa-f8dc-4aac-bd06-2e93779f9af4
JSHunter أثناء العمل — تسجيل حقيقي لنافذة الطرفية لواجهة سطر الأوامر (كل سر ظاهر هو بيانات اختبار وهمية)
دقة بمستوى المؤسسات مع خوارزميات تحليل متقدمة
يقوم JSHunter بتحليل JavaScript الذي يفحصه بدلًا من مجرد مطابقته بالأنماط. ماسح ECMAScript أحادي التمرير يصنّف كل بايت من الاستجابة كسلسلة نصية حرفية، أو قالب نصي حرفي، أو تعليق، أو تعبير نمطي حرفي، أو شيفرة، وتُقيَّم قواعد الكشف مقابل هذا التصنيف.
هذا مهم لأن التعبير النمطي لا يعرف ما طابقه. نفس الأربعين حرفًا من base64 تعني "بيانات اعتماد" داخل سلسلة نصية حرفية، و"تجزئة قطعة" داخل معرّف مُصغَّر، ولا شيء على الإطلاق عندما تتوزع على الحد الفاصل بين رمزين متجاورين. معرفة أي منها هو يستبدل كومة من الاستدلالات القائمة على القرب بإجابة بنيوية:
key،
يستعيد المحرك المعرّف أو مفتاح الخاصية الذي ترتبط به القيمة فعليًا —
const stripeSecret = "..." تُقرأ بشكل مختلف تمامًا عن
{contentHash: "..."}، وقاعدة الشكل فقط تتطلب الآن هذا الربط.role الخاص بها، ومعرّفات Twilio SIDs — تُصنَّف بدلًا من الإبلاغ
عنها كتسريبات. --include-public يبلغ عنها على أي حال.كل رفض مشروط بأن يكون المحتوى JavaScript أو JSON بثقة. في أي شيء آخر — ملف
.env، أو نص، أو HTML خام — يساهم المحرك بالأدلة لكنه لا يكبت أبدًا، لذا لا
يمكن لمدخل مُصنَّف خطأً أن يخفي سرًا. --no-structural يوقف الطبقة بأكملها
ويعيد سلوك v0.7.
تحمل النتائج المنطق ككائن evidence في --json و--ndjson وحقيبة خصائص
SARIF:```json
"exposure": "secret",
"evidence": {
"region": "string-literal",
"role": "assignment",
"bound_to": "awsAccessKeyId",
"shape": "opaque-token",
"charset": "alphanumeric",
"signals": [
{"name": "in-literal", "delta": 0.04, "detail": "value is a complete string-literal"},
{"name": "credential-binding", "delta": 0.12, "detail": "bound to 'awsAccessKeyId'"}
]
}
`--stats` يوضح ما أسقطته كل مرحلة، بحيث تبقى سلسلة المعالجة قابلة للتدقيق.
### رسم بياني للكتل واكتشاف المسارات
يُصدر التطبيق الحديث حزمة دخول واحدة ومئات من الكتل المحمّلة بتأخير
التي تُجمَّع عناوين URL الخاصة بها في وقت التشغيل من بيان يُضمّنه المُجمِّع.
لا شيء يشير إليها، لذا لا يراها أي زاحف. يستعيد `-G` ذلك البيان
ويطبع قائمة الأصول الكاملة وجدول مسارات العميل:```console
$ jshunter -u https://target.example/_next/static/chunks/main-a1b2c3.js -G
[CHUNKS] https://target.example/...: next runtime, 214 chunks, 37 routes
[CHUNK] https://target.example/... https://target.example/_next/static/chunks/settings.11aa22bb33cc.js
[ROUTE] https://target.example/... /admin/users/:id
بيئات التشغيل المدعومة: webpack 4 و5 (__webpack_require__.u، miniCssF،
jsonpScriptSrc)، ملفات بيان بناء Next.js، Vite وRollup (__vite__mapDeps،
__vitePreload)، استدعاء import() الديناميكي العادي، وجداول المسارات من React Router
وVue Router وAngular. المخرجات مفصولة بعلامات الجدولة ومُزالة التكرار، لذا يمكن تمريرها
مباشرة كقائمة مدخلات لفحص لاحق:```bash
jshunter -u https://target.example/main.js -G -q | awk -F'\t' '/^[CHUNK]/{print $3}' > chunks.txt
jshunter -l chunks.txt -s -j > findings.json
### مجموعة احترافية لـ HTTP والشبكات
<details>
<summary><strong>إعداد شبكة بمستوى المؤسسات</strong></summary>
**المصادقة والترويسات:**
- **ترويسات مخصصة** (`-H`): ترويسات مصادقة قابلة للتكرار وترويسات طلبات مخصصة
- **إدارة ملفات تعريف الارتباط** (`-c`): ملفات تعريف ارتباط الجلسة للوصول إلى الموارد المحمية
- **التحكم في User-Agent** (`-U`): سلاسل UA مخصصة أو تدوير قائم على الملفات للتخفي
**الأداء والموثوقية:**
- **تحديد المعدل** (`-R`): تأخيرات طلبات قابلة للتكوين (بالمللي ثانية) لتجنب الكشف
- **مُهلات ذكية** (`-T`): إعدادات مُهلة مخصصة لظروف شبكة مختلفة
- **إعادة محاولة ذكية** (`-y`): آلية إعادة محاولة تلقائية مع تراجع أسي للطلبات الفاشلة
**التكامل الاحترافي:**
- **دعم البروكسي** (`-p`): تكامل كامل مع Burp Suite وبروكسي مخصص (HTTP/HTTPS/SOCKS5)
- **مرونة TLS** (`-k`): تجاوز اختياري للتحقق من الشهادات لبيئات الاختبار
- **التحكم في الخيوط** (`-t`): معالجة طلبات متزامنة قابلة للتكوين للحصول على الأداء الأمثل
> **ميزات أمنية احترافية**: مصممة لاختبار الاختراق وتقييمات الأمان
> **مثال**: `jshunter -l targets.txt -p 127.0.0.1:8080 -H "Authorization: Bearer token" -R 1000`
</details>
### تحليل JavaScript المتقدم
<details>
<summary><strong>مجموعة كاملة لتحليل الكود وإزالة التشويش</strong></summary>
**أدوات التحليل الأساسية:**
- **محرك إزالة التشويش** (`-d`): يفك ضغط JavaScript المُصغّر والمشوّش للتحليل العميق
- **محلل خرائط المصدر** (`-m`): يستخرج ويحلل الكود المصدري الأصلي من خرائط المصدر
- **كشف التشويش** (`-z`): يحدد ويصنف تقنيات وأنماط التشويش
**التحليل الديناميكي:**
- **تحليل Eval** (`-e`): يحلل تنفيذ الكود الديناميكي (`eval()`، `Function()`، التوليد في وقت التشغيل)
**ذكاء الكود:**
- **التعرف على الأنماط**: يحدد أطر ومكتبات JavaScript الشائعة
- **تحليل بنية الكود**: يرسم بنية التطبيق وتدفقات البيانات
- **الكشف الواعي بالسياق**: يفهم سياق الكود لتقليل الإيجابيات الكاذبة