phpcms 任意文件上传 (你知道phpcms如何实现任意文件上传吗?)
PHPcms是一种开源的内容管理系统,但是它也存在着一些安全隐患。其中之一就是任意文件上传漏洞,本文将详细介绍PHPcms的任意文件上传漏洞及其原理。
一、什么是任意文件上传漏洞?
任意文件上传漏洞,就是攻击者可以在未经授权情况下通过某个漏洞,将任意文件上传到受攻击者服务器上。这个文件可以是攻击者自己编写的webshell,进而达到控制整个网站服务器的目的。
二、phpcms任意文件上传漏洞参数分析
PHPcms自身的上传文件校验逻辑较为简单,限制的内容只有上传文件大小和上传文件类型两个方面。
参数类型:$FILES[‘file’][‘name’],$FILES[‘file’][‘tmp_name’]。
参数解释:$FILES[‘file’][‘name’]对应上传文件的文件名、$FILES[‘file’][‘tmp_name’]对应上传文件的本地临时存储路径。
三、phpcms任意文件上传漏洞原理
钓鱼者利用[1.jpg.],即文件名为“1.jpg.”的文件,这种文件将默认被截取成“1.jpg”,而后缀名将被忽略,其类型可被任意伪造。在上传上传的过程中截取文件名会忽略最后一个“.”,因此黑客可以来构造带有特殊结尾的文件名,以此达到攻击者所期望的目的。 如:
在上述代码中,上传文件名被保存在$filename中,攻击者可通过传入”1.jpg.php”等恶意后缀实现上传webshell,最终访问webshell地址即可执行任意代码。
四、phpcms任意文件上传漏洞利用方法
攻击者上传webshell到目标网站,直接通过执行webshell得到目标站webshell权限。以下是一些可以上传文件的phpcms目录:
/admin/Attachment/swfupload/uploads
/api/Uploads
/install_pack/upload
/phpsso_server/upload/
/phpsso_server/caches/
/statics/default/images/QQimages/
/statics/plugs/wxshare/
/statics/webuploader/0.1.5/
/uploadfile/
在攻击者上传内容中,需要注意的是uploadfile目录权限一般为777,易受攻击。所以,要对该目录进行防范。同时,建议尽早升级phpcms版本,以提高服务器的安全性。
五、phpcms任意文件上传漏洞修复方法
针对phpcms任意文件上传漏洞,方法有如下两种:
1.禁止 web 服务器的执行权限(chattr +i)。
2.上传文件白名单,只允许特定格式的文件上传。
建议网站管理员及时升级和修补相关漏洞,保障网站的信息安全。
经过以上的介绍,相信大家已经对phpcms任意文件上传漏洞及其防范有了更深的认识。最后,强烈建议网站管理员进行安全加固,以保障用户的使用安全及数据安全。