Web基础渗透与防护(第2版)课件 项目四文件上传攻击与防御.pptx

Web基础渗透与防护(第2版)课件 项目四文件上传攻击与防御.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

项目四文件上传攻击与防御;项目4文件上传攻击与防御

;在项目描述中,攻击者向服务器上传恶意文件,以达到在服务器中执行恶意文件的目的,进而达到恶意攻击服务器甚至控制服务器的目的。针对上述情况,本项目的任务布置如下所?示。;;1、文件上传漏洞

(1)文件上传漏洞简介

如果程序里面有这种漏洞那么恶意攻击者可以直接向程序所在服务器上传一个webshell(又称ASP木马、PHP木马等,即利用服务器端的文件操作语句写成的动态网页,可以用来编辑服务器上的文件),从而控制整个网站或者是服务器。

一般对于上传漏洞的概念定义如下:由于程序员在对用户文件上传部分的控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上传可执行的动态脚本文件。例如,如果使用windows服务器并且以asp作为服务器端的动态网站环境,那么在网站的上传功能处,就一定不能让用户上传asp类型的文件,否则他上传一个webshell,服务器上的文件就可以被他任意更改了。

相对于跨站漏洞,上传漏洞对于网站的危害是致命的,那么上传漏洞是如何产生的呢。在WEB中进行文件上传的原理是通过将表单设为multipart/form-data,同时加入文件域,而后通过HTTP协议将文件内容发送到服务器,服务器端读取这个分段(multipart)的数据信息,并将其中的文件内容提取出来并保存。通常,在进行文件保存的时候,服务器端会读取文件的原始文件名,并从这个原始文件名中得出文件的扩展名,而后随机为文件起一个文件名(为了防止重复),并且加上原始文件的扩展名来保存到服务器上。在扩展名这里会出问题,究竟是什么问题呢,需要分析上传漏洞的几种形式和各自的防护方法。

;(2)文件上传漏洞的几种形式及其防御方?法。

1.完全没有处理

完全没有处理的情况不需要解释,看名字都能够理解,这种情况是程序员在编写上传处理程序时,没有对客户端上传的文件进行任何的检测,直接按照其原始扩展名将其保存在服务器上,这是一种完全没有安全意识的做法,也是这种漏洞的最低级形式,一般来说这种漏洞很少出现了,程序员或多或少的都会进行一些安全方面的检查。

;2.将asp等字符替换

再看一些程序员进阶的做法,程序员知道asp这样的文件扩展名是危险的,因此使用函数,对获得的文件扩展名进行过滤,如:

FunctioncheckExtName(strExtName)

strExtName=lCase(strExtName)转换为小写

strExtName=Replace(strExtName,asp,)替换asp为空

strExtName=Replace(strExtName,asa,)替换asa为空

checkExtName=strExtName

EndFunction

使用这种方式,程序员本意是将用户提交的文件的扩展名中的“危险字符”替换为空,从而达到安全保存文件的目的。按照这种方式,用户提交的asp文件因为其扩展名asp被替换为空,因而无法保存,但是仔细想想,这种方法并不是完全安全的。

突破的方法很简单,只要将原来的webshell的asp扩展名改为aaspsp就可以了,此扩展名经过checkExtName函数处理后,将变为asp,即a和sp中间的asp三个字符被替换掉了,但是最终的扩展名仍然是asp。因此这种方法也是不安全的。

;3)利用黑名单过滤

由前面知,替换存在漏洞。可以采用直接比对扩展名是否为asp或者asa,可采用下面的程序:

FunctioncheckExtName(strExtName)

strExtName=lCase(strExtName)转换为小写

IfstrExtName=aspThen

checkExtName=False

ExitFunction

ElseIfstrExtName=asaThen

checkExtName=False

ExitFunction

EndIf

checkExtName=True

EndFunction

使用这个程序来保证asp或者asa文件在检测时是非法的,这也称为黑名单过滤法。

;黑名单过滤法是一种被动防御方法,只可以将已知危险的扩展名加以过滤,而实施上,可能未知有某些类型的文件是危险的,由上面这段程序来知,将asp或者asa类型的文件可以在服务器端被当作动态脚本执行。事实上,在windows2000版本的IIS中,默认也对cer文件开启了动态脚本执行的处理,而如果此时不知道,那么将会出现漏洞。

实际中,不只是被当作动态网页执行的文件类型有危险,被当作SSI处理

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档