当前位置:首页HTTP Evasions原理解析:分块传输绕过防火墙 举报文章

HTTP Evasions原理解析:分块传输绕过防火墙

作者:admin    来源:用户投稿    时间:2016.1.29   

  主要是通过Transfer-Encoding字段分块请求包来绕过防火墙。例如说,可以通过以下结构的请求包绕过防火墙的恶意软件检测:

  HTTP/1.0 200 ok

  Transfer-Encoding: chunked

  content which is not chunked

  分块传是什么?

  在HTTP 0.9中,响应包的结束只是简单的依赖于TCP的连接断开。在HTTP 1.0的响应头增加了一些字段,比如,Content-length用于表示响应包的大小,但却只有在服务器预先知道HTTP头长度的情况下,才能确定Content-length的值。这就意味着如果发送的是动态的内容,那么首先需要缓存数据,在发送前必须要计算出要发送的HTTP头的大小。否则如果依旧按过去的方式,可能TCP连接断开的时候,数据还没有传完,这时候就不得不中断数据传,要解决这种情况就不得不让TCP连接一直保持活跃状态。

  因此,在HTTP1.1标准中增加了分块传技术。按这种数据传方式的话,服务器首先会在每个分块前面添加上他的长度,这样的话,只要获取到第一个数据块就可以立刻发送出去。每一个数据块的长度都是用十六进制数表示。结束的响应包是一个空包,他的大小是0。例如,在下面的例子中,需要把字符串“0123456789ABCDEFGH”分成3个数据块和一个结束的空数据块发送:

  数据块:

  HTTP/1.1 200 ok

  Transfer-Encoding: chunked

  b

  0123456789A

  3

  BCD

  4

  EFGH

  0

  注意,在HTTP头中,每一行的换行符是\r\n,并且,每个数据分块也是以\r\n结束的。最后一块是单行,由块大小(0),一些可选的填充白空格,以及\r\n组成。

  防火墙看到的是各个分块,而浏览器看到的是整个数据包,所以只要稍微修改下分块,就会使防火墙和浏览器看到的内容大不相同,这样就有可能绕过防火墙。

  结合Transfer-Encoding和Content-Length进行绕过

  在HTTP 1.1标准中清楚的规定如果Content-Length和Transfer-Encoding分块模式同时给出的时候,所使用的传的模式是分块传,Content-Length字段必须被忽略掉。所有浏览器都遵守这个原则,但是仍然有15%的防火墙用相反的方式来解析。因此,可以通过这个简单的技巧绕过这类防火墙:

  HTTP/1.1 200 ok

  Transfer-Encoding: chunked

  Content-length: 22

  3

  MAL

  4

  WARE

  0

  令人惊讶的是,这些受影响的防火墙忽略了一点:这些响应包可能不是被分块过的包,并且直接让这样的包通过防火墙。有些防火墙,比如,Sophos UTM,把HTTP1.0包中的分块转化解析了,但是,至少这些防火墙对响应包进行了足够的清理,想在这种情况下绕过防火墙也是有一定的难度的。

  另外一些防火墙,虽然没有解析HTTP1.0中的Transfer-Encoding,如果他使用了一些特定的浏览器,也有可能被绕过。与所有浏览器相反的是Safari 浏览器并不看响应包使用的HTTP版本,就直接把带有Transfer-Encoding的头按分块传技术解析出来,无论这个响应包是否使用HTTP1.0。因此,除非防火墙对响应包进行清理,过滤掉坏包头,否则的话使用Safari浏览器的用户就有可能被以下的包攻击:

  HTTP/1.0 200 ok

  Transfer-Encoding: chunked

  3

  MAL

  4

  WARE

  0

  浏览器的处理方法也是不同的。IE浏览器会只解析后面的Transfer-Encoding,其他的主流浏览器只是查看响应头中是否存在Transfer-Encoding字段,如果该字段的值为“chunked”,就直接解析了。

  "chunked" vs. "xchunked" vs. "x chunked" 等等

  想Chrome和IE这样的浏览器会严格的控制Transfer-Encoding的值,并且只允许他的值为字符串“chunked”。但是,Firefox却可以接受“chunked”和其他词组合的情况。例如,“for chunked” 或者“chunked foo”。Safari更糟糕,他只是检查了是否存在“chunked”这个字符串,只要存在就都能接受,例如“this-is-not-chunked-and-I-mean-it”。

  当然同样的,也有好几款防火墙并不考虑响应体在这种情况下是否被分块,却依然按这个无效的包头解析。当然,这并不仅限于一些未知的防火墙和Gartner Top NGFW中。因此,以下的HTTP响应包可以使得差不多25%的测试防火墙在使用Firebox或者Safari的时候被绕过:

  HTTP/1.1 200 ok

  Transfer-Encoding: x chunked

  3

  MAL

  4

  WARE

  0

  还有几种方法可以把Transfer-Encoding隐藏掉来绕过防火墙,例如,在一些特定的地方添加空格或者其他的字符。浏览器经常忽略这些特征而继续解析响应体。

  除此以外,被测试的防火墙中还有20%的防火墙在解析扩展块的时候没有正确处理这些,这些都能导致绕过防火墙。

