Bypass ecshop3.x WAF-ecshop 2.x/3.x无限制getshell 漏洞分析(下)

Exploit

ecshop 3.x bypass waf POC

Analyze

echsop 3.x bypass WAF

用上一次构造的POC打一下,发现被拦了。

搜一下这个字符串。

includes/safety.php

发现3.x带有一个WAF,简单的看了一下,主要是通过正则匹配关键字进行过滤的。

所以POC中不能出现被拦截的关键字,比如 select,union等。

对比了一下2.x和3.x存在漏洞的地方,发现其他位置并没有进行改动。

这里有一个trick可以bypass这个waf - 使用反序列化的escaped binary string类型。

php的反序列化对于转义字符存在一个特性,在序列化和反序列化的时候可以对转义字符进行处理。

众所周知,PHP可以对双引号内的数据进行转义。如图,

所以当然在序列化的时候也可以用。

在反序列化的时候设置数据类型为S时,也可是使用这个特性。(目前没有找到办法可以序列化成S类型,只能通过手动设置)

这里注意一下,S类型的数据长度是转义后的长度,而不是输入数据的长度。

所以刚才的POC注入的SQL语句转成S类型就好了。

下面是POC。

说点废话

这个漏洞的信息量比较大,还是比较值得学习的。中间电脑拿去修了,所以上下篇隔得时间稍微有点久,望谅解。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180917G210K900?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券