文件上传漏洞的概念
在动态网站或Web应用系统中,动态脚本对用户文件上传部分控制不足或者处理缺陷,而导致的用户可以越过其本身权限向服务器上上传可执行的动态脚本文件,进而危害服务器安全的软件漏洞.
文件上传漏洞的危害
- 非授权用户的确权访问
- 信息泄露
- 种下后门(webshell)
Webshell–文件上传漏洞的无限扩大
定义:Webshell就是以asp,php,jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称之为一种网页后门.
特点:Webshell后门隐蔽性较高
形式:一句话木马,小马,大马
上传攻击的条件:
文件上传漏洞的防护
总体思想:确保上传的文件不会被服务器解析成可执行的脚本,进而引发偏离功能设计的以外后果.
1.“不能上传”:加强文件合法性检测
2.“不能被执行”:组织上传文件执行
文件上传检测
- 客户端验证(javascript对扩展名进行检测)
- 服务验证:MIME检测(文件头Content-Type检测);扩展名检测(通常黑名单/白名单);文件内容头校验