当前位置: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评价)


漏洞评价:

评论

  1. 2013-03-27 22:18 | Pnig0s ( 实习白帽子 | Rank:46 漏洞数:2 | The quiter you are,the more you're able ...)

    我看好像safe3提交到seclist上了。。。不知道是这个洞不~

  2. 2013-03-28 17:44 | xsjswt ( 普通白帽子 | Rank:156 漏洞数:49 | 我思故我猥琐,我猥琐故我强大)

    今天看到360的微博感觉,同一天发现这个漏洞并提交给了naxsi,真的太巧了。。 =======这不是巧,这说明楼主的一举一动360都盯着 @风萧萧

  3. 2013-03-29 12:50 | possible ( 普通白帽子 | Rank:373 漏洞数:32 | everything is possible!)

    这种绕过 在什么情况下 起作用呢?s%elect -> sect 这种即使绕过 在数据库中 能执行?

  4. 2013-04-10 11:30 | hack2012 ( 实习白帽子 | Rank:31 漏洞数:3 | 关注信息安全 http://www.waitalone.cn/)

    我也觉得,即使绕过了能执行吗?