مقال : شرح مفهوم ثغرة Clickjacking
العديد يتسائل عن فكرة ثغرة Clickjacking واليوم سنشرح هذه الثغرة بالتفصيل مع الحل بعدة طرق ولكل سيرفر وتطبيق على حدا ، كما تعرف الثغرة بمُصطلح متداول وهو” سرق الضغطات ” هو هجوم يقوم به المهاجم باخفاء صفحة من موقع معين في صفحة اخرى وهمية حيث يريد ان يقوم الضحية بالضغط في مكان ما في الصفحة ليقوم بتنشيط فعالية او الموافقة على طلبات من الموقع للدخول الى موارد او غيرها كOAuth مثلاً .
الشرح
لو فرضنا على سبيل المثال (example.isecur1ty.org) هو موقع عادي كل ما نحتاح اليه لكشف الثغرة هو الدخول للصفحة المطلوبة . بطلب GET
الان نراجع الرد من السيرفر :
Get:http://example.isecur1ty.org/ouath.page
Host: example.isecur1ty.org
User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:44.0) Gecko/20100101 Firefox/44.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
If-Modified-Since: *x
sdasd
ونلاحظ رد السيرفر لهذه الصفحة :
HTTP/1.1 200 OK Cache-Control: private Content-Type: text/html; charset=utf-8 Server: Microsoft-IIS/7.5 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Thu, 11 Feb 2016 11:45:34 GMT Content-Length: 1221
لا يوجد في هذه الX-Frame-Options ولا يوجد قيمة له لذلك سيعرض المتصفح هذه الصفحة من اي frame أو Iframe او object . في صفحة اخرى في موقع اخر .
ممكن ان يكون الموقع مصاب بثغرة Clickjacking ناتي الان لنفحص الصفحة
لو فرضاً ان example.isecur1ty.org موقع حفظ الصور لديك صور مخفية وهناك خاصية يمكن من خلالها ان تسمح للتطبيقات بالدخول للصور المخفية بموافقتك .
الصفحة ستكون
الان لنجرب الثغرة ونقوم بعمل صفحة html تحتوي على iframe في جهازنا والiframe يؤدي الى example.isecur1ty.org/oauth.page
<iframe src=”http://example.isecur1ty.org/oauth.page?id=123&app=hackerapp”>
تم الحصول على الصفحة في الiframe في صفحة اخرى وبذلك فان الموقع مصاب بثغرة clickjacking في هذه الصفحة .
الان سيتم اخفاء الايفريم ببعض خدع CSS سيتم اخفاء الايفريم في صفحة اخرى غير تابعة للموقع نفسه .
الان ان صنعت هذه الصفحة كمثال بسيط وضعت مسابقة خدعة ووضعت زر اضغط هنا لكي اسرق ضغطة ويضغط فوق زر allow للسماح بتطبيق الهكر الخاص بي بسرقة الصور الخاصة به .
الان ساخفي الايفريم تماماً
الان سيكون من السهل خداع الضحية وبمجرد ان يضغط على زر اضغط الان الذي هو معطل اصلا فهو يقوم بضغط زر allow في موقع example.isecur1ty.org بدون علمه ويسمح لتطبيقي الخبيث بالحصول على الصور .
الأصلاح
يوجد العديد من الطرق لاصلح وتفادي الثغرة منها :
- وضع X-Frame-Options في السيرفر لكل الصفحات او للصفحات المهمة .
- برمجة جافا سكربت في الصفحات يقوم بمراجعة الصفحات في حالة عدم امكانية التحكم بالسيرفر او الصفحة .
بعض المعلومات حول X-Frame-Options
يوجد قيم لهذا الهيدر منها
- DENY : يمنع ان يتم استدعاء هذه الصفحة في Iframe.
- SAMEORIGIN : يمكن استدعاء هذه الصفحة في نفس الموقع ” فقط “عن طريق ايفريم (ينصح به) .
- ALLOW-FROM uri : السماح لرابط او موقع معين باستخدام الايفريم لربط هذه الصفحة.
أصلاح عام للسيرفرات
سيرفر اباتشي Apache :
يمكنك اضافة السطر التالي الى httpd.conf
Header always append X-Frame-Options SAMEORIGIN
سيرفر nginx :
في ملف nginx.conf اضفط السطر التالي في خانة السيرفر
add_header X-Frame-Options "SAMEORIGIN";x
سيرفر IIS:
في ملف Web.config اضف النص التالي
<system.webServer>
<httpProtocol>
<customHeaders>
<add name=”X-Frame-Options” value=”SAMEORIGIN” / X>
</customHeaders>
</httpProtocol>
</system.webServer>
سيتم شرح بعض الاستغلالات الاخرى وطرق الحماية والتخطي قريباً ان شاء الله .
ارجو ان تكونوا استفدتم من الشرح لاي استفسار تواصلوا معي او ضعوا تعليق اسفل المقال
مشكور أخي على المعلومات واصل يا معلم
ارجو شرح اخر لهذه الثغرة … وشكرا علي هذه المعلومات الجميلية
مشكور أخي
شكرا لك على الشرح الجميل بوركت
#تحياتي
شكراً لك أخي عبدالله بارك الله بك انا من اشد معجبيك اشكرك من كل قلبي
شكرا لك أخي