第8章 文件上传漏洞
8.1 文件上传漏洞概述
文件上传漏洞是指用户上传一个可执行的脚本文件,并通过此脚本文件活动执行服务器端的能力。
原理:由于文件上传功能实现代码没有严格限制用户上传的文件后缀以及文件类型,导致允许攻击者向某个可通过 Web 访问的目录上传任意PHP文件。
文件上传漏洞安全问题:
q 上传文件是WEB脚本文件,服务器的WEB服务器解释并执行了用户上传的脚本,导致代码执行;
q 上传文件是Flash的策略文件crossdomain.xml,黑客用以控制Flash在该域下的行为(其他通过类是方式控制策略文件的情况类似);
q 上传文件是病毒、木马文件,黑客用于引诱用户或者管理员下载执行;
q 上传文件是钓鱼图片或者包含了脚本的图片,在某些版本的浏览器中会被作为脚本执行,被用于钓鱼和欺诈;
防范文件上传漏洞有一个很有效的方法就是不能文件命名随机性。
经过测试在windows中是不能使用了。在Linux中是不能是/0的。如下图:
8.2功能还是漏洞?
8.3设计安全的文件上传功能
防范文件上传攻击:
q 将存放上传文件的文件夹设置为不可执行;
q 使用MIME Type与后缀检查方式来判定文件类别;
q 文件名名的随机性
本文转自 梦朝思夕 51CTO博客,原文链接:http://blog.51cto.com/qiangmzsx/1859552