Loading...
آیکون دسته‌بندی WSTG برای چالش Cache Poisoning

Cache Poisoning

برای حل این چالش لطفا وارد حساب خود شوید.
ورود به حساب کاربری

آسیب‌پذیری Cache Poisoning چیست؟

Cache Poisoning (مسموم‌سازی کش) یک ضعف امنیتی است که در آن مهاجم با تزریق پاسخ جعلی به لایهٔ کش (Cache Server، CDN یا مرورگر) باعث می‌شود کاربران بعدی همان پاسخ مخرب را مشاهده کنند.

انواع Cache Poisoning

نوع توضیح کوتاه هدف اصلی
Web-Cache Poisoning مسموم‌سازی کش معکوس (CDN/Reverse-Proxy) آلوده‌کردن پاسخی که چند کاربر دریافت می‌کنند
Browser-Cache Poisoning مسموم‌سازی کش مرورگر قربانی جعل محتوای ذخیره‌شده برای همان کاربر
DNS Cache Poisoning تزریق رکورد جعلی در کش DNS هدایت کاربر به IP جعلی

در این متن، تمرکز بر Web-Cache Poisoning است.

مکانیزم حمله Web-Cache Poisoning

  1. یافتن ورودی قابل کش (URL یا هدرهایی که در کلید کش مؤثرند).
  2. ارسال درخواست مخرب با پارامتر یا هدر اضافی.
  3. برگشت پاسخ و ذخیره آن در کش.
  4. سرو همان پاسخ آلوده به کاربران بعدی.

هدرهای کلیدی در Cache Poisoning

هدر نکتهٔ امنیتی
Hostاختلاف آن کلید کش را می‌شکند.
X-Forwarded-Host, X-Forwarded-Protoاگر در کلید کش نباشد، قابل سواستفاده است.
X-Original-URL, X-Rewrite-URLمی‌تواند پاسخ متفاوتی تولید کند.
X-Forwarded-Forمحتوای وابسته به IP ولی کش نادیده بگیرد ⇒ آسیب.
Accept-Encoding, Accept-Languageنبود Vary مناسب کش را مسموم می‌کند.
Cache-Controlتنظیم بد، ماندگاری پاسخ آلوده.
Varyناکامل باشد، پاسخ اشتباه به همه.
Content-Type, Content-Encodingدست‌کاری می‌تواند XSS را پنهان کند.

مثال عملی (Web-Cache Poisoning کلاسیک)

GET /profile?id=123 HTTP/1.1
Host: example.com
X-Forwarded-Host: attacker.com
  1. سرور X-Forwarded-Host را در HTML قرار می‌دهد («Welcome to attacker.com»).
  2. CDN پاسخ را بدون لحاظ این هدر کش می‌کند.
  3. کاربران بعدی همان HTML آلوده را می‌بینند.

جلوگیری از Cache Poisoning

  • کلید کش دقیق بسازید (استفاده از Vary یا حذف هدر ناامن).
  • پاسخ را به هدرهای نامطمئن وابسته نکنید.
  • پیکربندی صحیح Cache-Control:
# صفحات حساس
Cache-Control: no-store, private

# محتوای عمومی
Cache-Control: public, max-age=300
  • استفاده از Content-Security-Policy (CSP) برای کاهش XSS.
  • اعتبارسنجی/اینکد ورودی‌ و خروجی.
  • فعال‌سازی WAF یا ماژول‌های ضد Poisoning.

جمع‌بندی

Cache Poisoning به ذخیره نسخهٔ آلوده در کش و سرو آن به سایر کاربران منتهی می‌شود. با کلید کش دقیق، عدم اعتماد به هدرهای کنترل‌نشده و تنظیم درست Cache-Control می‌توان خطر را به حداقل رساند.