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

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

缺陷编号:wooyun-2013-020775

漏洞标题:ngx_unescape_uri编码漏洞

相关厂商:waf

漏洞作者: kindle

提交时间:2013-03-27 19:39

修复时间:2013-03-27 19:39

公开时间:2013-03-27 19:39

漏洞类型:未授权访问/权限绕过

危害等级:高

自评Rank:10

漏洞状态:未联系到厂商或者厂商积极忽略

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-03-27: 积极联系厂商并且等待厂商认领中,细节不对外公开
2013-03-27: 厂商已经主动忽略漏洞,细节向公众公开

简要描述:

上周六我开源了ngx_lua_waf
项目地址:https://github.com/loveshell/ngx_lua_waf
起初对url的处理流程是使用ngx_lua调用ngx.unescape_uri函数来做解码,然后替换里面的%为空,然后进行正则过滤,防止union se%lect这种漏洞绕过。

详细说明:

后来问题出现了,我输入union s%elect发现居然没拦截。。。。
然后我果断修改ngx_lua_waf的check的print内容为

ngx.unescape_uri(ngx.var.request_uri)


冲洗访问该url,如下图

12.jpg


明显解码出问题了。无法正常解码了。
经过分析url解码的时候,%后面如果是十六进制字符并且下一个字符不是十六进制字符,那么就无法正常解码。
今天看到360的微博感觉,同一天发现这个漏洞并提交给了naxsi,真的太巧了。。

漏洞证明:

如上图

修复方案:

修改函数把无法正常解码的输入给当作正确的返回出来

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


漏洞回应

厂商回应:

未能联系到厂商或者厂商积极拒绝

漏洞Rank:10 (WooYun评价)