العديد يتسائل عن فكرة ثغرة Clickjacking واليوم سنشرح هذه الثغرة بالتفصيل مع الحل بعدة طرق ولكل سيرفر وتطبيق على حدا ، كما تعرف الثغرة بمُصطلح متداول وهو” سرق الضغطات ” هو هجوم يقوم به المهاجم باخفاء صفحة من موقع معين في صفحة اخرى وهمية حيث يريد ان يقوم الضحية بالضغط في مكان ما في الصفحة ليقوم بتنشيط فعالية او الموافقة على طلبات من الموقع للدخول الى موارد او غيرها كOAuth مثلاً .

Click-Jacking2

الشرح  

لو فرضنا على سبيل المثال (example.isecur1ty.org) هو موقع عادي كل ما نحتاح اليه لكشف الثغرة هو الدخول للصفحة المطلوبة . بطلب GET

الان نراجع الرد من السيرفر :

ونلاحظ رد السيرفر لهذه الصفحة :

 

لا يوجد في هذه الX-Frame-Options ولا يوجد قيمة له لذلك سيعرض المتصفح هذه الصفحة من اي frame أو Iframe او object . في صفحة اخرى في موقع اخر .

ممكن ان يكون الموقع مصاب بثغرة Clickjacking   ناتي الان لنفحص الصفحة

لو فرضاً ان example.isecur1ty.org موقع حفظ الصور لديك صور مخفية وهناك خاصية يمكن من خلالها ان تسمح للتطبيقات بالدخول للصور المخفية بموافقتك .

 

الصفحة ستكون

 

c1

 

 

الان لنجرب الثغرة ونقوم بعمل صفحة html تحتوي على iframe في جهازنا والiframe يؤدي الى example.isecur1ty.org/oauth.page

<iframe src=”http://example.isecur1ty.org/oauth.page?id=123&app=hackerapp”>

c1

تم الحصول على الصفحة في الiframe في صفحة اخرى وبذلك فان الموقع مصاب بثغرة clickjacking في هذه الصفحة .

 

الان سيتم اخفاء الايفريم ببعض خدع CSS سيتم اخفاء الايفريم في صفحة اخرى غير تابعة للموقع نفسه .

 

2-11-2016 3-24-01 PM

 

الان ان صنعت هذه الصفحة كمثال بسيط وضعت مسابقة خدعة ووضعت زر اضغط هنا لكي اسرق ضغطة ويضغط فوق زر allow للسماح بتطبيق الهكر الخاص بي بسرقة الصور الخاصة به .

 

الان ساخفي الايفريم تماماً

 

 

2-11-2016 3-29-11 PM

 

الان سيكون من السهل خداع الضحية وبمجرد ان يضغط على زر اضغط الان الذي هو معطل اصلا فهو يقوم بضغط زر allow في موقع example.isecur1ty.org بدون علمه ويسمح لتطبيقي الخبيث بالحصول على الصور .

 

الأصلاح 

يوجد العديد من الطرق لاصلح وتفادي الثغرة منها :

  • وضع X-Frame-Options في السيرفر لكل الصفحات او للصفحات المهمة .
  • برمجة جافا سكربت في الصفحات يقوم بمراجعة الصفحات في حالة عدم امكانية التحكم بالسيرفر او الصفحة .

 

بعض المعلومات حول X-Frame-Options 

يوجد قيم لهذا الهيدر منها

  • DENY : يمنع ان يتم استدعاء هذه الصفحة في Iframe.
  • SAMEORIGIN : يمكن استدعاء هذه الصفحة في نفس الموقع ” فقط “عن طريق ايفريم (ينصح به) .
  • ALLOW-FROM uri : السماح لرابط او موقع معين باستخدام الايفريم لربط هذه الصفحة.

أصلاح عام للسيرفرات 

سيرفر اباتشي Apache : 

يمكنك اضافة السطر التالي الى httpd.conf

سيرفر nginx  :  

في ملف nginx.conf اضفط السطر التالي في خانة السيرفر

nginx-clickjacking
سيرفر IIS:   

في ملف Web.config اضف النص التالي

<system.webServer>

<httpProtocol>
<customHeaders>
<add name=”X-Frame-Options” value=”SAMEORIGIN” / X>
</customHeaders>
</httpProtocol>

</system.webServer>

 

سيتم شرح بعض الاستغلالات الاخرى وطرق الحماية والتخطي قريباً ان شاء الله .

ارجو ان تكونوا استفدتم من الشرح لاي استفسار تواصلوا معي او ضعوا تعليق اسفل المقال