درخواست های ارتباط
جستجو
لیست دوستان من
صندوق پیام
همه را دیدم
  • در حال دریافت لیست پیام ها
صندوق پیام
رویدادها
همه را دیدم
  • در حال دریافت لیست رویدادها
همه رویدادهای من
تخفیف های وب سایت
همه تخفیف ها

عضویت در

کانال تلگرام

توسینسو

اطلاعات مطلب
مدرس/نویسنده
احسان امجدی
امتیاز: 58514
رتبه:14
1
199
45
620
احسان امجدی ، مشاور امنیت اطلاعات و ارتباطات و تست نفوذ سنجی ، هکر کلاه سفید ، مدرس دوره های تخصصی امنیت اطلاعات و شبکه ، تخصص در حوزه های سرویس های مایکروسافت ، Routing و Switching ، مجازی سازی ، امنیت اطلاعات و تست نفوذ ، کشف جرائم رایانه ای و سیستم عامل لینوکس ، متخصص در حوزه SOC و ... پروفایل کاربر

ویدیوهای پیشنهادی

آشنایی با حملات CSRF - بخش دوم

تاریخ 38 ماه قبل
نظرات 1
بازدیدها 1073
سلام به دوستان عزیز ITPro ای و علاقه مندان به مباحث امنیت شبکه. در بخش اول بصورت کلی تعریفی بر حملات CSRF داشتیم و هدف این بود که شما را از لحاظ ذهنی با کلیت این نوع حمله آشنا کنیم. در این بخش با ارائه مثالی، آنچه را که در این حملات رخ میدهد را از نزدیک خواهیم دید. با ما همراه باشید.
برای شروع سایتی آسیب پذیر در برابر حمله CSRF را فرض میکنیم. این سایت در واقع یک سرویس ایمیل تحت وب است که به کاربران خود امکان ارسال و دریافت ایمیل را میدهد. این سایت برای احراز هویت کاربران خود، از مکانیزم authentication استفاده میکند.
یکی از صفحات این سایت،http:////example.com//compose.htm میباشد که دارای فرمی HTML است که به کاربر این امکان را میدهد تا مشخصاتی مانند ایمیل دریافت کننده ایمیل، موضوع ایمیل و متن پیام را با کلیک کردن دکمه Send Email، وارد کند.
<form
Action=http://example.com/send_email.htm
Method=”Get”>
Recipient’s Email address: <input type=”text”  name=”to”>
Subject:  <input  type=”text”  name=”subject”>
Message:  <textarea  name=”msg”></textarea> 
<input  type=”submit”  value=”Send Email”>
</form>

وقتی که کاربر بر روی "Send Email" کلیک میکند، اطلاعاتی را که او وارد کرده، به سمت http:////example.com//send_email.htm و تحت یک GET Request ارسال میشود. زمانی که GET Request اطلاعات فرم را به URL اضافه میکند، در واقع کاربر چنین URL ای را بسمت سرور ارسال کرده است:
http://example.com/send_email.htm?to=Ehsan%40example.com&subject=Hello&msg=what%27s+the+status+of+that+proposal%3F
در ادامه فرایند، صفحه send_email.htm اطلاعات دریافت شده را تحویل گرفته و ایمیل را بسمت مقصدی که کاربر مشخص کرده است، ارسال میکند. توجه داشته باشید که send_email.htm، صرفا اطلاعات را گرفته و بر روی آن اکشن مناسب انجام میدهد. برای این صفحه مهم نیست که اصل درخواست از کجا ایجاد شده است. تمام این حرفا به این معنی است که اگر کاربر بجای پرکردن فرم و ارسال آن، صرفا در بخش URL،
http://example.com/send_email.htm?to=Ehsan%40example.com&subject=Hello&msg=what%27s+the+status+of+that+proposal%3F

را تایپ کند، example.com باز هم ایمیل را ارسال خواهد کرد.
برای مثال، اگر کاربر، سه URL زیر را در مرورگرش تایپ کند، send_email.htm، سه ایمیل را به احسان، میلاد و فرهاد ارسال خواهد کرد:
http://example.com/send_email.htm?to=ehsan%
40example.com&subject=hi+Ehsan&msg=test

http://example.com/send_email.htm?to=farhad%
40example.com&subject=hi+Farhad&msg=test

http://example.com/send_email.htm?to=milad%
40example.com&subject=hi+Milad&msg=test

در این مرحله احتمال وقوع حمله CSRF وجود دارد، به علت انکه send_email.htm، هر دیتایی را که دریافت کند، بر طبق آن ایمیل متناظرش را ارسال میکند. send_email.htm اصالت داده و این که از طریق فرم و صفحه compose.htm ارسال شده باشد را بررسی نمیکند. بنابراین اگر اتکر کاری کند که کاربر درخواستی را برای send_email.htm ارسال کند، در ادامه send_email.htm نیز باعث میشود تا example.com ایمیلی را از طرف کاربر و با دیتایی که انتخاب اتکر بوده است، ارسال کند. در اینصورت اتکر توانسته است با موفقیت یک حمله CSRF انجام دهد.
برای انجام چنین کاری، اتکر نیاز دارد تا مرورگر کاربر را مجبور کند تا درخواستی را به send_email.htm ارسال کند تا بتواند عمل دلخواه خود را در لوای آن انجام دهد. (فرض میکنیم که کاربر سایتی که تحت کنترل اتکر است را بازدید میکند و سایت هدف نیز در برابر حملات CSRF ایمن نشده باشد). در این حالت اتکر باید از سایت خودش به example.com یک درخواست را جعل کند. متاسفانه در این مورد، HTML راه های زیادی را برای ساخت چنین درخواست هایی ایجاد کرده است. مثلا تگ <img> باعث میشود تا مرورگر هر شناسه ای (URI) ای را که به عنوان src در خود ست کرده باشد، لود کند؛ حتی اگر این URI واقعا یک image نباشد. اتکر میتواند بوسیله کد زیر، صفحه ای را ایجاد کند:
<img src="http://example.com/send_email.htm?
to=ehsan%40example.com&subject=Hi&msg=My+
email+address+has+been+stolen">
در حالی که کاربر از کدی که در پشت زمینه وجود دارد، مطلع نیست، وقتی که این صفحه را باز میکند، یک درخواست به send_email.htm ارسال میشود که این موضوع باعث میشود در ادامه فرآیند یک ایمیل از طرف کاربر به Ehsan@example.com ارسال شود.
حمله CSRF زمانی موفقیت آمیز است که اتکر کاری کند تا مرورگر کاربر، عملی ناخواسته را بر روی یک سایت دیگر انجام دهد. برای انکه این عمل ناخواسته موفقیت آمیز باشد، کاربر باید توانایی انجام این عمل را داشته باشد. قدرت حملات CSRF نوعا در حد سطح دسترسی و قدرت کابر است. یعنی آنکه کاربر هرکاری را که بتواند انجام دهد، اتکر نیز میتواند آن ها را انجام دهد. در نتیجه به هراندازه که یک سایت به کاربری قدرت میدهد، حملات CSRF بر روی آن نیز جدی تر و شدیدتر خواهند بود.


پایان بخش دوم
مانا باشید.


نویسنده: احسان امجدی
منبع: انجمن تخصصی فناوری اطلاعات ایران
هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد
برچسب ها
ردیف عنوان
1 آشنایی با حملات CSRF
2 آشنایی با حملات CSRF - بخش دوم
دوره مجموعه کل دوره
مطالب مرتبط

در حال دریافت اطلاعات

نظرات

برای ارسال نظر ابتدا به سایت وارد شوید