حمله Cross Site Scripting(Attribute) در محیط آزمایشی SKF

تاریخ انتشار : 2020/12/08 | نویسنده : Anonymous (تایید نشده)

حمله Cross Site Scripting(Attribute) در محیط آزمایشی SKF

حمله Cross Site Scripting(Attribute) در محیط آزمایشی SKF

                   

آسیب پذیری XSS میتواند در هر جایی از اپلیکیشن رخ دهد.

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

مانند جاوا اسکریپت را داشته باشند. این مساله ذاتا میتواند خطرناک باشد.

هدف از حمله XSS، تزریق کدهای مخرب برای اجرا در صفحات وب است.

این کدها میتوانند مانند کدهایی که از سمت سرور به سمت کلاینت میرسند، اجرا شوند و  به همه اطلاعاتی که

کاربر،  دسترسی پیدا کنند، مانند کوکی، Sessionو ....

در این قسمت مثال دیگری از حمله XSS را بررسی میکنیم.

برای انجام حمله xss بایستی گام‌های زیر را انجام دهیم.

برای انجام این حمله در ابتدا lab مربوطه را از لینک زیر دانلود می‌کنیم.

https://github.com/blabla1337/skf-labs

در ادامه برای اجرای برنامه بایستی از Docker و یا Python استفاده کنیم.

 

اجرای برنامه از طریق Docker

در صورتی که بخواهیم از Docker استفاده کنیم بعد از نصب، باید از دستورات  زیر برای اجرای lab استفاده کنیم.

 

 

 

 

 

 

اجرای برنامه از طریق Python3

 

ابتدا اطمینان حاصل کنید که pip و python3 بر روی دستگاه میزبان شما نصب شده‌اند.

 

پس از نصب، به پوشه آزمایشگاهی که میخواهیم تمرین کنیم میرویم؛ به عنوان مثال

 

“/skf-labs/XSS attribute/” و در آنجا دستور زیر را در محیط CMD ویندوز اجرا میکنیم.

 

 

rnpg-python-03

 

 

 

گام نخست

 

  این برنامه یک فیلد ورودی را مطابق تصویر زیر به ما نشان میدهد. از طریق آن

میتوانیم حمله را انجام دهیم.

در گام نخست  با وارد کردن مقدار میتوانیم رنگ متن نشان داده شده در صفحه را تغییر دهیم.

 

 

rnpg-xss-attribute

 

 

            اگر بخواهیم نوشته را به رنگ قرمز تغییر دهیم کافی است که در کادر ورودی

"red" بنویسیم و روی دکمه submit کلیک کنیم.

 

            بعد از تایپ کلمه "قرمز"، خروجی به رنگ قرمز نمایش داده خواهد شد.

 

rnpg-xss-atrribute-result

 

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

که دریافت میکند، متغیر رنگ را به درستی رمزگذاری نمی‌کند. بنابراین

می‌توان حمله Cross site scripting (XSS) را انجام داد.

 

code-xss-rnpg

 

بهره‌برداری

 

                        دیدیم که ورودی کاربر به چه شکلی منعکس می‌شود. بایستی به این

مساله توجه داشته باشیم، کدام یک از کاراکترهای خطرناک HTML رمزگذاری نشده اند و

در چه صورت می‌توان فیلتری که بر خروجی اعمال میشود را دور زد. اگر برنامه نویس از

کاراکترهایی از قبیل ><" استفاده میکرد، عبارات به درستی رمزگذاری می‌شد. بنابراین از

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

 

xss-rnpg-code

        

در نهایت خروجی به صورت زیر خواهد شد و باعث به کار انداختن Javascript Event handler می‌شود.

 

rnpg-result-xss

 

 

 

 

[1] owasp-skf.gitbook.io