
JSON Web Token Hack Toolkit
أدوات اختبار JSON Web Token
أداة عالية الأداء لاختبار وتحليل ومهاجمة JSON Web Tokens.
cargo install jwt-hack
brew install jwt-hack
sudo snap install jwt-hack
git clone https://github.com/hahwul/jwt-hack
cd jwt-hack
cargo install --path .
docker pull ghcr.io/hahwul/jwt-hack:latest
docker pull hahwul/jwt-hack:v2.6.0
يمكنك فك تشفير JWTs العادية والمضغوطة بـ DEFLATE. ستقوم الأداة تلقائيًا باكتشاف وفك ضغط الرموز المضغوطة.
jwt-hack decode eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjM0In0.CHANGED
jwt-hack decode COMPRESSED_JWT_TOKEN
فك تشفير رموز JWE (JSON Web Encryption) لتحليل بنيتها. تكتشف الأداة تلقائيًا تنسيق JWE (5 أجزاء) وتعرض تفاصيل التشفير.
# فك تشفير بنية رمز JWE
jwt-hack decode eyJhbGciOiJkaXIiLCJlbmMiOiJBMjU2R0NNIn0..ZHVtbXlfaXZfMTIzNDU2.eyJ0ZXN0IjoiandlIn0.ZHVtbXlfdGFn
# يعرض ترويسة JWE والمفتاح المشفر وIV والنص المشفر وعلامة المصادقة
jwt-hack encode '{"sub":"1234"}' --secret=your-secret
يمكنك استخدام خيار --compress لتطبيق ضغط DEFLATE على حمولة JWT.
jwt-hack encode '{"sub":"1234"}' --secret=your-secret --compress
# مع المفتاح الخاص
ssh-keygen -t rsa -b 4096 -E SHA256 -m PEM -P "" -f RS256.key
jwt-hack encode '{"a":"z"}' --private-key RS256.key --algorithm=RS256
إنشاء رموز JWE (JSON Web Encryption) لاختبار سيناريوهات JWT المشفرة.
# تشفير JWE أساسي
jwt-hack encode '{"sub":"1234", "data":"encrypted"}' --jwe --secret=your-secret
# رموز JWE مشفرة ولا يمكن فك تشفيرها إلا بالمفتاح الصحيح
jwt-hack encode '{"sensitive":"data"}' --jwe
يتحقق مما إذا كان توقيع JWT صالحًا باستخدام السر أو المفتاح المقدم.
# مع السر (خوارزميات HMAC مثل HS256 وHS384 وHS512)
jwt-hack verify YOUR_JWT_TOKEN_HERE --secret=your-256-bit-secret
# مع المفتاح الخاص (للخوارزميات غير المتماثلة مثل RS256 وES256 وEdDSA)
jwt-hack verify YOUR_JWT_TOKEN_HERE --private-key path/to/your/RS256_private.key
تدعم هجمات القاموس والقوة الغاشمة أيضًا JWTs المضغوطة بـ DEFLATE.
# هجوم القاموس
jwt-hack crack -w wordlist.txt JWT_TOKEN
jwt-hack crack -w wordlist.txt COMPRESSED_JWT_TOKEN
# هجوم القوة الغاشمة
jwt-hack crack -m brute JWT_TOKEN --max=4
jwt-hack crack -m brute COMPRESSED_JWT_TOKEN --max=4
jwt-hack payload JWT_TOKEN --jwk-attack evil.com --jwk-trust trusted.com
فحص رموز JWT تلقائيًا بحثًا عن مشكلات وثغرات أمنية شائعة.
# فحص كامل بما في ذلك اكتشاف السر الضعيف وتوليد الحمولات
jwt-hack scan JWT_TOKEN
# تخطي كسر السر للحصول على نتائج أسرع
jwt-hack scan JWT_TOKEN --skip-crack
# تخطي توليد الحمولات
jwt-hack scan JWT_TOKEN --skip-payloads
# استخدام قائمة كلمات مخصصة لاكتشاف السر الضعيف
jwt-hack scan JWT_TOKEN -w custom_wordlist.txt
# تحديد عدد محاولات اختبار السر
jwt-hack scan JWT_TOKEN --max-crack-attempts 50
يتحقق أمر الفحص من:
تشغيل REST API محلي للأتمتة والتكاملات. لتتطلب المصادقة، استخدم --api-key وأدرج X-API-KEY في الطلبات.
# التشغيل على localhost:3000 مع حماية مفتاح API
jwt-hack server --api-key your-api-key
# مثال على طلب (يجب تضمين X-API-KEY عند تعيين --api-key)
curl -s http://127.0.0.1:3000/health -H 'X-API-KEY: your-api-key'
يمكن تشغيل jwt-hack كخادم MCP، مما يسمح لنماذج الذكاء الاصطناعي بالتفاعل مع وظائف JWT عبر بروتوكول موحّد.
# تشغيل خادم MCP (يتواصل عبر stdio)
jwt-hack mcp
يكشف خادم MCP عن الأدوات التالية:
تم تصميم خادم MCP لاستخدامه من قبل نماذج الذكاء الاصطناعي وعملاء MCP. تقبل كل أداة معلمات JSON وتعيد استجابات منظمة.
أداة فك التشفير:
{
"name": "decode",
"arguments": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
أداة التشفير:
{
"name": "encode",
"arguments": {
"json": "{\"sub\":\"1234\",\"name\":\"test\"}",
"secret": "mysecret",
"algorithm": "HS256"
}
}
يمكنك توصيل خادم MCP الخاص بـ jwt-hack بعملاء MCP المشهورين. تأكد من أن ثنائي jwt-hack موجود على نظامك ويمكن للعميل الوصول إليه.
VSCode
{
"servers": {
"jwt-hack": {
"type": "stdio",
"command": "jwt-hack",
"args": [
"mcp"
]
}
},
"inputs": []
}
Claude Desktop
{
"mcpServers": {
"jwt-hack": {
"command": "jwt-hack",
"args": ["mcp"],
"env": {}
}
}
}
| الخوارزمية | الوصف |
|---|---|
| A128GCM | AES-GCM باستخدام مفتاح 128 بت |
| A256GCM | AES-GCM باستخدام مفتاح 256 بت |
| الخوارزمية | الوصف |
|---|---|
| dir | الاستخدام المباشر للمفتاح المتماثل المشترك |
دعم ضغط DEFLATE تدعم أداة
jwt-hackضغط DEFLATE لـ JWTs.
- استخدم خيار
--compressمعencodeلتوليد JWTs مضغوطة.- تكتشف أوضاع
decodeوcrackتلقائيًا وتتعامل مع JWTs المضغوطة.
Urx هو مشروع مفتوح المصدر وصُنع بـ ❤️ إذا كنت ترغب في المساهمة في هذا المشروع، يرجى الاطلاع على CONTRIBUTING.md وإرسال Pull-Request بمحتواك الرائع.
| الوضع | الوصف | الدعم |
|---|
| Encode | مشفر JWT/JWE | قائم على السر / قائم على المفتاح / الخوارزمية / ترويسة مخصصة / ضغط DEFLATE / JWE |
| Decode | مفكك JWT/JWE | الخوارزمية، فحص وقت الإصدار، ضغط DEFLATE، بنية JWE |
| Verify | مدقق JWT | قائم على السر / قائم على المفتاح (للخوارزميات غير المتماثلة) |
| Crack | كاسر السر | هجوم القاموس / القوة الغاشمة / ضغط DEFLATE |
| Payload | مولّد حمولات هجوم JWT | none / jku&x5u / alg_confusion (موقّع عبر --public-key) / حقن kid & claim / العبث بالمطالبات / مرونة التوقيع / فحوصات JWE / x5c / cty |
| Scan | ماسح الثغرات | فحوصات أمنية آلية لثغرات JWT الشائعة |
| Server | خادم API | تشغيل وضع خادم API (http://localhost:3000) |
| MCP | خادم بروتوكول سياق النموذج | تكامل نماذج الذكاء الاصطناعي عبر بروتوكول موحّد |
| الأداة | الوصف | المعلمات |
|---|
decode | فك تشفير رموز JWT | token (سلسلة نصية) |
encode | تشفير JSON إلى JWT | json (سلسلة نصية)، secret (اختياري)، algorithm (الافتراضي: HS256)، no_signature (قيمة منطقية) |
verify | التحقق من توقيعات JWT | token (سلسلة نصية)، secret (اختياري)، validate_exp (قيمة منطقية) |
crack | كسر رموز JWT | token (سلسلة نصية)، mode (dict/brute)، chars (سلسلة نصية)، max (رقم) |
payload | توليد حمولات الهجوم | token (سلسلة نصية)، target (سلسلة نصية)، jwk_attack (اختياري)، jwk_protocol (الافتراضي: https)، public_key (PEM/مسار اختياري لارتباك الخوارزمية الموقّع) |
| الخوارزمية | الوصف | النوع |
|---|
| HS256 | HMAC باستخدام SHA-256 | متماثل |
| HS384 | HMAC باستخدام SHA-384 | متماثل |
| HS512 | HMAC باستخدام SHA-512 | متماثل |
| RS256 | RSASSA-PKCS1-v1_5 باستخدام SHA-256 | غير متماثل |
| RS384 | RSASSA-PKCS1-v1_5 باستخدام SHA-384 | غير متماثل |
| RS512 | RSASSA-PKCS1-v1_5 باستخدام SHA-512 | غير متماثل |
| ES256 | ECDSA باستخدام P-256 وSHA-256 | غير متماثل |
| ES384 | ECDSA باستخدام P-384 وSHA-384 | غير متماثل |
| PS256 | RSASSA-PSS باستخدام SHA-256 | غير متماثل |
| PS384 | RSASSA-PSS باستخدام SHA-384 | غير متماثل |
| PS512 | RSASSA-PSS باستخدام SHA-512 | غير متماثل |
| EdDSA | خوارزمية التوقيع الرقمي لمنحنى إدواردز | غير متماثل |
| none | بدون توقيع رقمي | - |