Quantcast
Channel: Amir Rasouli 's Technical Box » Web Application
Viewing all articles
Browse latest Browse all 7

AJAX Vulnerabilities & Abuses

$
0
0

بنام خدا ، سلام به تمامی دوستان و عرض پوزش بدلیل وقفه ی بین مطالبی که ایجاد میشود.

همونطور که همه میدونیم فناوری هایی جدید در عرصه ی برنامه های تحت وب با عنوان web2 در حال گسترش اند. نسل های جدید Web Application با سازگاری HTML5 منتشر میشند که این فناوری میتونه دست تمامی همکاران ما در بخش هکینگ رو باز تر نگه داره!

در این پست قصد داریم آسیب پذیری و سو استفاده هایی که از فناوری Ajax مورد استفاده قرار میگیرد نگاهی اندازیم.

ساختار قدیمی (کلاسیک) برنامه های کاربردی:

ajax1

 Classic Web Application Model

 Ajax یک Platform است که دو فرآیند سمت سرور (Server Side) و سمت کلاینت (Client Side) را نقش بازی میکند.

بطور کلی میشود به این صورت توصیفش کرد >>>> Ajax == XML + JavaScript

عملیات XML سمت سرور اتفاق خواهد افتاد و JS سمت کلاینت ایفا خواهد شد. هدف از ایجاد این نوع فعالیت ، این است که JavaScript منطق ساده و بهینه تر برای درخواست و پاسخ های HTTP را داراست ، که این امر باعث کاهش انتظار در بارگزاری صفحات خواهد شد.

عملیاتی که Ajax تاثیر گذار آن میباشد :

  • پردازش کلی برنامه ها سمت کاربر
  • کاهش تاخیر در درخواست/پاسخ بوسیله ی اندازه ی تنظیم شده برای هرکدام

ajax2

اطلاعات کلی از ساختار Ajax :

  • استفاده ازشی XMLHttpRequest
  • ارسال درخواست/پاسخ های HTTP
  •     – COPY / DELETE
    – GET / POST / HEAD
  • محدود به جاواسکریپتی که از hostname و port خاصی اختصاص می یابد
  • واکشی هر نوع منبع از قبیل داده های XML , HTML , Text , تصویر ، Flash ، محتوای رسانه ای

برنامه های کاربردی با واسط Ajax حملات وسیع تری رو نسبت به برنامه های قدیمی در اختیار قرار میدهند.

از جمله حملات Client Side ای که در برنامه های کاربردی قدیمی برای مهاجم در اختیار قرار میگیرد :

  • اجبار کاربر به ارسال پست بوسیله ی تگ های HTML
  • هدایت کاربر برای بارگزاری (آپلود) تصاویری با محتوای مخرب و اکسپلویت (دور زدن موارد امنیتی استفاده شده)
  • هدایت یک کاربر به صفحه ای غیر امن
  • اجبار کاربر به درخواست منابع بدون هیچ گونه گزارش !!

در برنامه ی Ajax شده قضیه کاملا فرق دارد :

  • حملات فقط به Client محدود نیست ! بخشی ازدرخواست ها در سمت Server قابل پردازش میباشد.
  • باز بودن دست مهاجم از خیلی جهات ، بعنوان مثال ، نام توابع/متغیر ، پارامترهای تابع و نوع بازگشتی ، دیتابیس و محدوده ی Valid
  • اختیار کامل به ورودی های محدود (برخلاف Application های قدیمی)
  • اکسپلویت برقراری ارتباطات میان سرور و کلاینت

مباحث Bypassing و عبور از فیلترها :

3 نوع فیلتر در ورودی ها قابل اعمال است »

  • ورودی های فرم گونه :     – ورودی از GET/POST          – اعتبار سنجی اعمال میشود اما ناقص !
  • قالب های فایل :     – محدود به تصاویر                    – استفاده از WMF و آسیب پذیری های PNG/JPG
  • توابع :   – منطق کنترل (حد و مرز اختصاص یافته) ، توابع          – اعتبار سنجی بسیار ساده !

بزارید کمی قضیه رو بازترش کنم بطور کامل جا بیفته ؛

وقتی یک کاربر ، قصد احراز هویت (Authentication) را دارد و بطور کامل اعتبار سنجی انجام میشود دو (یا سه) مکانیزم (عامل) ایجاد خواهد شد :

1. Cookie

2. HTTP Authentication

[3. Certificate Based Authenticate]

فرض کنید :

bank.ir/transfer.aspx?to=126208145421&price=111

که کوکی ما هم یک مقدار کلی و ثابت (Stable) است.

میتوان حملات CS/RF را پیاده سازی کرد !

پیش نیاز های یک CS/RF :

  • روی سرویس وب جوابگوست ! (فقط)
  • اعتبار سنجی با تغییر Headers
  • دسترسی SOAP (پروتکلی که از آن برای دسترسی Objects مثل داده های XML ، مورد استفاده قرار میگیره) و REST در صورت نیاز

سناریو های قابل انجام برای یک اکسپلویت موفق CSRF :

  • استخراج Token های Cookie از پاسخ (Response) ها
  • استخراج Viewstate از Responses
  • اضافه کردن Header ها بصورت جداگانه برای هر مرحله (ما فرضمون اینجا بانک هست ، برای انتقال پول ، بعضی جهات ممکنه 1 مرحله بیشتر نباشه)

Payload ها و مزایای قابل استفاده در حملات XSS مبنای Ajax :

  • بصورت یکپارچه در کل وب اپلیکیشن صورت میگیره !
  • نیازی به بارگزاری (refresh) نداره دیگه !
  • مهمترین قسمت » میتونه درخواست هایی بصورت HTTP Methods ارسال کنه که دست داداش هکرمونو از محتواهای مخرب باز میزاره (WebShell !)

خب ؛ قصه ی ما هم به سر رسید کلاغه تو راه رفت زیر آوار ، صدا و سیما هم چیزی اعلام نکرد مجبور شدیم بهش زنگ بزنیم گوشیش رو سایلنت بود بهش میل زدیم دیدیم جواب داد : ” پست رو به ایمیلت ارسال کردم” و همونجا مثل اینکه مرده .

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

با احترام


Viewing all articles
Browse latest Browse all 7

Trending Articles