فلسفه کلیدی: به جای درگیری مستقیم با فایروال (WAF) و استفاده از کاراکترهای عجیب، از رفتارهای استاندارد و ذاتی خود مرورگر استفاده کن تا از مسیرهای پنهان به اهدافت برسی.

🧠 ۱. مفهوم DOM Clobbering (تبدیل تگ به متغیر)

مرورگرها یک ویژگی عجیب (و گاهی خطرناک) دارند: آن‌ها برخی از تگ‌های HTML را به طور خودکار تبدیل به متغیرهای سراسری (Global Variables) در جاوااسکریپت می‌کنند.

کدام تگ‌ها را می‌توان Clobber کرد؟

پلی به سوی قدرت: ownerDocument

وقتی فایروال کلمه document را مسدود کرده است، چطور صفحه را کنترل کنیم؟

🧰 ۲. جعبه ابزار استخراج (ویژگی‌های طلایی)

ویژگی (Property) کاربرد و ارزش
ownerDocument رسیدن به شیء document (جایگزین مستقیم کلمه مسدود شده document).
parentElement حرکت در درخت HTML به سمت بالا (رسیدن به <html> یا <body>).
innerHTML خواندن محتوای تگ (مثل استخراج توکن‌های امنیتی چاپ شده در صفحه).
value استخراج متن تایپ شده توسط کاربر (مخصوص تگ‌های <input> یا <textarea>).
attributes خواندن مقادیر مخفی داخل ویژگی‌های تگ (مثل data-url).

🥷 ۳. تکنیک‌های دور زدن WAF (WAF Bypass)

وقتی کلمات کلیدی، پرانتز () یا نقطه . مسدود هستند:

الف) تکه‌تکه کردن کلمات (String Concatenation) فایروال کلمات کامل را می‌شناسد، اما مرورگر می‌تواند تکه‌ها را به هم بچسباند:

ب) فراخوانی توابع بدون پرانتز وقتی پرانتز () مسدود است، نمی‌توان توابع را صدا زد (Call). راه حل، تغییر مقدار (Assignment) است: