关于PHP文件上传漏洞—hack之路

PHP文件上传漏洞
在Web系统中,允许用户上传文件作为一个基本功能是必不可少的,如论坛允许用户上传附件,多媒体网站允许用户上传图片,视频网站允许上传头像,视频等。但如果不能正确的认识到上传带来的风险不加防范,会造成对系统的毁灭性的灾难。在PHP项目中,提供上传功能并在服务器端对上传的文件格式进行合理的校验是存在巨大风险的。如果恶意攻击者利用上传漏洞上传webshell,则可能完全操控网站程序,执行系统命令,获取数据库链接字串进行操作数据库等危险操作
文件上传漏洞演示
本次演示全部使用DVWA系统进行本地漏洞测试,我们先选择难度低也就是Low来进行测试,关于low

关于PHP文件上传漏洞---hack之路
是没有任何过滤后缀包括内容的,我们可以直接上传webshell的php文件看看
关于PHP文件上传漏洞---hack之路
发现可以直接上传成功,并且可以执行系统命令
检查文件类型防止上传漏洞
上面的例子中的代码非常简单,并没有进行任何的上传限制。如果要限制,通常的做法是限制文件上传类型,下面在PHP代码中增加了文件类型限制来防止上传漏洞
关于PHP文件上传漏洞---hack之路

再次渗透测试时发现,显示上传失败,必须要上传PNG或者JPEG文件
关于PHP文件上传漏洞---hack之路
这里成功的通过检测类型防止了非授权类型文件的上传,服务器拒绝接收文件。但是如果只进行上传文件类型的检查也是不够的,攻击者通过修改POST数据包中参数修改成Content-Typy:image/png,然后发送数据包,即可实现恶意脚本的上传
关于PHP文件上传漏洞---hack之路

关于高级难度的需要PHP5.3以下使用00截断,这并没有意义,因为目前用这么低版本的PHP环境的人不多了,现在用的比较多的拦截手法,就是黑名单方式,关于php脚本等的后缀,一个个去禁止,比如列举禁止,html,php,php3,这样禁止的非常不安全的,建议使用白名单,只允许png,jpg,gif这样会安全很多,但是并不是说采用白名单方式验证就足够安全了

IIS服务存在一个漏洞,如上传一个名为,hacker.php:gif的文件到服务器,PHP脚本文件因限制最后四个字符,所以文本是合法的,但是当上传后浏览该文件—http://服务器路径/uploads/hacker.php:,gif时,就可以绕过Web程序的逻辑检查,从而能导致服务器以IIS进程权限执行任意恶意用户定义的脚本

在Apache程序中,同样存在一个由扩展名解析的漏洞。当恶意攻击上传一个有多个扩展名的PHP脚本文本时,如果最后的扩展名未定义,就会解析前一个扩展,比如hacker.php.2018文件。当将该文件上传时,如果是白名单,黑名单方式进行验证,就可以绕过验证,上传非法文件到服务器,当浏览http://服务器路径/uploads/hacker.php.2018时就会被当成PHP脚本执行

网站地址:https://www.hackzl.cn;发布者:hack之路,转转请注明出处:https://www.hackzl.cn/index.php/2020/09/17/%e5%85%b3%e4%ba%8ephp%e6%96%87%e4%bb%b6%e4%b8%8a%e4%bc%a0%e6%bc%8f%e6%b4%9e-hack%e4%b9%8b%e8%b7%af/

发表评论

邮箱地址不会被公开。 必填项已用*标注