http response splitting& http cache poisonhttp响应截断攻击及http缓存投毒

日期: 2009-08-02 来源:TechTarget中国 英文

  利用在请求中构建特殊的回车符,进而导致服务器中断正确的response的响应,并在服务器端形成一个伪造的http response,如果此时其他用户发起了http请求,将导致用户看到的是伪造的页面内容,进而攻击用户。如果这个用户是一个代理服务器则危害更大。如果构建在某个其他普通的站点页面上,则大量不同用户的点击可能导致被攻击网站的出现严重的危害。

  这个攻击可利用在XSS跨站,web cache投毒,浏览器投毒上。

  攻击原理:

  利用网站在读取用户提交的数据后,将用户提交的数据插入http的location的 header中,并返回302跳转响应,进而导致自动访问带有特殊构造字符的URI,最终导致服务器产生了2个response,其中第2个response的内容完全可以由用户构造,用户可以插入木马等iframe连接或其他任意内容。

  攻击前提:

  存在cr lf字符漏洞的web服务器

  攻击关键点:

  必须准确的让服务器能够明确的终结第一个response。

  例如请求http://www.myf5.cn/WebGoat/attack?Screen=70&menu=100&fromRedirect=yes&language=myf5%0D%0Acontent-length:%200%0D%0A%0D%0Ahttp/1.1%20200%20ok%0D%0A%0D%0A%0D%0A%3Chtml%3Ehacked%20by%20myf5%3C/html%3E 这样一个URI

  利用content-length=0让服务器明确知道第一个response已经结束,接着构建的 http/1.1 200 ok则让服务器认为第二个response已经产生。

  攻击演示:

  1.正常的查询访问后,如果没有查询到,程序利用location给用户返回原始的查询页面,并在返回的时候将用户之前查询的数据放到URI中,以便后面的页面提取URI参数。

http cache poisonhttp响应截断攻击及http缓存投毒-1

点击可看大图

  2.在查询中刻意填入如下内容并提交

myf5%0d%0acontent-length:%200%0d%0a%0d%0ahttp/1.1%20200%20ok%0d%0a%0d%0a%0d%0a<html>hacked!</html>

http缓存投毒-2

点击可看大图

  3.服务器做正确响应,并将用户提交的数据放入location中的uri里

http缓存投毒-3

点击可看大图

  4.接着浏览器重新发送location中的uri get请求

http缓存投毒-4

点击可看大图

  5.服务器响应情况

http缓存投毒-5

点击可看大图

http缓存投毒-6

点击可看大图

  防范方法:

  在将用户数据放入uri之前应充分过滤,避免特殊字符。

  使用WEB应用防火墙过滤cr lf

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