CRLF injection/HTTP response splitting

HTTP Header دارای ساختاری به شکل “Key:Value” می باشد که هر یک از این مقادیر با ترکیب CRLF جدا شده است. در صورتی که مقادیر کاربر در قسمت Value بدون حذف CRLF درج گردد، این امکان وجود دارد که ساختار HTTP Header تغییر کند.

انشعابات پاسخ های HTTP و یا (HTTP Response Splitting) تکنیک حمله نوینی می باشد که باب حملات جدید از جمله web cache poisoning, cross user defacement, hijacking pages و XSS را برای هکر تسهیل می کند. هکر، وب سرور وب سایت را با ارسال یک درخواست HTTP مجبور به تشکیل رشته خروجی می کند که توسط آن پاسخ وب سرور بجای یک HTTP Response به 2 پاسخ تبدیل می شود که در نهایت منجرب به ایجاد حمله XSS خواهد شد.

در جهت جلوگیری از این حمله، برنامه نویس می بایستی (13*0)CR و (10*0)LF را در ورودی کاربر محدود کرده و یا در خروجی، آنها را رمز نگاری نماید.

منبع 1: Whitepaper – HTTP Response Splitting

منبع 2: Introduction to HTTP Response Splitting