跨站Script攻击(一)
每当我们想到黑客的时候,黑客往往是这样一幅画像一个孤独的人,静静进入别人的服务器中,进行破坏或者窃取别人的秘
密资料。也许他会更改我们的主页,甚者会窃取客户的信用卡号和密码。另外,黑客还会攻击访问我们网站的客户。与此同时,我
们的服务器也成了他的帮凶。微软称这种攻击为“跨站script”攻击。而这种攻击大多数都发生在网站动态产生网页的时侯,但黑
客的目标并不是你的网站,而是浏览网站的客户。
跨站script攻击的说明
在一本名为%26lt;%26lt;ADVISORY CA--2000-02%26gt;%26gt;的杂志中,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来获取用户名
%26lt;%@ Language=VBScript %%26gt;
%26lt;% If Request.Cookies(%26quot;userName%26quot;) %26lt;%26gt; %26quot;%26quot; Then
Dim strRedirectUrl
strRedirectUrl = %26quot;page2.asp?userName=%26quot;
strRedirectUrl = strRedirectUrl %26amp; Response.Cookies(%26quot;userName%26quot;)
Response.Redirect(strRedirectUrl)
Else %%26gt;
%26lt;HTML%26gt;
%26lt;HEAD%26gt;
%26lt;TITLE%26gt;MyNiceSite.com Home Page%26lt;/TITLE%26gt;
%26lt;/HEAD%26gt;
%26lt;BODY%26gt;
%26lt;H2%26gt;MyNiceSite.com%26lt;/H2%26gt;
%26lt;FORM method=%26quot;post%26quot; action=%26quot;page2.asp%26quot;%26gt;
Enter your MyNiceSite.com username:
%26lt;INPUT type=%26quot;text%26quot; name=%26quot;userName%26quot;%26gt;
%26lt;INPUT type=%26quot;submit%26quot; name=%26quot;submit%26quot; value=%26quot;submit%26quot;%26gt;
%26lt;/FORM%26gt;
%26lt;/BODY%26gt;
%26lt;/HTML%26gt;
%26lt;% End If %%26gt;
第二页返回用户名以示欢迎
%26lt;%@ Language=VBScript %%26gt;
%26lt;% Dim strUserName
If Request.QueryString(%26quot;userName%26quot;)%26lt;%26gt; %26quot;%26quot; Then
strUserName = Request.QueryString(%26quot;userName%26quot;)
Else
Response.Cookies(%26quot;userName%26quot;) = Request.Form(%26quot;userName%26quot;)
strUserName = Request.Form(%26quot;userName%26quot;)
End If %%26gt;
%26lt;HTML%26gt;
%26lt;HEAD%26gt;%26lt;/HEAD%26gt;
%26lt;BODY%26gt;
%26lt;H3 align=%26quot;center%26quot;%26gt;Hello: %26lt;%= strUserName %%26gt; %26lt;/H3%26gt;
%26lt;/BODY%26gt;
%26lt;/HTML%26gt;
当你正经常输入文字时,一切都很正常。假如你输入Script代码%26lt;SCRIPT%26gt;alert('Hello.';%26lt;/script%26gt;,JavaScript警告标
签就会弹出来
在你下一次访问时,这个警示标签同样会出现;这是因为这个Script代码在你第一次访问的时后就已经留在cookie中了。这是
一个简单的跨站攻击的范例。
假如你认为这是一个非凡情况,你也不妨到网上别的地方看看,亲自试一下。我曾经对一些大型的政府网站、教育网站以及商
业网站进行过测试,他们当中的确有部分出现了以上所说的情况,我甚至发现了我经常使用信用卡的网站也居然对输入不进行任何
过滤,想想真是可怕。
from allasp
跨站Script攻击(一)
2000-08-21 10:35:42 作者
相关文章
- · Sun:JavaFX Mobile和JavaFX Script
- · Java Script与Java Applet的综合运用(三)
- · Java Script的应用技巧
- · 实用Script详解:一触即停的滚动信息栏
- · 教你学会Script在Oracle中的应用
- · 使用script查找DDL语句统计数据
- · Oracle DBA 常用 Script 第二部分(Tuning)
- · 简单在线备份 script
- · Oracle数据库 监看lock script
- · 常用sql script
- · 温柔的杀手—跨站ASP Script攻击
- · 可以近视替代remote script的代码
- · 跨站Script攻击(三)
- · 跨站Script攻击(二)
- · Microsoft 脚本编码器Script Encoder介绍(4)全中文
- · Microsoft 脚本编码器Script Encoder介绍(3)全中文
- · Microsoft 脚本编码器Script Encoder介绍(2)全中文
- · Microsoft 脚本编码器Script Encoder介绍(1)全中文
- · remote script文档(转载自微软)(九)
- · remote script文档(转载自微软)(八)
