2020-04-29 14:49:26 版本 : 网站安全(一)任意文件上传漏洞的复现、分析与防御
作者: 陈胜涛 于 2020年04月29日 发布在分类 / FM组 / FM服务 下,并于 2020年04月29日 编辑
 历史版本

修改日期 修改人 备注
2020-04-29 15:46:59[当前版本] 陈胜涛 创建版本
2020-04-29 14:49:26 陈胜涛 创建版本


漏洞描述

资产信息

https://域名/后台Server/api/File/MultipleFileUpload

技术漏洞

任意文件上传

风险等级

漏洞描述

该应用程序导致用户可以直接上传aspx语言的webshell,获取服务器权限,进行命令执行。

危害分析

没有限制到asp,jsp,php的代码执行文件的上传,导致用户可以直接上传asp语言的webshell,获取服务器权限,进行命令执行。

漏洞复现

上传未做任何限制,导致各类文件都可以上传。

本网站是一个.netFrame环境,选择一个aspx文件

粘贴图片

粘贴图片aspx网页内容为WebShell,网上搜的一段 

【Aspxspy中提取执行cmd命令的代码】

粘贴图片


上传成功,请求返回找到上传目录的相对路径;

直接输入路径地址

粘贴图片

运行可以执行cmd命令,可以完成各类cmd dos命令,例如要获取服务器的网络配置信息 ipconfig命令,运行结果如下

粘贴图片

修复建议


1、对上传文件类型进行验证,除在前端验证外在后端依然要做验证,后端可以进行扩展名检测,重命名文件,MIME类型检测以及限制上传文件的大小等限制来防御,或是将上传的文件其他文件存储服务器中。

2、严格限制和校验上传的文件,禁止上传恶意代码的文件。同时限制相关上传文件目录的执行权限,防止木马执行。

3、对上传文件格式进行严格校验,防止上传恶意脚本文件;

4、严格限制上传的文件路径。

5、文件扩展名服务端白名单校验。

6、文件内容服务端校验。

7、上传文件重命名。

8、隐藏上传文件路径。


限制上传目录,限制目录执行权限

IIS设置步骤如下

粘贴图片

测试项目上传目录固定为Upload,

选中 目录》 处理程序映射  》编辑功能权限

粘贴图片

去掉脚本(S)以及执行(E)的勾选》确定。

粘贴图片

注意:设置完成会在目录下生成一个web.config文件,注意不要删除!

设置后就完全限制了上传文件的执行权限,该设置是最彻底的解决方法。

限制文件类型

本次修改,临时采用黑名单限制asp、php、jsp、bat、htm类的文件,包含该类的文件请求直接返回403。

粘贴图片

注意:

针对只允许一种类型的文件上传,比如本文中的图片上传,建议使用白名单的方式进行过滤,不建议使用黑名单

由于上传文件格式的不可预测性以及黑名单限制的扩展名很难覆盖全面等因素,导致了可能会有漏网之鱼。

另外结合URL的特性,可以通过比如“test123.php%00.jpg”的方式来截断文件名,从而绕过黑名单的限制。

综上,建议使用白名单的方式来做减法,不在白名单中的文件类型,统一认为是非法文件,一律删除。






 附件

附件类型

PNGPNG

历史版本-目录  [回到顶端]
    知识分享平台 -V 4.8.7 -wcp