‹ بازگشت به کتابخانه‌ی رایت‌آپ‌ها
XSS — DOM-based / Mutation شدت: متوسط

Mutation XSS (mXSS) از طریق نرمال‌سازی مرورگر در innerHTML

چگونه مرورگر خودش، در فرآیند parse و serialize دوباره‌ی HTML، یک payload ظاهراً امن را به یک payload اجراپذیر تبدیل می‌کند.

نویسنده: تیم PentesterHub

Mutation XSS زمانی رخ می‌دهد که یک sanitizer، HTML را امن تشخیص می‌دهد، اما مرورگر در مرحله‌ی بعد (مثلاً هنگام خواندن مجدد innerHTML) آن را به شکل متفاوتی "تعمیر" (mutate) می‌کند که دوباره اجراپذیر می‌شود.

چرا پیچیده است

این حمله به‌جای دور زدن مستقیم sanitizer، از رفتار استاندارد و قابل‌پیش‌بینی خودِ موتور HTML مرورگر سوءاستفاده می‌کند؛ یعنی sanitizer «کار خودش را درست انجام داده»، اما مرحله‌ی بعدی (serialize/re-parse) نتیجه را خراب کرده.

نحوه‌ی شناسایی

راه‌حل

استفاده از یک sanitizer به‌روز و معتبر، و اجتناب از sanitize چندمرحله‌ای یا دستی روی خروجی DOM.

تمرین عملی در آزمایشگاه‌های XSS — DOM-based / Mutation ›