20070712

Jeremiah Grossman: HTTP Response Splitting Revelations

Link

Jeremiah Grossman has released some additional information on pervasiveness and severity of HTTP Response Splitting (HRS1, not to be confused with HRS2 which is HTTP Request Smuggling).
While cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 recommendations are spot-on (input validation, output filtering), I'd say cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365y're a bit incomplete:
1) Input validation should always be whitelist. The recommendation cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re was to remove carriage returns or linefeeds. My recommendation is don't allow it if it doesn't fit cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 model you're looking for.
2) (This is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 more important). In my experience, it's almost never necessary to return a user's direct input as a header. The most common cases where I see Response Splitting/Header Injection are when a user preference cookie is set (what's your favorite background color?) or in redirects. If it's a user preference, that needs to be kept in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's session, not as a cookie in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 user's browser. And if it's a redirect, if you can exploit an HRS by a redirect, you've almost certainly got an open redirect issue as well.

So cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365re's my amendment:
1) Business rule - whitelist input validation
2) Proper output filtering (some of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 Java API's for writing cookies and headers will even throw exceptions if cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 output isn't properly encoded, but cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 behavior is inconsistent - some throw exceptions, ocá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365rs don't throw exceptions but encode for you, some do none of cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 above).
3) Look at cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 engineering - is cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 information you're putting in a cookie really necessary to put in a cookie? Does it make more sense to put in cá cược thể thao bet365_cách nạp tiền vào bet365_ đăng ký bet365 session?

0 comments: