Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
jwt_tool — :snake: مجموعة أدوات لاختبار وتعديل وكسر JSON Web Tokens | Kitploit
أدوات/GitHubGitHub/ticarpi/jwt_tool
ماسحات الثغرات الأمنيةأمن الويبالاختبار العشوائيالتشفيرCTFاختبار الاختراق
GitHubticarpi/jwt_tool

jwt_tool

🐍 مجموعة أدوات لاختبار وتعديل وكسر JSON Web Tokens

عرض المستودع
6.7k812منذ سنة واحدةتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

أدوات JSON Web Token Toolkit v2

jwt_tool.py هي مجموعة أدوات للتحقق من JWTs وتزويرها وفحصها والتلاعب بها (JSON Web Tokens).

jwt_tool version python version

logo

تشمل وظائفه:

  • التحقق من صلاحية الرمز المميز (token)
  • اختبار الثغرات المعروفة:
    • (CVE-2015-2951) ثغرة تجاوز التوقيع alg=none
    • (CVE-2016-10555) ثغرة عدم تطابق المفتاح العام RS/HS256
    • (CVE-2018-0114) ثغرة حقن المفتاح
    • (CVE-2019-20933/CVE-2020-28637) ثغرة كلمة المرور الفارغة
    • (CVE-2020-28042) ثغرة التوقيع الفارغ
    • (CVE-2022-21449) ثغرة التوقيع النفسي (Psychic Signature) ECDSA
  • فحص الأخطاء في الإعدادات أو نقاط الضعف المعروفة
  • اختبار قيم المطالبات (claims) عبر Fuzzing لإثارة سلوكيات غير متوقعة
  • اختبار صحة ملف سرّي/مفتاح/مفتاح عام/مفتاح JWKS
  • تحديد المفاتيح الضعيفة عبر هجوم القاموس عالي السرعة
  • تزوير محتويات ترويسة الرمز وحمولته وإنشاء توقيع جديد باستخدام المفتاح أو عبر طريقة هجوم أخرى
  • التلاعب بالطوابع الزمنية
  • توليد مفاتيح RSA و ECDSA وإعادة بنائها (من ملفات JWKS)
  • تحديد معدل الطلبات لجميع الهجمات
  • ...والمزيد الكثير!

الجمهور المستهدف

أُعدّت هذه الأداة لـ مختبري الاختراق الذين يحتاجون إلى التحقق من قوة الرموز المستخدمة وقابليتها للهجمات المعروفة. تتوفر مجموعة من خيارات التلاعب والتوقيع والتحقق للمساعدة في التعمق في نقاط الضعف المحتملة الموجودة في بعض مكتبات JWT.
كما أنها ناجحة مع متحدّي CTF - إذ تبدو مسابقات CTF مهتمة بـ JWTs في الوقت الحالي.
وقد تكون مفيدة أيضًا لـ المطوّرين الذين يستخدمون JWTs في مشاريعهم، ويرغبون في اختبار الاستقرار والثغرات المعروفة عند استخدام رموز مزوّرة.


المتطلبات

هذه الأداة مكتوبة بلغة Python 3 (الإصدار 3.6+) باستخدام المكتبات الشائعة، ومع ذلك تتطلب بعض الوظائف التشفيرية (وكذلك إضفاء المظهر والقراءة العامة) تثبيت عدد قليل من مكتبات Python الشائعة.
(يتوفر إصدار أقدم من هذه الأداة بلغة Python 2.x على الفرع القديم لمن يحتاج إليه، على الرغم من أنه لن يعد مدعومًا أو محدّثًا)


التثبيت

Docker

الاستخدام المفضّل لـ jwt_tool هو مع صورة jwt_tool الرسمية المستضافة على Dockerhub
الأمر الأساسي لتشغيل هذه الأداة هو كالتالي:
الأمر الأساسي لتشغيل jwt_tool:
docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

باستخدام الأمر أعلاه يمكنك إضافة أي وسائط أخرى كالمعتاد.
لاحظ أنه سيتم ربط الملفات المحلية في دليل العمل الحالي بمجلد /tmp داخل حاوية Docker، لذا يمكنك استخدامها عبر هذا المسار المطلق في وسائطك.
أي
/tmp/localfile.txt

التثبيت اليدوي

