攻击者要想成功实施文件上传攻击,必须要满足以下三个条件:
1.可以上传任意脚本文件,且上传的文件能够被Web服务器解析执行,具体来说就是存放上传文件的目录要有执行脚本的权限。
2.用户能够通过Web访问这个文件。如果文件上传后,不能通过Web访问,那么也不能成功实施攻击。
3.要知道文件上传到服务器后的存放路径和文件名称,因为许多Web应用都会修改上传文件的文件名称,那么这时就需要结合其他漏洞去获取到这些信息。如果不知道上传文件的存放路径和文件名称,即使你上传了也无法访问。
因此,针对此漏洞制定以下方案:
(1) 设置files文件夹下文件不可执行
(2) 设置后缀白名单,只允许规定后缀的文件上传(需确认都有哪些后缀)
参考文献:http://www.rising.com.cn/newsletter/news/2012-07-19/11966.html