跨站Script攻击和防范-ASP漏洞集(续)

攻击

  跨站Script攻击和防范
  第一部分:跨站Script攻击
  每当我们想到黑客的时候,黑客往往是这样一幅画像:一个孤独的人,悄悄进入别人的服务器中,进行破坏或者窃取别人的秘密资料。也许他会更改我们的主页,甚者会窃
  取客户的信用卡号和密码。另外,黑客还会攻击访问我们网站的客户。与此同时,我们的服务器也成了他的帮凶。微软称这种攻击为“跨站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">Hello: <%= 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浏览器会给你警告并显示它的可信籁程度。由用户决定是否相信这个控件。这样一来系统的安全性就增加了。
    但是,对于那些没有多少经验的用户来说,他们往往不自觉地对原来的设置进行了修改,让这些控件在没有任何提示的情况下就下载了。另外,对一个新手来说,即使
  在有提示的情况下也会不加思索地下载那些没作任何标记的控件。在我们所举的例子中,由于你对该站点的信任,改了浏览器的设置,这样,ActiveX控件在不经过任何提
  示的情况下就下载,并在你的机器上不知不觉地开始运行。
  
  
  四、16进制编码的ActiveX Script 攻击
    要把用心不良的标签和script区分出来是一件非常困难的事。Script还可以16进制的形式把自己藏起来。让我们看看下面这个E-mail范例好吗?它是以16进制的形式
  被发送出去的:
    这几乎是一封完整的邮件,里面包含了以16进制伪造的URL参数:sender=mynicesite.com。当用户点击链接时,用户的浏览器就会直接开始第一例所说的处理过程而
  弹出警告窗口。

时间: 2024-12-02 17:09:10

跨站Script攻击和防范-ASP漏洞集(续)的相关文章

跨站Script攻击和防范-ASP漏洞集

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

跨站Script攻击(三)

跨站Script攻击(三) 第二部分:跨站Script攻击的防犯 一.如何避免服务器受到跨站Script的攻击 值得庆幸的是,防止跨站Script攻击的技术正趋于完善.目前可采取这几种方式来防止跨站Script的攻击: 1.对动态生成的页面的字符进行编码 2.对输入进行过滤和限制 3.使用HTML和URL编码 1.对动态生成的页面的字符进行编码 你们首先要采用的就是对动态生成页面的字符进行编码,你必须这样做,不然黑客很有可能更改你的字符设置而轻易地通过你的防线.如果我们的网站是个英语网站,这样只

跨站Script攻击(一)

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

跨站Script攻击(3)

攻击 第二部分:跨站Script攻击的防犯 一.如何避免服务器受到跨站Script的攻击 值得庆幸的是,防止跨站Script攻击的技术正趋于完善.目前可采取这几种方式来防止跨站Script的攻击: 1.对动态生成的页面的字符进行编码 2.对输入进行过滤和限制 3.使用HTML和URL编码 1.对动态生成的页面的字符进行编码 你们首先要采用的就是对动态生成页面的字符进行编码,你必须这样做,不然黑客很有可能更改你的字符设置而轻易地通过你的防线.如果我们的网站是个英语网站,这样只要我们把字符编码设成拉

跨站Script攻击(二)

跨站Script攻击(二) 二. 用E-Mail进行跨站Script攻击 跨站script攻击用在列表服务器,usenet服务器和邮件服务器来得特别容易.下面还是以MyNiceSite.com网站为例进行说明.由于你经常浏览这个网站,它的内容也的确让你爱不爱不释手,因此在不知不觉中你就把浏览器的改成了总是信任这个动态网站内容的设置. MyNiceSite.com网站总是通过出售征订它们Email信件的邮箱地址来获得收入,这的确是一种不太好的办法.于是我买了它的一份邮箱地址.并发了大量的邮件给你们

浅谈跨站式攻击(XSS)实战与漏洞修补

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 发这篇文章还是想说明一下,黑客在我个人认为是一个褒义词,而不是大家所认为的那些偷鸡摸狗之小人. 现在做一个网站,也非常简单,买一个域名,一个空间,在网上下载一套CMS,一个站就成立,而很多这样的站长朋友,其实对网站脚本方面是不懂的,所以当网站被黑,很少有人直接去源码找原因. 今天的实战案例就以"网域高科行业B2B商务平台"

给你的FileSystemObject对象加把锁-ASP漏洞集

filesystemobject|对象    现在国内提供支持ASP的免费空间越来越多了,对于ASP爱好者来说无疑是个好的势头,但是很多提供免费ASP空间的站点都没有对FileSystemObject这个对   象做出任何限制,这也就导致了安全问题.比如,今年愚人节"东莞视窗"所有的主页都遭到了黑客的攻击,其实做这件事情很简单,就是使用FileSystemObject对象,   具体的程序就不再讨论了.而另外一个比较有名的提供ASP空间的站点"网界"同样也存在这个安

asp漏洞集

 众所周知windows平台漏洞百出,补丁一个接一个,但总是补也补不净.我把我所知道的20种看asp源码的方法总结了一下,并且用c#写了个应用程序来扫描这些漏洞,发现虽然大部分的方法已经不起做用,但还是有一些漏网之鱼的:),结果这两天真看到不少站的源代码,包括数据库密码,如果用access的可以把库下载下来,而用sql  server的如果不是用udl,dsn等来连接的话,也可以通过tcp/ip网络库连接到数据库,为所欲为呀.先面把这20种方法列在下面:  .  %81  :ATA  %2e 

MS IIS server的ASP安全缺陷(MS,缺陷)-ASP漏洞集

iis|server|安全   涉及程序:   Microsoft IIS server   描述:   IIS使有权上传和使用ASP程序的用户能更改任何文件   详细:   这是IIS的一个非常严重的漏洞,即使是IIS4.0,仍然没有补上这个漏洞: 你建立   如http://www.cnns.net/frankie/text/aspwrite.txt这样一个简单的asp程序取名为write.asp,注意,程序不允许换行!   然后上传到任何一个Web目录中(允许脚本执行),如:   http