التثبيت يتم ببساطة عبر تنزيل ملف jwt_tool.py (أو استنساخ المستودع باستخدام git clone).
(قم أيضًا بتطبيق chmod على الملف إذا أردت إضافته إلى $PATH واستدعاءه من أي مكان.)

$ git clone https://github.com/ticarpi/jwt_tool
$ python3 -m pip install -r requirements.txt

عند التشغيل الأول ستقوم الأداة بإنشاء ملف إعدادات، وبعض الملفات المساعدة، وملف سجل، ومجموعة من المفاتيح العامة والخاصة بصيغ متعددة.

إعدادات مخصصة

  • للاستفادة القصوى من خيارات الفحص، يُنصح بشدة بنسخ ملف JWKS المولّد إلى مكان يمكن الوصول إليه عن بُعد عبر URL. يجب بعد ذلك تخزين هذا العنوان في jwtconf.ini كقيمة "jwkloc".
  • لالتقاط تفاعلات الخدمات الخارجية - مثل استعلامات DNS وطلبات HTTP - ضع عنوانك الفريد لـ Burp Collaborator (أو أدوات بديلة أخرى مثل RequestBin) في ملف الإعدادات كقيمة "httplistener".
    راجع الخيارات الأخرى في ملف الإعدادات لتخصيص تجربتك.

مشكلة الألوان في Windows

لإصلاح الألوان المعطوبة في Windows cmd/Powershell: قم بإلغاء تعليق السطرين التاليين في jwt_tool.py (أزل "# " من بداية كل سطر)
ستحتاج أيضًا إلى تثبيت colorama: python3 -m pip install colorama

root@kitploit:~
# import colorama
# colorama.init()

الاستخدام

يجب أن تكون الوسيطة الأولى هي JWT نفسه (إلا إذا تم توفيره في ترويسة أو قيمة كوكيز). عدم توفير وسائط إضافية سيعرض لك قيم الرمز المفكوكة للمراجعة.
$ python3 jwt_tool.py <JWT>
أو الأمر الأساسي لـ Docker:
$ docker run -it --network "host" --rm -v "${PWD}:/tmp" -v "${HOME}/.jwt_tool:/root/.jwt_tool" ticarpi/jwt_tool

ستتحقق الأداة من صحة الرمز وتعرض قيم الترويسة والحمولة.

وسائط إضافية

الوسائط الإضافية العديدة ستنقلك مباشرة إلى الوظيفة المناسبة وتعيد لك رمزًا جاهزًا للاستخدام في اختباراتك.
على سبيل المثال، لتعديل الرمز الحالي شغّل الأمر التالي:
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -T

تتطلب العديد من الخيارات قيمًا إضافية لضبط الإعدادات.
على سبيل المثال، لتشغيل نوع معيّن من الاستغلال تحتاج إلى اختيار خيار الاستغلال (eXploit) (-X) وتحديد الثغرة (هنا باستخدام "a" لثغرة alg:none):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -X a

معاملات إضافية

بعض الخيارات مثل التحقق من الرموز تتطلب توفير معاملات/ملفات إضافية (هنا توفير المفتاح العام بصيغة PEM):
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw -V -pk public.pem

إرسال الرموز إلى تطبيق ويب

تسمح جميع الأوضاع الآن بإرسال الرمز مباشرة إلى تطبيق.
تحتاج إلى تحديد:

  • عنوان URL الهدف (-t)
  • بدلاً من عنوان URL الهدف، يمكنك وضع طلب HTTP الخاص بك في ملف والإشارة إليه باستخدام -r. هذا يملأ تلقائيًا الترويسات والكوكيز وبيانات POST، لذا فهو الخيار الموصى به
  • ترويسة طلب (-rh) أو كوكيز طلب (-rc) يحتاجها التطبيق (يجب أن يحتوي واحد منها على الأقل على الرمز)
  • (اختياري) أي بيانات POST (عندما يكون الطلب من نوع POST)
  • (اختياري) أي خيارات jwt_tool إضافية، مثل الأوضاع أو خيارات التلاعب/الحقن
  • (اختياري) قيمة كيناري (-cv) - قيمة نصية تتوقع رؤيتها عند الاستخدام الناجح للرمز (مثل "Welcome, ticarpi")
    قد يبدو مثال على الطلب كالتالي (باستخدام وضع الفحص لاستخراج الأخطاء القسرية):
    $ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -rh "Origin: null" -cv "Welcome" -M er

