- بواسطة x32x01 ||
ثغرة Cross-Site Request Forgery (CSRF) واحدة من أخطر الثغرات اللي ممكن تخلي المهاجم ينفّذ عمليات حسّاسة بدل المستخدم الحقيقي، زي تغيير الباسورد، حذف ملفات، إضافة مستخدم جديد… وكل ده بدون ما الضحية يعرف. 
الفكرة ببساطة إن الضحية بيزور رابط خبيث، والرابط بيرسل Request للموقع المصاب بدل المستخدم وبدون Token صحيح.
في البوست ده هنشرح:
ثغرة CSRF بتجبر المستخدم يعمل فعل هو مش عايزه… زي تغيير الإيميل أو الباسورد بدون ما يحس.
الثغرة بتعتمد على الهندسة الاجتماعية، لأن المهاجم بيبعت للضحية رابط… الرابط ده بيحتوي على صفحة HTML فيها كود جاهز لتنفيذ طلب معين داخل الموقع المصاب. أول ما الضحية يفتح الرابط – الطلب بيتنفّذ فورًا.
بيئة الموقع ممكن تستقبل طلبات بدون التحقق من CSRF Token وبالتالي يحصل اختراق.
أشهر الأسباب:
المهاجم يقدر يبعت Request بدون Token لأنه أساسًا مش معاه Token الخاص بالضحية (زي الـ Cookies).
وده أسوأ سيناريو… الموقع سايب الدنيا سايبة.
لو التوكن نفس القيمة في كل Request… يبقى سهل جدًا تخمينه.
أي قيمة صغيرة وسهلة التخمين تعتبر خطر كبير.
هندخل دلوقتي على سيناريو عملي باستخدام BurpSuite:
لما الضحية يغيّر الباسورد في الموقع، بنشوف الـ Request في BurpSuite.
لو لقينا إن الموقع بيقبل تغيير الباسورد من غير CSRF Token… يبقى الثغرة موجودة بنسبة 100%.
المهاجم يحضر صفحة HTML فيها Form بيبعت Request تغيير الباسورد.
يبعتها للضحية… أول ما يفتحها ويحصل Submit → الباسورد بيتغيّر.
وده يؤدي لدرجة خطيرة جدًا تُسمى:
يعني سيطرة كاملة على حساب الضحية.
أداة قوية وسهلة بتعمل لك Form جاهز لتنفيذ الهجوم.
رابط الأداة:
ادخل للمجلد وافتح ملف index.html في المتصفح.
انسخ الـ Request كامل من BurpSuite وحطه في خانة REQUEST.
اضغط Generate PoC Form.
غيّر قيمة passwd للقيمة اللي عاوزها.
احفظ الملف بصيغة HTML.
أول ما الضحية يضغط Submit → الباسورد يتغير فورًا…
والمهاجم يدخل على الحساب بسهولة.
الكود يتم توليده تلقائيًا من الأداة… ويتم حفظه كصفحة HTML جاهزة للهجوم.
الفكرة ببساطة إن الضحية بيزور رابط خبيث، والرابط بيرسل Request للموقع المصاب بدل المستخدم وبدون Token صحيح.
في البوست ده هنشرح:
- يعني إيه CSRF؟
- الثغرة بتحصل ليه؟
- إزاي نكتشفها؟
- إزاي نستغلها باستخدام أداة CSRF-POC-Generator

يعني إيه ثغرة CSRF؟
ثغرة CSRF بتجبر المستخدم يعمل فعل هو مش عايزه… زي تغيير الإيميل أو الباسورد بدون ما يحس.الثغرة بتعتمد على الهندسة الاجتماعية، لأن المهاجم بيبعت للضحية رابط… الرابط ده بيحتوي على صفحة HTML فيها كود جاهز لتنفيذ طلب معين داخل الموقع المصاب. أول ما الضحية يفتح الرابط – الطلب بيتنفّذ فورًا.
ليه بتحصل ثغرة CSRF؟
بيئة الموقع ممكن تستقبل طلبات بدون التحقق من CSRF Token وبالتالي يحصل اختراق.أشهر الأسباب:
الموقع مش بيفحص صلاحية الـ Token
المهاجم يقدر يبعت Request بدون Token لأنه أساسًا مش معاه Token الخاص بالضحية (زي الـ Cookies).
عدم وجود Token في الـ Request
وده أسوأ سيناريو… الموقع سايب الدنيا سايبة.
Token ثابت ومش بيتغير
لو التوكن نفس القيمة في كل Request… يبقى سهل جدًا تخمينه.
Token صغير وضعيف
أي قيمة صغيرة وسهلة التخمين تعتبر خطر كبير.
خطوات اكتشاف ثغرة CSRF في موقع XVWA
هندخل دلوقتي على سيناريو عملي باستخدام BurpSuite:
1. تحليل الطلب الطبيعي (Normal Request)
لما الضحية يغيّر الباسورد في الموقع، بنشوف الـ Request في BurpSuite.لو لقينا إن الموقع بيقبل تغيير الباسورد من غير CSRF Token… يبقى الثغرة موجودة بنسبة 100%.
2. المهاجم يستغل الثغرة
المهاجم يحضر صفحة HTML فيها Form بيبعت Request تغيير الباسورد.يبعتها للضحية… أول ما يفتحها ويحصل Submit → الباسورد بيتغيّر.
وده يؤدي لدرجة خطيرة جدًا تُسمى:
CSRF To Account TakeOver
يعني سيطرة كاملة على حساب الضحية.
استغلال الثغرة باستخدام CSRF-POC-Generator
أداة قوية وسهلة بتعمل لك Form جاهز لتنفيذ الهجوم.رابط الأداة:
Code:
https://github.com/merttasci/csrf-poc-generator
1. تحميل الأداة
Code:
git clone https://github.com/merttasci/csrf-poc-generator.git
2. فتح الأداة
ادخل للمجلد وافتح ملف index.html في المتصفح.
3. وضع الـ Request
انسخ الـ Request كامل من BurpSuite وحطه في خانة REQUEST.اضغط Generate PoC Form.
4. التعديل على الـ Form
غيّر قيمة passwd للقيمة اللي عاوزها.احفظ الملف بصيغة HTML.
5. إرسال الرابط للضحية
أول ما الضحية يضغط Submit → الباسورد يتغير فورًا…والمهاجم يدخل على الحساب بسهولة.
الكود المستخدم (Source Code)
الكود يتم توليده تلقائيًا من الأداة… ويتم حفظه كصفحة HTML جاهزة للهجوم. التعديل الأخير: