文件上传漏洞成因
1.没有限制后缀名

代码中并没有后缀名进行限制 造成任意上传漏洞,直接上传jsp到指定目录。保存的目录可被访问 则获取-个webshell.

2.黑白名单
在上传获取后缀名 开发会对后缀名限制 例如 黑名单上传(禁止上传)java、jspx、jsp、php、exe、等文件类型 。白名单 只允许上传 jpg gif png等图片文件。程序中采用黑名单限制上传。尝试上传名单以外的脚本文件。绕过上传后,服务器能解析改文件就能获取一个webshll。
代码

3.上传参数可控
在上传时 有可控参数 会导致 目录穿越 上传类型不严时 通过上传恶意的war包到tomcat目录webapp目录中会获得webshell

.war 上传war包到tomcat里webapps日录 war自动解压 就会得到一个webshel
代码

4.其他漏洞
除了以上三种常见漏洞 还有其他漏洞 例如 文件头检测 制作图片一句话就可以绕过。
文件类型检测 上传时候修改Content-Type:image/jpeg 类型就可以绕过。
5.防御建议
1.设置上传白名单 例如只允许上传 png gif jpg等图片类型后缀

2.进来不要使用客户端可控参数 需要使用时必须过滤。
3.上传目录 禁止解析脚本文件。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