
أداة التدقيق والاستغلال الرئيسية لتزوير الطلبات عبر المواقع (CSRF).
XSRFProbe هي أداة متقدمة لتدقيق واستغلال طلب التزوير عبر المواقع (CSRF/XSRF). مزودة بمحرك زحف قوي والعديد من الفحوصات المنهجية، وهي قادرة على اكتشاف معظم حالات ثغرات CSRF والالتفافات المرتبطة بها، وتوليد أدلة إثبات مفاهيم قابلة للاستغلال مع كل ثغرة يتم العثور عليها. لمزيد من المعلومات حول كيفية عمل XSRFProbe، راجع داخلية XSRFProbe في الويكي.
ويكي XSRFProbe • بدء الاستخدام • الاستخدام العام • الاستخدام المتقدم • داخلية XSRFProbe • معرض الصور
Referer و Origin مع تجاوزات واقعية (إزالة الرأس، حيل التعبير النمطي/النطاق الفرعي، Origin: null) بالإضافة إلى تجاوزات تجاوز الطريقة و Content-Type.SameSite، مع تعداد اختياري للنطاقات الفرعية (عبر crt.sh) لاختبار تجاوز النطاق الشقيق.--max-urls و --max-depth و --crawl-timeout).كل فحص يقوم به XSRFProbe له معرّف فريد. يظهر المعرّف في إخراج وحدة التحكم (مثل [T6] VULNERABLE: ...) ويتم تخزينه كحقل test_id لكل اكتشاف في تقرير JSON (إلى جانب severity، وحيثما ينطبق، ملاحظة exploitability ضمن details)، بحيث يعود كل اكتشاف إلى الاختبار الدقيق الذي أنتجه.
تتطلب الفحوصات
S*تكامل المتصفح بدون واجهة اختياريًا (--browser). الفحوصاتT*/M*/R*/O*هي فحوصات على مستوى HTTP تخضع لمحرك مقارنة/قياس الاستجابات.
دعنا نرى بعض السيناريوهات الواقعية لـ XSRFProbe أثناء العمل:
للحصول على معلومات الاستخدام الكاملة، يرجى إلقاء نظرة على صفحتي الويكي — الاستخدام العام و الاستخدام المتقدم.
يمكن تثبيت XSRFProbe بسهولة عبر أمر واحد:
pip install xsrfprobe
pip install .
xsrfprobe --help
--browser، --auto-validate-poc) تتطلب أيضًا توفر geckodriver في PATH الخاص بك (أو الإشارة إليه عبر --geckodriver-path).xsrfprobe-output. ضمن هذا المجلد يمكنك عرض السجلات التفصيلية والمعلومات التي تم جمعها أثناء الفحص (مرر --json للحصول على تقرير قابل للقراءة آليًا).XSRFProbe حاليًا v3.0.0 والعمل مرخص بموجب رخصة GNU العامة (GPLv3).
لا تستخدم هذه الأداة على موقع مباشر!
ذلك لأن هذه الأداة مصممة لأداء جميع أنواع إرسال النماذج تلقائيًا مما قد يخرب الموقع. في بعض الأحيان قد تفسد قاعدة البيانات وربما تتسبب في هجوم حجب الخدمة (DoS) على الموقع أيضًا.
اختبر على إعداد/موقع تجريبي قابل للتخلص منه!
يمكن اعتبار استخدام XSRFProbe لاختبار مواقع الويب دون اتفاق مسبق متبادل نشاطًا غير قانوني. تقع على عاتق المستخدم النهائي مسؤولية الامتثال لجميع القوانين المحلية والولائية والفيدرالية المعمول بها. لا يتحمل المؤلف أي مسؤولية ولا يتحمل أي مسؤولية عن أي إساءة استخدام أو ضرر ناتج عن هذا البرنامج.
يعتمد هذا المشروع بالكامل على بحثي الخاص وتجاربي الخاصة مع تطبيقات الويب حول هجمات طلب التزوير عبر المواقع. يمكنك محاولة مراجعة الكود المصدري لمساعدتك على فهم كيفية بناء هذه المجموعة. نرحب بشدة بطلبات السحب المفيدة، والأفكار والمشكلات. إذا كنت ترغب في رؤية كيفية تطوير XSRFProbe، تحقق من لوحة التطوير.
صُنع بحب ♡ بواسطة @0xInfection
| 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 | قوة الرمز | تحليل قابلية التنبؤ/التزوير للرمز بعد المسح |