好文打赏,给Ta鼓励
扫一扫用手机阅读本文
Tags:原理  理解  解析  传输  绕过  防火  防火墙  火墙  
  • 相关搜索
图片推荐
    家电成电商“五一”博弈焦点 线下促销热度不输线上

    家电成电商“五一”博弈焦点 线下促销热度不输线上

    五一黄金周来临,各大电商平台将目光聚焦在家电上,掀起了促销活动。除了发放代金券、满减等低价策略外,今年各大电商更将重心转移到拼物流、拼售后上。除电商外,今年五一线下实体商店也积极促销,部分品类商品的促
    互联网公司愚人节营销怎么玩?高科技、借力打力……

    互联网公司愚人节营销怎么玩?高科技、借力打力……

    4月1,是个让人乐开怀的日子,仿佛所有的喜事都在今天降临,虽然这福泽只维持了十分钟、一个小时或者一天  2013年这一天,支付宝玩意念支付,据说只要盯着显示屏,默念需要转账的人的姓名,屏幕上就会出现联
    从小米手机营销策略 站长们能学到什么

    从小米手机营销策略 站长们能学到什么

    近日,关于红米手机已被传的是沸沸扬扬,小米官方宣布即将出台,红米手机在8月12日限量十万台开抢,红米手机的首发地是小米官方认证空间。799元/4G/双模/4.7寸的红米手机,再次激起米粉们的热情。  
    淘宝客营销实战:如何实现快速被动加好友(一)

    淘宝客营销实战:如何实现快速被动加好友(一)

    不得不承认,个人运作淘宝客,最容易赚钱的渠道还是QQ,尽管淘宝联盟各种规则变更都在促进网站渠道的发展,但是,个QQ的优势相比,这些变化,对于个人网站操作者来说,无异于杯水车薪。    运作QQ淘宝客,
    有意思的国内外著名互联网企业的名字文化

    有意思的国内外著名互联网企业的名字文化

    前不久,马云在2018阿里巴巴校友见面会上详细解读了阿里巴巴、天猫、平头哥等名字的由来。不得不说,互联网公司的名字文化真的十分有意思,在这里小编搜刮了国内外著名互联网企业的取名来历,让大家一观。阿里巴
    我们应该如何看待今年的央视315晚会?

    我们应该如何看待今年的央视315晚会?

    每年的315晚会,都会有几家欢喜几家愁。2017年也不例外,晚会开场没多久,互动百科官方微博就挂了一张祖宗十八代的图,表达了自己的意见。  而在问答文章关于315晚会的提问中,获得5000多赞的回答居
    专注互联网营销生态 蜜芽荣获2016年“营销效果奖”

    专注互联网营销生态 蜜芽荣获2016年“营销效果奖”

    2016年12月16日,国内年度零售盛宴百度零售行业沙龙在广州海航威斯汀酒店拉开帷幕。包括天猫、京东、亚马逊、蜜芽等知名互联网电商代表出席。沙龙中,还颁发了备受瞩目的四项年度大奖。其中,蜜芽团队以优异
    熊晓鸽:90后创业者中一定会诞生新的BAT

    熊晓鸽:90后创业者中一定会诞生新的BAT

    熊晓鸽  熊晓鸽:这个时代的创业者是幸运的  5月18日,IDG资本创始合伙人熊晓鸽在接受新京报记者专访时表示,在这个时代创业的人是幸运的。未来,80后、90后里一定会出现下一代BAT。这一次,他接受
你是怎么知道非凡网赚网的?
  •   
  • 联系QQ 邮箱:976382653@qq.com 微信:976382653
    在线留言
    发布软文
    广告自助购
    文章调用
    常见问题
    保存到桌面