危险无处不在 Html标签带来的安全隐患

发表于:2007-06-23来源:作者:点击数: 标签:
WWW服务是因特网上最重要的服务之一,提供给客户各种各样的信息资源,而把这种信息资源组织起来的一个很重要的东西就是Html超文本语言,然后经过应用的发展就出现了其他的如UBB等标签但是最终都是以Html代码来实现的。 经过研究发现,即使是最 安全 的安全代

          WWW服务是因特网上最重要的服务之一,提供给客户各种各样的信息资源,而把这种信息资源组织起来的一个很重要的东西就是Html超文本语言,然后经过应用的发展就出现了其他的如UBB等标签但是最终都是以Html代码来实现的。

经过研究发现,即使是最安全的安全代码(已经排除了通常所说的Xss漏洞)也无法避免另外一种恼人的攻击方式,配合不严格的程序,可能被人利用产生更大的威胁。

  我们就以现在广泛存在于论坛,文章系统,Blog系统等脚本程序中的[img]标签也就是转化后的标签举例来说明这个被忽视的安全问题吧!首先我来谈谈自己对这个标签以及浏览器对这个标签的处理过程。首先看看下面这个UBB代码:[IMG]/UpLoadFiles/NewsPhoto/oveshell.jpg[/IMG],然后通过脚本程序的转换成为了<img src=/UpLoadFiles/NewsPhoto/oveshell.jpg>。<img>标签

  是在当前的页面嵌入一个图片,现在的论坛程序在发帖子以及个人头像那里都有这个功能,当浏览器遇到这个Html标记的时候就会根据src的地
址,这里是/UpLoadFiles/NewsPhoto/oveshell.jpg去寻找网络资源,当找到这个图片的时候就会访问并且下载这个资源然后在本地进行解析,
在浏览器里显示出这个图片,如果找不到这个资源就会显示一个红叉表示出错了。这里/UpLoadFiles/NewsPhoto/oveshell.jpg是个很正常的图
片,所以一切都顺利进行,但是不知道大家想过没有,如果这个资源是其他类型的资源譬如一个网页一个eXe文件或者是一个asp页面,当不是图片类型文件的时候,结果会怎么样呢?

  答案很明显,是图片显示一个红X,我们的Exe文件也没有下载,Html页面也没有执行,这是理所当然的东西,因为IE或者其他浏览器会把取得的资源当作图片解析,这样就会产生错误从而显示红X了。到这里大家也许还觉得没有什么用,但是如果我们把图片的地址改成
http://127.0.0.1:88/imgtest/test.asp?user=shell这样的形式呢?其中test.asp里有如下内容的话

<%
dim fso,file //定义Fso对象

Const ForReading = 1, ForWriting = 2, ForAppending = 8
Set fso = Server.createObject("Scripting.FileSystemObject")
path = server.mappath("imgtest.txt") //打开同目录imgtest.txt
set file=fso.opentextfile(path, ForAppending, TRUE)
file.write("有人来了: ") //写内容
file.write(request.Servervariables("QUERY_STRING"))
file.write vbCrLf
file.close
set file = nothing
set fso = nothing
%>

原文转自:http://www.ltesting.net