漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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内容为
冲洗访问该url,如下图
明显解码出问题了。无法正常解码了。
经过分析url解码的时候,%后面如果是十六进制字符并且下一个字符不是十六进制字符,那么就无法正常解码。
今天看到360的微博感觉,同一天发现这个漏洞并提交给了naxsi,真的太巧了。。
漏洞证明:
如上图
修复方案:
修改函数把无法正常解码的输入给当作正确的返回出来
版权声明:转载请注明来源 kindle@乌云
漏洞回应
厂商回应:
未能联系到厂商或者厂商积极拒绝
漏洞Rank:10 (WooYun评价)