
Cross-site scripting (XSS)
زمان مطالعه :8 دقیقه
آموزش آسیب پذیری Reflected XSS
سلام دوستان امروز قراره که توی این مقاله باهم حمله RXSS رو یادبگیریم.
اول از همه بریم و بررسی کنیم ببینم خود XSS ( Cross-Site Scripting ) چیه, چطوری رخ میده و چیکارا میشه باهاش کرد.
مقدمه XSS
Cross-Site Scriptingکه به اختصار XSS هم شناخته میشه, یکی از حملات وب سمت کاربر هست که بخاطر اشتباه برنامه نویس توی اعتبارسنجی ورودی کاربران, این اجازه رو به کاربر میده که کد HTML یا کد مخرب جاوااسکریپت رو وارد کنه.
XSS انواع مختلفی داره مثل, Reflected Xss , Stored Xss , Dom-Based Xss , Blind Xss و Self Xss که جاهای مختلفی در وب اپلیکیشن ها میشه اونارو پیداکرد و خصوصیات مختلفی دارن.
XSS جاهای مختلفی رخ میده مثل, URL ها , سرچ باکس ها , نظرسنجی ها , ارتباط با ما, آپلود فایل , لینک ها و . . .
توضیح RXSS
RXSS زمانی رخ میده که سایت ورودی کاربر رو بدون فیلتر کردن و به صورت مستقیم داخل کد سایت قرار بده. RXSS فقط یکبار اجرا میشه چون اسکریپت مخرب توی سرور ذخیره نمیشه و فقط همون یکبار میشه به صورت یک لینک اون رو به قربانی ها ارسال کرد.
شناسایی RXSS
برای اینکه تست کنیم آیا یک بخش به این آسیب پذیری دچار هست یا نه باید یک پیلود ( کد مخرب ) رو به بخش مربوطه اضافه کنیم و ببینیم آیا مقدار وارد شده در صفحه یا کد سایت وجود دارد یا خیر, مثلا وارد کردن test"> در سرچ باکس. اگر کد ما بدون هیچ انکودی و بدون هیچ تغییری مستقیما داخل کد سایت قرار گرفت میتوان این احتمال را داد که سایت آسیب پذیر است.

کامل کردن پیلود
در مرحله دوم بعد از اینکه مطمئن شدیم ورودی ما درون کد سایت قرار میگیرد, پیلود خود را کمی گسترش میدهیم.
در این مرحله بسته به جایی که ورودی ما قرار گرفته است پیلود خود را گسترش میدهیم.
اگر پیلود ما درون پراپرتی های HTML مانند value="" بود, اول سعی میکنیم با استفاده از " و یا ' از پراپرتی HTML خارج شویم. و سپس با استفاده از ایونت های Javascript این آسیب پذیری را اکسپلویت میکنیم ( بهره برداری از آسیب پذیری با یک پیلود)
به این صورت: "onclick=alert()
و یا اگر پلود ما درون مقدار یک تگ بود که بدون هیچ مشکلی پیلود خود را گسترش میدهیم.
به این صورت: <test onclick=alert()>Click Here!</test>

حالا با کلیک روی Click Here! کد مخرب ما اجرا میشه, و اگر میخواید این آسیب پذیری رو اتومات کنید که نیازی به کلیک کردن نداشته باشه میتونید برید سراغ ایونت هایی مثل onerror, onload و . . . و این ایونت هارو روی تگ های مثل svg , img بزنید.
نمونه پیلود: <svg onload=alert()

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

Omid Noory
مشاهده مقاله های بیشتر
مقالات مرتبط
What is XSS, How does XSS work? Impact of an attack
زمان مطالعه :6 دقیقه
Reflected XSS, Impact, Contexts, Testing, FAQs
زمان مطالعه :5 دقیقه
.Stored XSS, Impact , Contexts, Testing for vulnerabilities
زمان مطالعه :3 دقیقه
DOM-based XSS, Testing, Exploiting
زمان مطالعه :8 دقیقه
XSS contexts: Between HTML tags, In HTML tag attributes, JavaScript, Client-side template injection
زمان مطالعه :6 دقیقه
Exploiting XSS vulnerabilities & Dangling markup injection
زمان مطالعه :4 دقیقه