
XSRFProbe v3.0.0
أداة التدقيق والاستغلال الرئيسية لتزوير الطلبات عبر المواقع (CSRF).
XSRFProbe
أداة التدقيق والاستغلال الرائدة لطلب التزوير عبر المواقع (CSRF).
حول الأداة
XSRFProbe هي أداة متقدمة لتدقيق واستغلال طلب التزوير عبر المواقع (CSRF/XSRF). مزودة بمحرك زحف قوي والعديد من الفحوصات المنهجية، وهي قادرة على اكتشاف معظم حالات ثغرات CSRF والالتفافات المرتبطة بها، وتوليد أدلة إثبات مفاهيم قابلة للاستغلال مع كل ثغرة يتم العثور عليها. لمزيد من المعلومات حول كيفية عمل XSRFProbe، راجع داخلية XSRFProbe في الويكي.
ويكي XSRFProbe • بدء الاستخدام • الاستخدام العام • الاستخدام المتقدم • داخلية XSRFProbe • معرض الصور
بعض الميزات
- تشغيل مجموعة كاملة من الفحوصات المنهجية — مدعومة بمحرك مقارنة/قياس للاستجابات — قبل الإعلان عن أن نقطة النهاية معرضة للخطر.
- كشف والتلاعب النشط بالعديد من تطبيقات رمز الحماية من CSRF: تبديل طريقة الطلب، إزالة الرمز، قيم فارغة/مكررة، رموز غير مرتبطة بالجلسة، ملفات تعريف الارتباط المزدوجة الإرسال ورموز الرأس المخصص.
- اختبار التحقق من
RefererوOriginمع تجاوزات واقعية (إزالة الرأس، حيل التعبير النمطي/النطاق الفرعي،Origin: null) بالإضافة إلى تجاوزات تجاوز الطريقة وContent-Type. - تحليل حماية ملفات تعريف الارتباط
SameSite، مع تعداد اختياري للنطاقات الفرعية (عبر crt.sh) لاختبار تجاوز النطاق الشقيق. - العمل مع زاحف قوي يتميز بالزحف الحتمي والمحدود والمسح (قابل للتكوين عبر
--max-urlsو--max-depthو--crawl-timeout). - تكامل اختياري مع Firefox بدون واجهة (Selenium) للاختبارات المعتمدة على المتصفح والتحقق التلقائي من أدوات الإثبات (PoCs) المُنشأة.
- كشف دقيق لقوة الرمز و تحليل باستخدام فحوصات الإنتروبيا والتشفير.
- القدرة على توليد أدلة إثبات مفهوم CSRF عادية وخبيثة قابلة للاستغلال.
- دعم خارج الصندوق لقيم ملفات تعريف الارتباط المخصصة، والرؤوس العامة، وتقرير JSON — كل اكتشاف يحمل تصنيف خطورة وشرط قابلية للاستغلال.
- المستخدم يتحكم في كل شيء بخصوص ما يفعله الماسح.
- بيئة تفاعلية سهلة الاستخدام مع دعم كامل للتفاصيل وتسجيل مفصل للأخطاء والثغرات والرموز.
اختبارات الثغرات المنفذة:
كل فحص يقوم به XSRFProbe له معرّف فريد. يظهر المعرّف في إخراج وحدة التحكم (مثل [T6] VULNERABLE: ...) ويتم تخزينه كحقل test_id لكل اكتشاف في تقرير JSON (إلى جانب severity، وحيثما ينطبق، ملاحظة exploitability ضمن details)، بحيث يعود كل اكتشاف إلى الاختبار الدقيق الذي أنتجه.
| ID | الفئة | الفحص |
|---|---|---|
D1 | وجود رمز | عدم وجود رمز حماية من CSRF (تزوير طلب عام) |
D2 | وجود رمز | نموذج تسجيل الدخول يفتقر إلى رمز CSRF (CSRF تسجيل الدخول) |
T2 | التلاعب بالرمز | التحقق مرتبط بطريقة الطلب (تبديل GET ↔ POST) |
T3 | التلاعب بالرمز | يمكن حذف الرمز بالكامل |
T4 | التلاعب بالرمز | الرمز غير مرتبط بجلسة المستخدم (إعادة تشغيل عبر الجلسات) |
T5 | التلاعب بالرمز | الرمز مرتبط بملف تعريف ارتباط غير تابع للجلسة (مثل csrfKey) |
T6 | التلاعب بالرمز | ملف تعريف ارتباط مزدوج الإرسال ساذج (cookie == body، بدون ربط) |
T7 | التلاعب بالرمز | قبول قيمة رمز فارغة |
T8 | التلاعب بالرمز | يمكن حذف أو تزوير رمز الرأس المخصص |
M1 | الطريقة / نوع المحتوى | تجاوز طريقة HTTP عبر معامل _method |
M2 | الطريقة / نوع المحتوى | تجاوز طريقة HTTP عبر رأس X-HTTP-Method-Override |
M4 | الطريقة / نوع المحتوى | تجاوز التحقق عبر Content-Type بديل |
R0 | المُحيل | عدم التحقق من رأس Referer عند إرسال النموذج |
R1 | المُحيل | تجاوز التحقق من Referer بحذف الرأس |
R2a | المُحيل | تجاوز التعبير النمطي Referer — الهدف كنطاق فرعي للمهاجم |
R2b | المُحيل | تجاوز التعبير النمطي Referer — الهدف في سلسلة الاستعلام |
R2c | المُحيل | تجاوز التعبير النمطي Referer — الهدف في المسار |
O1 | الأصل | تجاوز التحقق من Origin باستخدام Origin: null |
O2 | الأصل | تجاوز التحقق من Origin بحيلة النطاق الفرعي |
O3 | الأصل | تجاوز التحقق من Origin بحذف الرأس |
S2 | SameSite (المتصفح) | تجاوز SameSite=Strict عبر أداة إعادة توجيه من جانب العميل |
S3 | SameSite (المتصفح) | تجاوز SameSite=Strict عبر XSS على نطاق فرعي شقيق |
S4 | SameSite (المتصفح) | تجاوز SameSite=Lax عبر تحديث ملف تعريف الارتباط / تدفق OAuth |
C1 | وضع ملفات تعريف الارتباط | تحليل سمة SameSite لملفات تعريف الارتباط (None/Lax/Strict) |
C2 | وضع ملفات تعريف الارتباط | عدم تعيين سمة SameSite على ملفات تعريف الارتباط |
E1 | قوة الرمز | الرمز يستخدم ترميز تجزئة ضعيف/منظم |
A1 | قوة الرمز | تحليل قابلية التنبؤ/التزوير للرمز بعد المسح |
تتطلب الفحوصات
S*تكامل المتصفح بدون واجهة اختياريًا (--browser). الفحوصاتT*/M*/R*/O*هي فحوصات على مستوى HTTP تخضع لمحرك مقارنة/قياس الاستجابات.
معرض الصور
دعنا نرى بعض السيناريوهات الواقعية لـ XSRFProbe أثناء العمل:
التثبيت والاستخدام
للحصول على معلومات الاستخدام الكاملة، يرجى إلقاء نظرة على صفحتي الويكي — الاستخدام العام و الاستخدام المتقدم.
التثبيت عبر PyPI:
يمكن تثبيت XSRFProbe بسهولة عبر أمر واحد:
pip install xsrfprobe
التثبيت يدويًا:
- بالنسبة للأساسيات، الخطوة الأولى هي تثبيت الأداة:
pip install .
- الآن، يمكن تشغيل الأداة عبر:
xsrfprobe --help
- الاختبارات المعتمدة على المتصفح (
--browser،--auto-validate-poc) تتطلب أيضًا توفر geckodriver فيPATHالخاص بك (أو الإشارة إليه عبر--geckodriver-path). - بعد اختبار XSRFProbe على موقع، يتم إنشاء مجلد مخرجات في دليل العمل الحالي باسم
xsrfprobe-output. ضمن هذا المجلد يمكنك عرض السجلات التفصيلية والمعلومات التي تم جمعها أثناء الفحص (مرر--jsonللحصول على تقرير قابل للقراءة آليًا).
الإصدار والترخيص
XSRFProbe حاليًا v3.0.0 والعمل مرخص بموجب رخصة GNU العامة (GPLv3).
تحذيرات
لا تستخدم هذه الأداة على موقع مباشر!
ذلك لأن هذه الأداة مصممة لأداء جميع أنواع إرسال النماذج تلقائيًا مما قد يخرب الموقع. في بعض الأحيان قد تفسد قاعدة البيانات وربما تتسبب في هجوم حجب الخدمة (DoS) على الموقع أيضًا.
اختبر على إعداد/موقع تجريبي قابل للتخلص منه!
إخلاء مسؤولية
يمكن اعتبار استخدام XSRFProbe لاختبار مواقع الويب دون اتفاق مسبق متبادل نشاطًا غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المؤلف أي مسؤولية ولا يتحمل أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
كلمات المؤلف
يعتمد هذا المشروع بالكامل على بحثي الخاص وتجاربي الخاصة مع تطبيقات الويب حول هجمات طلب التزوير عبر المواقع. يمكنك محاولة مراجعة الكود المصدري لمساعدتك على فهم كيفية بناء هذه المجموعة. نرحب بشدة بطلبات السحب المفيدة، والأفكار والمشكلات. إذا كنت ترغب في رؤية كيفية تطوير XSRFProbe، تحقق من لوحة التطوير.
صُنع بحب ♡ بواسطة @0xInfection