《Web安全程序设计与实践》课件项目15_第1页
《Web安全程序设计与实践》课件项目15_第2页
《Web安全程序设计与实践》课件项目15_第3页
《Web安全程序设计与实践》课件项目15_第4页
《Web安全程序设计与实践》课件项目15_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

项目15文件解析漏洞【项目描述】本项目对文件解析漏洞和防护进行实训。本项目包含三个任务,首先建立一个具有文件解析功能的网站,接下来利用文件解析漏洞在目标网站上传并执行PHP木马,最后使用文件名字符串过滤结合修改Apache配置文件的方式防护文件解析漏洞的利用。通过本项目实训,可以解释和分析文件解析漏洞产生的原理和危害,能够防护文件解析漏洞。【知识储备】Apache服务器文件解析漏洞原理Apache服务器对文件扩展名的解析特性为按从右到左的顺序识别文件后缀,直至找到能匹配配置文件中设置的可以解析的后缀。在【任务1-4】节配置的PHP7解析类型为.php、.html和.htm,即PHP只对这三种类型的文件进行解析。如果在服务器存在一个名称为test.php.abc.xyz的文件,由于.abc和.xyz这两种文件后缀都不能识别,Apache就会把该文件识别成test.php并交给PHP解析。由于这是Apache服务器的一个解析特性,因此在任何版本的Apache服务器都存在该漏洞,攻击者可以上传一个文件名形如test.php.abc的PHP网页木马到服务器进,绕过网站对上传文件类型的限制。Apache服务器还有一个.htaccess配置文件解析漏洞。此文件可以提供在Web网站目录中改变Web配置的方法。比如,可以实现网页重定向、自定义错误页面、允许/阻止特定的用户的访问等。但是,如果在此文件中包含一条指令AddTypeapplication/x-httpd-php.jpg,那么Apache则可以把JPG类型的图片作为PHP解析。所以,攻击者可以先上传文件名为.htaccess的文件,再把PHP网页木马文件的扩展名修改为JPG,则可以作为PHP文件解析。因此,如果Apache打开了.htaccess的功能,必须要对此文件进行上传过滤。从解析特点可以看出,使用基于白名单的上传文件类型过滤,同时会对解析漏洞形成防护。因此推荐使用白名单的文件类型过滤。如果因为支持上传的文件类型复杂,必须要采用黑名单方式进行过滤,则必须要充分考虑解析漏洞。其它服务器解析漏洞文件解析漏洞在很多Web服务器都存在,比如IIS6.0、IIS7.5、Apache、Nginx等。例如,在Windows2003+IIS6.0组合的Web服务器,如果Web目录中有xxx.asp这样的目录名,那么所有这个目录下的文件不管扩展名是什么,都会被当作ASP文件来解析。另外,IIS6.0默认的可执行文件类型除了.asp还包含.asa、.cer和.cdx。除此之外,IIS6.0还会将带有分号的文件名忽略分号之后的部分进行解析,比如文件名1.asp;1.jpg会被当成1.asp解析。文件解析漏洞的危害各种Web服务器的文件解析特点,使得网页代码设计的文件类型上传过滤措施失去屏障。其危害性在于,攻击者可以轻松突破上传限制,上传网页木马控制服务器。因此,文件类型过滤还需要考虑所使用的Web服务器解析特点,进行针对性过滤。【任务15-1】建立基于黑名单过滤的上传网站本任务在项目14的基础上建立一个基于黑名单过滤的文件上传功能网站,并进行功能测试15-1-1准备工作在Apache2.4的网站根目录C:\Apache24\htdocs\下新建一个文件夹resolution作为本项目的网站目录。将项目14的fdown目录下所有网页文件复制到C:\Apache24\htdocs\resolution目录,并在resolution目录下再新建一个uploads文件夹作为上传文件的保存目录。本项目不需要另外建立数据库。由于项目13基于白名单过滤的上传功能,限制了上传文件扩展名类型为图片,所以解析漏洞的利用文件无法上传。因此需要将上传功能过滤修改为基于黑名单的方式才能上传解析漏洞文件。另外还需要将文件重命名的防护功能注释掉。15-1-2任务实现使用NotePad++打开do_upload.php,将上传文件类型过滤改为黑名单的方式,去掉文件重命名防护功能15-1-3文件上传功能测试分别上传图片类型、php类型的文件和.htaccess文件,发现图片文件可以上传,而黑名单的php类型的文件和.htaccess文件无法上传,如图15-1至图15-3所示,表明黑名单文件过滤设置成功【任务15-2】文件解析漏洞测试在本任务,利用Apache服务器的文件解析漏洞,绕过黑名单类型限制上传一个PHP网页木马文件,最后分析漏洞原因15-2-1测试实施首先准备一个PHP文件供上传使用。功能比较强大的PHP文件又被称为PHP网页木马,它甚至可以控制整个目标系统。在这里使用一个简单的PHP木马文件用以验证Apache文件解析漏洞创建PHP木马文件上传PHP木马文件15-2-2测试分析从以上Apache文件的解析特性可以发现,如果使用黑名单的方式限制文件上传,那么仅仅限制文件的扩展名是不够的,还需要对文件名部分进行过滤,必须对各种大小写组合的包含“.php.”形式的文件名进行过滤。【任务15-3】文件解析漏洞防护在本任务,使用文件名字符串过滤限制上传的方式实现对解析漏洞的防护,并测试防护效果。15-3-1文件名字符串过滤Apache文件解析漏洞的防护,有很多方法。可以在Apache服务器的配置文件中添加过滤,也可以使用项目13的方式给文件重命名。如果不能给文件重命名,可以采取限制文件名中出现“.php.”这种形式打开do_upload.php,在第33行文件类型过滤语句后面添加文件名检查的功能再次上传PHP木马文件shell.pHp.abc,发现上传失败15-3-2禁止Apache解析需要注意的是,如果文件名为shell.pHp.abc之类的PHP网页木马已经上传,以上漏洞防护措施是不能禁止其解析的。重复图15-5访问的网址,发现仍然可以解析。因此一方面应该禁止Apache解析PHP的危险函数,另一方面需要禁止Apache解析文件名包含.php.这样的文件首先禁止解析危险函数。为具体方法为,打开PHP的配置文件php.ini,查找到disable_functions这一行,在等号后面添加shell_exec修改完成后,使用【任务1-4】节的方式重新启动Apache服务,重复图15-5访问的网址,发现函数因为安全原因被禁用接下来,修改Apache配置文件,禁止文件名包含.php.这样的文件执行重复图15-5访问的网址,发现没有访问权限【项目总结】Apache服务器的解析特性是解析漏洞发生的根本原因。解析漏洞使得通常采用的文件上传过滤失去了应有的作用。从文件解析漏洞的防护措施及测试发现,对于Apahce+PHP组合的Web服务器,使用黑名单方式限制文件上传禁止利用解析漏洞,结合修改Apache配置文件禁止访问包含.php.的文件名是可行的。在文件上传功能需要过滤各种大小写组合的.php和.htaccess扩展名,同时还需要过滤包含各种大小写组合的.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论