يتم عرض استجابات مختلفة من الطلب:

  • رمز الاستجابة
  • حجم الاستجابة
  • معرف تتبّع فريد للطلب (للاستخدام مع التسجيل)
  • الوضع/الخيارات المستخدمة

سير العمل الشائع

فيما يلي استعراض سريع لتقييم أساسي لتنفيذ JWT. إذا لم تنجح هذه الخيارات فتعمّق في الأوضاع والخيارات الأخرى بحثًا عن ثغرات جديدة (أو zero-days!).

الاستطلاع:

اقرأ قيمة الرمز لتكوّن فكرة عن المطالبات/القيم المتوقعة في التطبيق:
$ python3 jwt_tool.py eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.aqNCvShlNT9jBFTPBpHDbt2gBB1MyHiisSDdp8SQvgw

الفحص:

شغّل فحص Playbook باستخدام الرمز المقدم مباشرةً ضد التطبيق للبحث عن أخطاء الإعدادات الشائعة:
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -M pb

الاستغلال:

إذا تم العثور على أي ثغرات ناجحة، غيّر أي مطالبات ذات صلة لمحاولة استغلالها (هنا باستخدام استغلال Inject JWKS وحقن اسم مستخدم جديد):
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -X i -I -pc name -pv admin

التخمين الموجّه (Fuzzing):

تعمّق أكثر عبر اختبار قيم ومطالبات غير متوقعة لتحديد سلوكيات التطبيق غير المتوقعة، أو شغّل هجمات على منطق البرمجة أو معالجة الرموز:
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -I -hc kid -hv custom_sqli_vectors.txt

المراجعة:

راجع أي استغلال ناجح عبر الاستعلام من السجلات لقراءة مزيد من البيانات حول الطلب و:
$ python3 jwt_tool.py -t https://www.ticarpi.com/ -rc "jwt=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsb2dpbiI6InRpY2FycGkifQ.bsSwqj2c2uI9n7-ajmi3ixVGhPUiY7jO9SUn9dm15Po;anothercookie=test" -X i -I -pc name -pv admin


المساعدة

للحصول على قائمة الخيارات استدعِ دالة الاستخدام: تتطلب بعض الخيارات مثل التحقق من الرموز توفير معاملات/ملفات إضافية:
$ python3 jwt_tool.py -h

يمكن العثور على دليل مستخدم أكثر تفصيلاً في صفحة الويكي.


JWT Attack Playbook - محتوى جديد في الويكي!

playbook_logo

توجّه إلى JWT Attack Playbook للحصول على شرح مفصّل عن ماهية JWTs ووظيفتها، وسير عمل كامل لكيفية اختبارها بدقة بحثًا عن الثغرات ونقاط الضعف الشائعة وأخطاء البرمجة غير المقصودة.


نصائح

تعبير Regex للعثور على JWTs في بحث Burp
(تأكد من تحديد خياري 'Case sensitive' و'Regex')
[= ]eyJ[A-Za-z0-9_-]*\.[A-Za-z0-9._-]* - نسخة JWT الآمنة لعناوين URL
[= ]eyJ[A-Za-z0-9_\/+-]*\.[A-Za-z0-9._\/+-]* - جميع إصدارات JWT (احتمالية أعلى للنتائج الإيجابية الخاطئة)


قراءات إضافية

  • JWT Attack Playbook (https://github.com/ticarpi/jwt_tool/wiki) - لمنهجية اختبار JWT شاملة

  • مقدمة رائعة إلى JWTs - https://jwt.io/introduction/

  • جاء الكثير من الإلهام الأولي لهذه الأداة من الثغرات التي اكتشفها Tim McLean.
    اطلع على مدونته حول نقاط ضعف JWT هنا: https://auth0.com/blog/critical-vulnerabilities-in-json-web-token-libraries/

  • مجموعة كبيرة من التمارين لاختبار ثغرات JWT مقدمة من Pentesterlab (https://www.pentesterlab.com). أنصح بشدة بالاشتراك في PRO إذا كنت مهتمًا باختبار اختراق تطبيقات الويب.

    يرجى الملاحظة: ستحل هذه المجموعة معظم تمارين Pentesterlab JWT في بضع ثوانٍ عند استخدامها بشكل صحيح، ومع ذلك أشجعك بشدة على حل هذه التمارين بنفسك، لمعرفة البنية ونقاط الضعف. ففي النهاية، الأمر كله يتعلق بالتعلّم...

تنزيل الأداة