讲解windows搭建php环境 php上传文件到服务器要求( 二 )


4、服务器解析漏洞(1)IIS解析漏洞IIS7.0后对之前版本的漏洞进行了修复,但在IIS7.0后的服务中开启Fast-CGI状态,服务器在解析URL地址时,会将xxx.jpg/xxx.php解析为PHP文件 。这也会使攻击者用此绕过服务器的检测 。同时,在Windows操作系统中,文件名不能以空格或“.”开头,也不能以空格或“.”结尾 。当把一个文件命名为以空格或“.”开头或结尾时,会自动地去掉开头和结尾处的空格和“.” 。利用此特性,也可能造成“文件解析漏洞” 。
(2)Apache解析漏洞
Apache解析文件的规则是从右至左开始判断解析,如果遇到不可识别文件后缀时,Apache解析就再往左判断 。例如:hack.php.cde.abc,“.cde”和“.abc”这两种后缀是apache在解析时不可识别的,apache在解析时就会把hack.php.cde.abc解析成为hack.php 。
Apache解析漏洞(CVE-2017-15715),在Apache2.4.0到2.4.29版本配置文件中的php解析表达式存在可以匹配字符串结尾的换行符漏洞,攻击者可以利用”%0A”绕过上传黑名单上传文件 。
(3)nginx解析漏洞在nginx8.03以下的版本也存在和IIS7一样的漏洞,Nginx默认也是以CGI的方式支持PHP解析的,服务器在解析URL地址时,会将xxx.jpg/xxx.php解析为PHP文件 。还有一种方法是上传一个名字为hello.jpg,文件内容为:<?php fputs(fopen(‘hack.php’,’w’),'<?php eval($_POST[cmd])?>’);?> 。然后访问hello.jpg/.php,在这个目录下就会生成一个木马文件hack.php 。
三、文件上传漏洞防御策略针对以上可能出现的文件上传漏洞,应该从WEB应用的开发、WEB容器、服务平台的配置管理、WEB服务器运维、网络安全设备运维等多方面打造立体式的文件上传漏洞防御体系,如图1所示 。
1、WEB应用开发阶段防御WEB应用开发过程中虽然在客户端对上传文件进行JS检测可以被专业的攻击者很容易突破,但对一般的攻击者而言,还是可以对基础性的试探起到一定的防御效果 。在服务器端对文件类型的检查可以使用MIMEType、后缀检查等多种方式结合,在检查过程中强烈推荐使用白名单方式进行过滤,黑名单的方式已经无数次被证明是不可靠的 。同时还需对%00截断符、对HTTP包头的Content-Type和上传文件的大小进行检查 。
此外,对于图片的处理,可以使用resize函数或压缩函数对图片进行预处理,在处理图片的过程中破坏图片中可能包含的恶意代码 。在服务器接收文件时,使用随机数改写文件名和文件路径 。攻击者要么执行上传文件中的代码,首先他要访问到这个文件,通过使用随机数改变上传后的文件名和路径,会导致攻击者找不到上传的文件,而无法进行攻击 。
2、WEB服务器端防御在WEB服务器端文件上传的目录应设置为不可执行 。通过对WEB容器设置不可执行权限,即使攻击者上传了含有恶意的脚本文件,也会因为不能解析执行而无法发动攻击 。在WEB服务器端为文件服务器单独设置域名 。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题都将得到解决 。在服务器端增加安全设备WAF 。WAF是专门的WEB应用安全设备,可以对WEB应用程序客户端的各类请求进行内容检测和验证,确保其安全性与合法性,对非法的请求予以实时阻断,通过对漏洞的上传利用行为和恶意文件的上传过程检测,从而达到有效防御的目的 。
3、WEB运维人员防御随着技术的不断进步,隐藏的攻击手法不断推陈出新,恶意文件也在千变万化,WEB服务运行后,WEB的运维人员就变得尤为重要 。运维人员应有较强的安全意识,在平时的运维过程中,经常使用安全检测工具对WEB系统进行安全扫描,及时发现潜在漏洞并修复 。定时查看系统日志,通过查看WEB服务器日志以发现入侵痕迹 。


以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: