每当我们想到黑客的时候,黑客往往是这样一幅画像:一个孤独的人,悄悄进入别人的服务器中,进行破坏或窃取别人的秘密资料。也许他会更改我们的主页,甚者会窃取客户的信用卡号和密码。另外,黑客还会攻击访问我们网站的客户。和此同时,我们的服务器也成了他的帮凶。微软称这种攻击为“跨站script”攻击。而这种攻击大多数都发生在网站动态产生网页的时侯,但黑客的目标并不是您的网站,而是浏览网站的客户。

跨站script攻击的说明

在一本名为<<ADVISORY CA--2000-02>>的杂志中,CERT警告大家:假如服务器对客户的输入不进行有效验证,黑客就会输入一些恶意的HTML代码,当这些HTML代码输入是用于SCRIPT程式,他们就能利用他来进行破坏,如插入一些令人厌恶的图片或声音等,同时,也能干扰了客户正确浏览网页。

我们知道,有些朋友曾被诱导到一些可疑的免费网站,他们得到的仅仅是10到20个小的窗口,这些窗口常常伴随着由JAVA 或 JAVASCRIPT生成的失效安钮,这被称为鼠标陷阱。关闭这些窗口是徒劳的,每当我们关闭一个窗口,又会有10几个窗口弹出。这种情况常常发生在管理员没在的时侯发生。鼠标事件是黑客利用跨站SCRIPT方法攻客户的典型范例。

恶意的标签和SCRIPT不单纯的恶作剧,他们甚至能够窃取资料和捣毁系统。一个聪明的甚至是不够聪明的黑客都能够使用SCRIPT干扰或改变服务器数据的输入。利用SCRIPT代码也能攻击客户系统,让您的硬盘尽损。而且您要知道,在您一边使用服务器的时候,黑客的SCRIPT也正在您服务器里安全的地方运行着的呀!假如客户对您的服务器很信认,同样他们也会信任那些恶意的SCRIPT代码。甚至这个代码是以〈SCRIPT〉或〈OBJECT〉的形式来自黑客的服务器。

即使使用了防火墙(SSL)也不能防止跨站SCRIPT的攻击。那是因为假如生成恶意SCRIPT代码的设备也使用了SSL,我们服务器的SSL是不能辨别出这些代码来的。我们难道就这样把客户曾那么信任的网站拱手让给黑客吗?而且有这种破坏的存在,会让您网站名誉尽损的。

一、跨站SCRIPT攻击示例:

根据CERT的资料,动态输入大致有这几种形式:URL参数,表格元素,COOKISE连同数据请求。让我们来分析一下,这个只有两个页面的网站,网站名为:MYNICESITE.COM。第一页使用一张表格或COOKIE来获取用户名:

<%@ Language=VBScript %>

<% If Request.Cookies("userName") <> "" Then

Dim strRedirectUrl

strRedirectUrl = "page2.asp?userName="

strRedirectUrl = strRedirectUrl & Response.Cookies("userName")

Response.Redirect(strRedirectUrl)

Else %>

<HTML>

<HEAD>

<TITLE>MyNiceSite.com Home Page</TITLE>

</HEAD>

<BODY>

<H2>MyNiceSite.com</H2>

<FORM method="post" action="page2.asp">

Enter your MyNiceSite.com username:

<INPUT type="text" name="userName">

<INPUT type="submit" name="submit" value="submit">

</FORM>

</BODY>

</HTML>

<% End If %>

第二页返回用户名以示欢迎:

<%@ Language=VBScript %>

<% Dim strUserName

If Request.QueryString("userName")<> "" Then

strUserName = Request.QueryString("userName")

Else

Response.Cookies("userName") = Request.Form("userName")

strUserName = Request.Form("userName")

End If %>

<HTML>

<HEAD></HEAD>

<BODY>

<H3 align="center">Hell <%= strUserName %> </H3>

</BODY>

</HTML>

当您正常常输入文字时,一切都很正常。假如您输入Script代码:<SCRIPT>alert('Hello.';</script>,JavaScript警告标签就会弹出来:

在您下一次访问时,这个警示标签同样会出现;这是因为这个Script代码在您第一次访问的时后就已留在cookie中了。这是个简单的跨站攻击的范例。

假如您认为这是个特别情况,您也不妨到网上别的地方看看,亲自试一下。我曾对一些大型的政府网站、教育网站连同商业网站进行过测试,他们当中的确有部分出现了以上所说的情况,我甚至发现了我经常使用信用卡的网站也居然对输入不进行任何过滤,想想真是可怕。

二、 用E-Mail进行跨站Script攻击

跨站script攻击用在列表服务器,usenet服务器和邮件服务器来得特别容易。下面还是以MyNiceSite.com网站为例进行说明。由于您经常浏览这个网站,他的内容也的确让您爱不爱不释手,因此在不知不觉中您就把浏览器的改成了总是信任这个动态网站内容的配置。

MyNiceSite.com网站总是通过出售征订他们Email信件的邮箱地址来获得收入,这的确是一种不太好的办法。于是我买了他的一份邮箱地址。并发了大量的邮件给您们。在信中我告诉您们尽快访问这个网 站,并检查您们帐户使用的最新情况。为了让您们感到方便,我在这信中也作了链接。我在这链接URL中的username参数中舔加了script代码。有些客户在不知不觉中就点击了这个链接,也就是说上了我的当,同时我也从中得到了好处:

他是这样工作的,当您点击这个链接的时后,在链接里的script代码就会引导您所用浏览器去下载我的JavaScript程式并执行他。我的Script检查到您使用的是IE浏览器后,就着手下载ActiceX控件 particularlyNasty.dll。因为之前您已把这个网站的内容认为总是安全的,这样,我的script代码和Active 控件就能在您机器上自由自在的运行了。

三、 Activex攻击说明

在讨论ActiveX时,CERT和微软都没提到跨站script方法所带来的的危险。W3C在<<安全常见问题解答>>中对ActiveX的安全问题作了比较详尽的说明。Java applet对系统的控制受到严格限制。SUN研发他时就规定,只有那些对系统的安全不构成威胁的操作才被允许运行。

在另一方面,ActiveX对系统的操作就没有严格地被限制。假如一但被下载,就能够象安装的可执行程式相同做他们想干的事情。针对这一特点IE浏览器也作了某些限制,如对于那些不安全的站点,在他的默认配置中就会不允许您进行下载或会给您警告的提示。正在基于ActiveX进行研发的公司,如VeriSign公司,他们对ActiveX控件都给编了号。当您在下载控件的时后,IE浏览器会给您警告并显示他的可信籁程度。由用户决定是否相信这个控件。这样一来系统的安全性就增加了。

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!