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


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

文章插图
一、什么叫文件上传漏洞文件上传是WEB开发中一项基本的功能,是指将本地文档、视频、音频、图片等文件上传到服务器上,以便自己或其他用户下载或浏览的过程,如论坛发图片、发微信朋友圈、发微博等都用到了上传功能 。
文件上传漏洞是指程序员在WEB应用中利用客户端上传功能控制、检测、处理的不足,通过向WEB服务器上传特定的可执行文件(如木马、Web?Shell、病毒、恶意脚本等)以达到获取关键数据操控主机的目的 。
文件上传漏洞的危害WEB应用开发人员在实现文件上传功能过程中,如果没有对文件格式、后缀严格校验,WEB中存在文件上传漏洞,攻击者可能利用此漏洞直接上传病毒、木马、钓鱼图片、包含了脚本的图片、恶意脚本文件、WebShell等,再通过访问这些恶意的脚本中的恶意代码,最终可能会导致用户信息泄露,被钓鱼、欺诈,甚至使攻击者可以直接上传WebShell到服务器,进而得到自己想要的信息和权限,最终达到对数据库执行、服务器文件管理、服务器命令执行等恶意操作,甚至完全控制服务器系统,在服务器系统中为所欲为 。
二、文件上传漏洞检测技术分析目前,针对文件上传漏洞WEB开发和服务,管理人员也加入了文件上传检测机制,大致有客户端脚本检测、服务器端文件扩展名检测、服务器端内容检测、服务端Content-Type类型检测、服务端path参数检测等 。
1、客户端脚本检测这类检测通常是在上传页面里添加特定的检测上传文件扩展名的代码,通过判断扩展名是否合法,从客户端检测控制上传文件的安全性 。但对于这种检测方法,专业的攻击者可以通过将需要上传的恶意代码文件类型改为允许上传的类型,很轻松地躲过文件上传的检测 。例如:将hack.php改为hack.jpg上传,配置BurpSuite代理进行抓包,然后再将文件名hack.jpg改为hack.php 。
2、服务器端文件扩展名检测在服务器端对文件扩展名进行检测就是设置黑名单或白名单[6,7],即黑名单是禁止特定扩展名的文件上传,白名单是仅允许指定扩展名的文件上传 。服务器端检测包括了Content-Type检测、黑名单检测、白名单检测等 。
Content-Type检测是在用户提交上传文件时验证是否为要求的文件类型,如果是允许上传,如果不是则禁止上传 。这种检测方法可以通过抓包来修改Http开头的Content-Type轻松绕过 。
服务器端的黑名单检测往往是把常见的危险文件的扩展名放在一个文件中(如execombatdlljsvbsphphtmlaspcer等等),当客户端上传文件时,对上传文件的扩展名进行过滤,如果上传的文件扩展名在黑名单中则不允许上传 。这种检测方式看似可以有效地防止危险文件上传,但限制不够全面(如IIS默认支持解析aspcdxasacer等文件类型),攻击者通常还可以利用扩展名的大小写(如上传.Php)、特殊文件名(如“.exe空格”)、名单列表绕过(如上传黑名单中不存在的扩展名文件)等方式完成攻击 。
白名单检测是在服务器端指定允许上传文件的扩展名,如果上传文件的扩展名在指定的范围内,允许上传,否则禁止上传 。显然,白名单检测要比黑名单过滤安全性高 。在白名单检测中,攻击者可以使用%00、0x00、0x0a等截断绕过白名单检测(如上传photo.jpg,BurpSuite抓包,将文件名改为photo.php%00.jpg,选中%00,进行urldecode),或使用双写扩展名绕过白名单检测(如photo.php.jpg) 。
3、服务器端文件内容检测服务器端文件内容检测是指当服务器接收到用户上传文件后,通过检测文件函数、文件相关信息、文件渲染等方式验证文件的合法性,如果合法则允许上传,否则禁止上传[8,9] 。针对文件内容检测,攻击者可以通过制作的图片马进行绕过(burp?suit改包或者copy1.jpg/b+2.php/a3.jpg生成图片马或者直接用别人做好的图片马) 。


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

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