
أداة سطر أوامر معيارية لتحليل وإنشاء ومعالجة رموز JWT للمخترقين
أداة معيارية لسطر الأوامر لتحليل وإنشاء ومعالجة رموز JSON Web Token (JWT) لأغراض اختبار الأمان.
قم بتثبيتها بنفسك كالتالي:
$ gem install jwtear
888888 888 888 88888888888
"88b 888 o 888 888
888 888 d8b 888 888
888 888 d888b 888 888 .d88b. 8888b. 888d888
888 888d88888b888 888 d8P Y8b "88b 888P"
888 88888P Y88888 888 88888888 .d888888 888
88P 8888P Y8888 888 Y8b. 888 888 888
888 888P Y888 888 "Y8888 "Y888888 888
.d88P v1.0.0
.d88P"
888P"
الاسم
jwtear - تحليل وإنشاء ومعالجة رموز JWT.
الملخص
jwtear [global options] command [command options] [arguments...]
الخيارات العامة
-v, --version - التحقق من الإصدار الحالي والأحدث
-h, --help - عرض رسالة المساعدة هذه
الأوامر
help - عرض قائمة الأوامر أو مساعدة لأمر واحد
bruteforce, bfs - إضافة لاختراق توقيع الرمز بالقوة العمياء دون اتصال.
jws, s - توليد رمز JWT قائم على التوقيع (JWS).
jwe, e - توليد رمز JWT قائم على التشفير (JWE).
parse - تحليل رمز JWT (يقبل تنسيقات JWS و JWE).
wiki, w - ويكي JWT للهاكرز.
-h COMMAND$jwtear -h jws
الاسم
jws - توليد رمز JWT قائم على التوقيع (JWS).
الملخص
jwtear [global options] jws [command options]
الوصف
توليد رموز JWS و JWE.
خيارات الأمر
-h, --header=JSON - رأس JWT (تنسيق JSON). مثال: {"typ":"JWT","alg":"HS256"}. قم بتشغيل 'jwtear gen -l' للخوارزميات المدعومة. (مطلوب، الافتراضي: لا شيء)
-p, --payload=JSON - حمولة JWT (تنسيق JSON). مثال: {"login":"admin"} (مطلوب، الافتراضي: لا شيء)
-k, --key=PASSWORD|PUB_KEY_FILE - المفتاح كسلسلة كلمة مرور أو ملف مفتاح عام. مثال: P@ssw0rd | مثال: public_key.pem (الافتراضي: لا شيء)
الإضافات معرفة كأوامر فرعية. لكل أمر فرعي وسيط أو أكثر و/أو مفاتيح.
$ jwtear parse -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.J8SS8VKlI2yV47C4BtfYukWPx_2welF34Mz7l-MNmkE
$ jwtear jws -h '{"alg":"HS256","typ":"JWT"}' -p '{"user":"admin"}' -k p@ss0rd123
$ jwtear jwe -header '{"enc":"A192GCM","typ":"JWT"}' --payload '{"user":"admin"}' --key public.pem
$ jwtear bruteforce -v -t eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJ1c2VyIjpudWxsfQ.Tr0VvdP6rVBGBGuI_luxGCOaz6BbhC6IxRTlKOW8UjM -l ~/tmp/pass.list
لإضافة إضافة جديدة، أنشئ ملف روبي جديد تحت مجلد plugins بالهيكل التالي
module JWTear
module CLI
extend GLI::App
extend JWTear::Helpers::Extensions::Print
extend JWTear::Helpers::Utils
desc "وصف قصير للإضافة"
long_desc "وصف طويل للإضافة"
command [:template, :pt] do |c|
c.action do |global, options, arguments|
print_h1 "قالب الإضافة"
print_good "مرحبًا، أنا قالب."
template = TemplatePlugin.new
end
end
end
module Plugin
class TemplatePlugin
include JWTear::Helpers::Extensions::Print
include JWTear::Helpers::Utils
def initialize
check_dependencies
# ..الكود...
end
# ..الكود...
end
end
end
بدلاً من تضمين جميع التبعيات لكل إضافة في jwtear، يمكنك إضافة هذه التبعيات كـ hash إلى دالة check_dependencies التي ستقوم باستدعاء المكتبة ورمي خطأ لطيف للمستخدم لتثبيت أي جوهرات (gems) مفقودة.
مفتاح hash هو اسم الجوهرة للتثبيت، قيمة hash هي سلسلة require
deps = {'async-io' => 'async/ip'}
check_dependencies(deps)
بمجرد أن يقوم المستخدم بتثبيت التبعيات المفقودة، ستقوم check_dependencies باستدعائها بمجرد تهيئة class الإضافة.
تقارير الأخطاء وطلبات السحب مرحب بها على GitHub على https://github.com/[USERNAME]/jwtear.
git checkout -b my-new-feature)git commit -am 'Add some feature')git push origin my-new-feature)الجوهرة (gem) متاحة كمصدر مفتوح بموجب شروط MIT License.