رفتن به مطلب

پست های پیشنهاد شده

ارسال شده در

درود! بعد مدت ها اومدم با یکم فعالیت درست و خاص 🥷

مقدمه

کلیک‌جکینگ یه تکنیک مخربه که مهاجمین ازش برای گول زدن کاربران و وادار کردن اونها به کلیک روی چیزی متفاوت از چیزی که می‌بینن، استفاده می‌کنن. این کار معمولاً با جاسازی یه وب‌سایت معتبر درون یه iframe نامرئی و قرار دادنش روی یه صفحه مخرب انجام می‌شه. وقتی کاربر با صفحه تعامل می‌کنه، ناخواسته روی سایت جاسازی شده عملیاتی انجام می‌ده، مثلاً لایک کردن یه پست، سابمیت یه فرم یا حتی انجام تراکنش.

کلیک‌جکینگ می‌تونه برای موارد زیر هم استفاده بشه:

  • سرقت داده: مهاجمین می‌تونن با فریب کاربران برای سابمیت فرم یا وارد کردن اطلاعات حساس، از کلیک‌جکینگ برای سرقت اطلاعات استفاده کنن.
  • توزیع بدافزار: کلیک‌جکینگ می‌تونه برای دانلود و اجرای بدافزار روی سیستم قربانی استفاده بشه.

مقابله با کلیک‌جکینگ

برای محافظت از وب‌سایت‌ها در برابر کلیک‌جکینگ، توسعه‌دهندگان وب یا متخصصان امنیت می‌تونن از هدرهای HTTP خاصی استفاده کنن که نحوه جاسازی وب‌سایت در فریم‌ها رو کنترل می‌کنه. هدرهای اصلی عبارتند از:

  1. X-Frame-Options: این هدر سه مقدار می‌پذیره:
    • DENY: مانع از نمایش صفحه در هر iframe ای می‌شه.
    • SAMEORIGIN: اجازه می‌ده صفحه فقط توسط صفحاتی از همون مبدأ (origin) فریم بشه.
    • ALLOW-FROM uri: اجازه می‌ده صفحه فقط توسط مبدأ مشخص شده فریم بشه. هرچند، این روش منسوخ شده و پشتیبانی گسترده‌ای نداره.
  2. Content-Security-Policy (CSP): به‌ویژه، دستورالعمل frame-ancestors می‌تونه برای کنترل دامنه‌هایی که مجاز به فریم کردن محتوا هستن، استفاده بشه.

در برنامه ما، X-Frame-Options رو بررسی می‌کنیم تا مشخص کنیم یه وب‌سایت نسبت به کلیک‌جکینگ آسیب‌پذیره یا نه.

بررسی آسیب‌پذیری‌های کلیک‌جکینگ با پایتون

برای شروع، مطمئن بشید پایتون ۳ و کتابخانه requests نصب شده. از کتابخانه requests برای ارسال درخواست‌های HTTP به وب‌سایتی که می‌خوایم بررسی کنیم، استفاده می‌کنیم. می‌تونید requests رو با دستور زیر نصب کنید:

This is the hidden content, please

یه فایل پایتون جدید باز کنید، مثل همیشه، یه اسم با معنی براش انتخاب کنید، مثلاً `clickjacking_scanner.py`، و کد زیر رو توش بنویسید.

This is the hidden content, please

تابع `check_clickjacking` با ارسال یه درخواست GET به URL مشخص شده، آسیب‌پذیری کلیک‌جکینگ یه وب‌سایت رو بررسی می‌کنه. این تابع وجود هدر `X-Frame-Options` رو چک می‌کنه و مطمئن می‌شه که مقدار اون `deny` یا `sameorigin` هست که نشون دهنده محافظت در برابر کلیک‌جکینگ هست.

در مرحله بعد، یه تابع اصلی (`main`) می‌سازیم تا آرگومان‌های کاربر (url) رو از طریق خط فرمان دریافت کنه و آسیب‌پذیری‌های کلیک‌جکینگ رو بررسی کنه.

This is the hidden content, please

تابع `main` آرگومان‌های خط فرمان رو تجزیه و تحلیل می‌کنه تا آسیب‌پذیری کلیک‌جکینگ URL داده شده رو بررسی کنه، نتیجه رو چاپ کنه و در صورت مشخص شدن (با استفاده از فلگ‌های `–log` یا `-l`)، هدرهای پاسخ HTTP رو هم لاگ (ثبت) کنه.

تمام شد. کارمون دیگه تمومه. حالا بیایید کد رو اجرا کنیم.

 اجرای اسکریپت

برای تست اسکریپت، اول از یه وب‌سایت عمداً آسیب‌پذیر و یه وب‌سایت غیر آسیب‌پذیر استفاده می‌کنم. `https://xss-game.appspot.com/` یه سایت عمداً آسیب‌پذیره که برای تست آسیب‌پذیری‌های XSS استفاده می‌شه. با این حال، این سایت نسبت به کلیک‌جکینگ هم آسیب‌پذیره، بنابراین می‌تونیم اسکریپتمون رو باهاش تست کنیم.

This is the hidden content, please
This is the hidden content, please

حالا بیایید این رو روی سایتی تست کنیم که در برابر کلیک‌جکینگ آسیب‌پذیر نیست.

This is the hidden content, please

ممکنه براتون سوال باشه که در کد، ما قابلیتی اضافه کردیم تا اگر کاربر schema (http://، https://) رو وارد نکرد، خودمون به طور خودکار اضافه کنیم. نگران نباشید، این قابلیت هنوز هم کار می‌کنه – فقط در پشت صحنه. نتایجی که در بالا می‌بینید به همان شکلی که کاربر وارد کرده، بهش نمایش داده می‌شه.

نتیجه‌گیری

اسکریپت پایتونی که ساختیم، یه روش ساده و موثر برای بررسی آسیب‌پذیری یه وب‌سایت در برابر کلیک‌جکینگ با بررسی هدر X-Frame-Options ارائه می‌ده. توسعه‌دهندگان می‌تونن با درک و استفاده از این هدرها، از وب‌سایت‌ها و کاربران خود در برابر حملات احتمالی کلیک‌جکینگ محافظت کنن.

 

من یک نسخه پیشرفته تر که نمیشه گفت ولی بازسازی تر و کلی تر از این اسکنر گذاشتم صفحه گیت هاب خودم خیلی خوشحال میشم سر بزنید و استارشو بزنید و حمایتم کنید :)) سوالی هم بود توی همین تاپیک کافیه درج کنید :))
اینم لینک پروژه گیت هاب آموزش :

This is the hidden content, please

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • ایجاد مورد جدید...