上传漏洞解析-小韩网站编程安全系列二
作者:小韩 来源:蓝色经典 发布时间:2007-07-13 10:08:00
不算前言的前言
前两天小韩简单写了写关于在网站编程中跨站漏洞的一些知识,如果你还没有看到,那么为什么不现在就去看看呢:跨站漏洞解析-小韩网站编程安全系列一。
你是否经常遇到自己的网站被人写入了iframe的挂马代码,你是否发现自己网站被入侵,而只发现有用户上传了某个貌似图片的文件,而实际上内容确实ASP木马呢,请看本期小韩网站编程安全系列。
今天继续我们的专题--小韩网站编程安全系列。在这一篇文章中,你将学到关于上传漏洞的一些知识,在本文中我们以ASP为例,来讲解上传漏洞的原理、成因以及防护。
什么是上传漏洞
上传漏洞是一个非常恐怖的漏洞,如果你的程序里面有这种漏洞,那么恶意攻击者可以直接向你的服务器上传一个webshell(又称ASP木马、PHP木马等即利用服务器端的文件操作语句写成的 * 页,可以用来编辑你服务器上的文件),从而控制你的网站。
那么,上传漏洞是怎么样一种漏洞呢。
一般对于上传漏洞的概念定义如下:由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件。打个比方来说,如果你使用windows服务器并且以asp作为服务器端的 * 站环境,那么在你的网站的上传功能处,就一定不能让用户上传asp类型的文件,否则他上传一个webshell,你服务器上的文件就可以被他任意更改了。
相对于我前面所谈到的跨站漏洞,不得不承认,上传漏洞对于网站的危害是致命的,那么,上传漏洞是如何产生的呢。
我们知道,在WEB中进行文件上传的原理是通过将表单设为multipart/form-data,同时加入文件域,而后通过HTTP协议将文件内容发送到服务器,服务器端读取这个分段(multipart)的数据信息,并将其中的文件内容提取出来并保存的。通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名(为了防止重复),并且加上原始文件的扩展名来保存到服务器上。
慢着,就在这个扩展名这里就出了问题了,究竟是什么问题呢,我们开启一个新的章节来详细说说,上传漏洞的几种形式和各自的防护方法。
上传漏洞的几种形式及其防护
第一、 完全没有处理。
完全没有处理的情况不用我说,看名字想必大家都能够了解,这种情况是程序员在编写上传处理程序时,没有对客户端上传的文件进行任何的检测,而是直接按照其原始扩展名将其保存在服务器上,这是完全没有安全意识的做法,也是这种漏洞的最低级形式,一般来说这种漏洞很少出现了,程序员或多或少的都会进行一些安全方面的检查。
第二、 将asp等字符替换。
我们再看一些程序员进阶的做法,程序员知道asp这样的文件名是危险的,因此他写了个函数,对获得的文件扩展名进行过滤,如:
Function checkExtName(strExtName)
strExtName = lCase(strExtName) '转换为小写
strExtName = Replace(strExtName,"asp","") '替换asp为空
strExtName = Replace(strExtName,"asa","") '替换asa为空
checkExtName = strExtName
End Function
使用这种方式,程序员本意是将用户提交的文件的扩展名中的“危险字符”替换为空,从而达到安全保存文件的目的。粗一看,按照这种方式,用户提交的asp文件因为其扩展名asp被替换为空,因而无法保存,但是仔细想想,这种方法并不是完全安全的。
突破的方法很简单,只要我将原来的webshell的asp扩展名改为aaspsp就可以了,此扩展名经过checkExtName函数处理后,将变为asp,即a和sp中间的asp三个字符被替换掉了,但是最终的扩展名仍然是asp。
因此这种方法是不安全的。如何改进呢,请接着往下看。
猜你喜欢
- 1. Connected. Waiting for response. 220 Serv-U FTP Server v4.0 fo
- 邮件系统的选型与架构专题(上篇) 邮件系统服务器的安装和配置有关Qmail邮件系统的安装介绍很多,这里不再赘述。下面主要说明搭建Qmail邮
- 一旦你精心建设好了自己的站点,就要把它发布出去。把你的Web站点提交给搜索引擎、目录和相关的站点是成功的关键。如果你用错误的方式推广自己站点
- 最近google补充材料特别多,我个人感觉是google的算法有所调整,更多的网页被打入冷宫成为补充材料。在“Google“补充资料”成因及
- 10月13日消息,金蝶友商网总经理冯颉在做客网易科技访谈室时透露,友商网正积极寻找适合的收购对象,将通过并购来加强业务。冯颉向网易科技表示,
- 1. 自定义错误页虽然自定义错误页很简单,但只有少数管理员有效地利用了它。管理员可以在MMC中将HTTP错误信息映像到服务器上的绝对URL或
- 由于ASP它本身是服务器提供的一贡服务功能,特别是最近由dVBbs的upfile文件出现漏洞以来,其高度的隐蔽性和难查杀性,对网站的安全造成
- 10月13日消息,记者获悉,第三方支付服务商——首信易支付 (PayEase) 近日荣获 &
- 个人站长如何选择做站项目,说白了就是如何给自己的网站定位,确定自己的网站做什么主题,献给打算做站或者重新做站的站长以为他们选择做站主题提供个
- 交换链接对象包括:1. 已经加入搜索引擎分类目录的相关网站所有主要搜索引擎中的与你的行业相关的目录下的网站,都是理想的链接对象。2.与你的竞
- 在Google搜索结果最后一页会提示以下内容:为了提供最相关的结果,我们省略了与已显示的N个类似的条目。如果提问者之前对Google搜索结果
- 博客程序,特别是WordPress,Zblog等等因为页面结构简单轻量,文章相关度粘性强,所以很适合针对搜索引擎的优化。那么我们要做的就是发
- 熟悉Firefox的人应该都知道,当你在页面上单击鼠标中键的时候,就可以启动Firefox的Autoscroll功能,并且在页面上会出现一个
- 无论是做什么事情,有一颗平常心是非常必要的。但是往往很少有人做到,于是做到的人成功了,更多的人在成功的门外徘徊不前。当然对于成功,不同人有不
- 有Godaddy用户问怎样续费和取消电子邮件账户,可以用Account Manager里的Manage Email页面来为电子邮件按帐户续费
- 备份:1、停止DNS服务2、打开regedit,找到HKLMsystemcurrentcontrolsetservicesdns3、将DNS
- 决定一个网站成败命运的,不是视觉设计,而是设计的可用性和有效性。访问网页的用户们握着鼠标,决定一切,“以用户为中心&am
- Web UI是从Windows 2000就开始集成的Web远程管理服务。通过该服务,网络管理员在客户端通过IE浏览器就可以对服务器的常用服务
- 今天谈一个关于搜索引擎优化细节得有点无聊的问题。以前在论坛里有朋友问,什么样的文章长度有利于SEO?首先先说两句基本上永远正确的废话原则:1
- 11月26日消息,谷歌宣布翻译工具(http://translate.g.cn 或者 http://翻译.g.cn)今日全新改版,除了整体产