
SignSaboteur هي إضافة لـ Burp Suite لتحرير، توقيع، والتحقق من مختلف رموز الويب الموقعة.
SignSaboteur هي إضافة لـ Burp Suite لتعديل وتوقيع والتحقق ومهاجمة الرموز الموقعة. وهي تدعم أنواعاً مختلفة من الرموز: Django TimestampSigner، ItsDangerous Signer، وسيط cookie-session الخاص بـ Express، OAuth2 Proxy، ملفات تعريف الارتباط الموقعة في Tornado، ملفات تعريف الارتباط الموقعة في Ruby Rails، ملفات تعريف الارتباط المشفرة في Ruby Rails، Nimbus JOSE + JWT وسلسلة موقعة غير معروفة.
يمكنك العثور على مزيد من المعلومات حول هذه الإضافة على صفحة مدونة أبحاث Portswigger - تقديم SignSaboteur: تزوير رموز الويب الموقعة بسهولة.
توفر الإضافة كشفاً تلقائياً وتحريراً مضمّناً للرموز داخل طلبات/استجابات HTTP ورسائل WebSocket، وتوقيع الرموز وأتمتة هجمات القوة العمياء ضد تطبيقات الرموز الموقعة.
استُلهمت الفكرة من إضافة JWT Token الخاصة بـ Fraser Winterborn و Dolph Flynn. يمكن العثور على الكود المصدري الأصلي هنا وهنا.
./gradlew jarsign-saboteur-1.0.6.jar داخل الدليل build/libsExtensions، التبويب الفرعي Installed، النقر على Add وتحميل
ملف JAR
يتيح عرض قائمة الكلمات استيراد ملفات قوائم الأسرار والأملاح. تحتوي الإضافة على قوائم معجمية مبنية مسبقاً. معظم
الأسرار مأخوذة من jwt-secrets. كخيار،
يمكن استخدام Flask-Unsign-Wordlist. تدعم الإضافة تنسيق سلسلة JSON
للأحرف الخاصة، لاستخدام ذلك ضع السلسلة السرية بين علامتي اقتباس ".
يدعم عرض المحرر عدداً من الرموز الموقعة: Django و Dangerous و Flask و Express و OAuth2 و Tornado. يسمح
بتعديل الرموز الموقعة في عرض طلب/استجابة HTTP في Burp Suite ضمن أدوات Proxy و History و Repeater.
يمكن استخدام علامة التبويب Dangerous لكل من رموز Flask و Django، حيث يتم الاختيار بناءً على ما إذا تم اكتشاف رمز Dangerous
أو Django.
يمكن استخدام علامة التبويب Unknown لاستخدام القوة العمياء على السلاسل الموقعة غير المعروفة. يعمل وضع التخمين فقط مع هجمات القوة العمياء المتوازنة و العميقة. وهو يدعم تقنيات اشتقاق رسالة مختلفة، بما في ذلك:
يتم توفير محرر نصوص JSON لتحرير كل مكون يحتوي على محتوى JSON:
يتم توفير محرر للطوابع الزمنية لتحرير كل مكون يحتوي عليه:
يتم توفير محرر سداسي عشري لجميع الرموز الموقعة، باستثناء تواقيع Express. ملاحظة: علامة التبويب Express لا تدعم التحديث التلقائي للتوقيع بعد. يُرجى نسخه يدوياً إلى ملف تعريف الارتباط الخاص بالتوقيع المقابل.
يقدم التوقيع حوار توقيع يمكن استخدامه لتحديث التوقيع عن طريق توقيع الرمز باستخدام مفتاح من
عرض المفاتيح الذي لديه القدرة على التوقيع
ستحاول القوة العمياء العثور على المفتاح السري الذي تم استخدامه لإنشاء التوقيع. إذا تم العثور على مفتاح سري، فسيتم
عرض حوار.
يقوم خيار القوة العمياء بتنفيذ ثلاثة أنواع من الهجمات على تواقيع الرموز الموقعة:
يقوم خيار الهجوم بتنفيذ ثمانية هجمات تفويض معروفة ضد الرموز الموقعة:
هذه موصوفة بمزيد من التفاصيل أدناه.
يمكن استخدام كل هذه الهجمات معاً. يرجى مراعاة أن الإضافة لا تدعم تعديل حمولة الرمز في وضع الهجوم، لذلك سيتم استبدال حمولتك بأخرى جديدة.
عادةً ما يستخدم تنسيق رمز OpenID connect ID من قبل مكتبات التوقيع لتخزين معلومات حول المستخدم المصادق عليه.
ستقوم الإضافة بإنشاء عنصر نائب لرمز مستخدم admin.
نفس هجوم مطالبات المستخدم ولكن سيتم وضعها في سمة JSON user.
طريقة شائعة أخرى لتخزين تفاصيل المستخدم هي سمة JSON username و password. ستقوم الإضافة بإنشاء
عنصر نائب لمستخدم admin.
إذا تم تخزين معلومات جلسة المستخدم المصادق عليها في Flask على جانب العميل، فيجب أن تتضمن سمات JSON id و _id و user_id
أو _user_id. ستقوم الإضافة بإنشاء جلسة للمستخدم الأول، وعادة ما يكون admin.
يستخدم إطار عمل Express سمة JSON passport لتخزين تفاصيل المستخدم. ستقوم الإضافة بإنشاء عنصر نائب لمستخدم admin.
قد تستخدم بعض الأطر غلاف account لتخزين معلومات حول المستخدم المصادق عليه. للاستغلال، قد يكون من
اللازم استخدام مطالبات المصادقة أيضاً.
تنفذ مطالبات المصادقة 12 علامة تفويض معروفة.
يقوم خيار User access_token بإنشاء رمز JWT OpenID connect ID موقع بنفس المفتاح ونفس خوارزمية التجزئة
دون إجراء أي اشتقاق مفتاح.