Http拆分

HTTP Spliting(拆分)

HTTP Spliting攻击讲解

之所以会出现http拆分是因为客户端和服务器端每一次交互的结束标志、存在重定向和对于服务器端响应的消息在客户端是以消息队列的方式存在的。当客户端向服务器发出一个请求的时候,有时候这个请求要求服务器给我们重定向到其他的地址,这是服务器会返回给客户端一个302的重定向信息,并以Location标签给出重定向之后的访问地址,客户端收到服务器端的重定向数据后会向Location所指的地址发送访问请求。

在http响应中,浏览器会根据content-length:0向下寻找到换行为止作为一个响应的结束,然后将所有的响应以消息队列的形式存起来。如果我们可以构造特殊的参数使得浏览器收到重定向消息的时候,将收到的一个响应当做两个响应,那么我们的第二个响应就会被存入消息响应队列中,接着浏览器就会根据Location的地址,进行重定向的请求,这时候由于我们构造的第二个响应已经存在于消息队列,则浏览器会直接把它拿来当做我们重定向请求后得到的响应。这样我们就可以用自己构造的页面替代用户访问的页面,进而施行钓鱼攻击等。

如表1所示的内容,浏览器在收到服务器端的响应之后首先根据Content-length: 0 加换行将消息分为两个响应并加入消息队列,其次取出第一个响应的消息发现是一个302的重定向,则会向Location的地址发送请求,这是浏览器检测到自己的消息队列中由内容存在,也就是我们第一次请求得到的第二个响应消息,它会直接把这个响应消息当做重定向请求得到的响应。(在下面我们以不同颜色标出了两次响应消息)

HTTP/1.1 302 Moved Temporarily

Server: Apache-Coyote/1.1

Location: http://localhost/WebGoat/attack?Screen=3&menu=100&fromRedirect=yes&language=hahaha

Content-Type: text/html;charset=ISO-8859-1

Content-length: 0

 

HTTP/1.1 200 OK

Content-tpye:Content-Type: text/html;charset=ISO-8859-1

Content-length:19

<html>hacked</html>

Date: Sat, 02 Jan 2016 11:12:55 GMT

X-RevealHidden: possibly modified 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鱼游游游

如果觉得满意,就请我吃颗糖果吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值