در توسینسو تدریس کنید

و

با دانش خود درآمد کسب کنید

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

سلام به دوستان عزیز 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 بر روی آن نیز جدی تر و شدیدتر خواهند بود.

پایان بخش دوم

مانا باشید.

نویسنده: احسان امجدی

منبع: انجمن تخصصی فناوری اطلاعات ایران

هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی می باشد

#cross_site_scripting_چیست؟ #حملات_csrf #آموزش_امنیت_اطلاعات #آموزش_امنیت_شبکه
عنوان
1 آشنایی با حملات CSRF رایگان
2 آشنایی با حملات CSRF - بخش دوم رایگان
زمان و قیمت کل 0″ 0
1 نظر
موسی الرضا سنگ سفیدی

خیلی خوب بود احسان جان. کامل برام جا افتاد.

نظر شما
برای ارسال نظر باید وارد شوید.
از سرتاسر توسینسو
تنظیمات حریم خصوصی
تائید صرفنظر
×

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