以前针对SOHU的BLOG做过测试,确认证明了此类攻击的可行性,最近听说网易的BLOG人气不错,那么我们就来挖掘一下漏洞,类似这种跨站脚本蠕虫首先必须找一个页面通用的地方测试是否能写入XSS,比如SOHU BLOG的个人档案,关于网易我已经找到了一处,就在自定义模块功能,如图1
查了一下Marquee标记,发现当Marquee元素开始显示内容时会触发onstart事件,OK那么我们就可以构造XSS了,例如图4:
现在已经有可以写入XSS的地方,那么我们就可以开始构造攻击脚本了,我在XSS Phishing这篇文里提过XSS最大的魅力就是在于能劫持用户的浏览器,甚至模拟用户的操作,那么怎么做到这些呢?很简单,利用AJAX技术,例如构造GET提交:
var url = "http://www.163.com/login.php"
var xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
xmlhttp.open("GET", url+"参数", false);
xmlhttp.send();
WEB程序只是接受参数做出反应,XSS劫持浏览器后的操作是继承了用户的会话与 Cookies认证的。
下面我们来做一个实验,利用网易的好友功能,如图5:
随意加入一个好友,同时对这次操作抓下包,
我们来模拟这次POST提交
只是简单的代码就可以模拟用户的操作,再完成复杂的功能也是没有问题的,想一想如果是模拟用户自己创建含有XSS的自定义模块,传染整站用户,后果将不堪设想。
最后再郑重提醒下各门户站点,一定要重视XSS漏洞,否则发生类似MYSPACE事件爆发蠕虫事件也只是时间问题。