动态线条
动态线条end

防御文件上传

概念

恶意用户上传具有可执行命令功能的文件,通过远程工具连接后执行恶意命令,达到对网站的权限控制,甚至服务器的控制。

产生的必要条件

1)能够将 后门文件 成功上传

2)上传的文件能够被成功解析

常见的过滤方法及绕过方法

1)前端JS验证文件后缀

   (1)关闭浏览器js执行

   (2)刷新页面,抓取相应数据包,修改js验证代码

2)后端验证文件后缀

   (1)文件尾缀加“.”,限于windows系统

   (2)文件尾缀加“ ”,限于windows系统

   (3)文件名尾缀加“::$DATA”,,限于windows系统

3)验证HTTP报文中content-type属性

   (1)burpsuite抓包,修改属性值

4)验证文件头

   (1)burpsuite抓包,修改文件头

   (2)直接将后门代码与图片拷贝在一起,利用图片文件头进行绕过

   (3)直接记事本打开图片文件,写入后门代码

5)验证文件内容

   (1)安全狗

   (2)宝塔

6)等价文件名解析

   (1)asp:asa、cdx、cer

   (2)php:php3、php4、php5、phtml

   (3)aspx:ashx、ascx、asmx

   (4)jsp:jspx、jspf

   (5)exe:exee

   (6)错误的后缀名解析配置

7)图片二次渲染

   (1)上传的gif,讲过图片渲染后,存在未改变的文件内容,在为改变的部分添加后门代码

8)条件竞争

   (1)在更改文件名之前,访问文件,致使更改文件名函数失效

   (2)存在验证文件是否合法,不合法时删除文件,在删除文件之前访问文件,由上传的文件创建后门文件

9)截断绕过

   (1)windows系统在读取文件名时,遇见 00 时,会判断文件名结束

综上所述,想要防御文件上传可以从以下几点出发

1)操作系统选择linux系统

2)使用后端的白名单验证文件后缀名

3)验证HTTP数据报中的content-tyoe参数

4)验证文件头正确性

5)安装相关的web防护应用,验证文件中是否存在明显的后门内容

6)配置文件中,取消不需要的文件解析后缀

7)将上传文件夹下的权限给予到最小,取消无用的权限

8)在一定时间内,限制文件上传的次数

posted @ 2022-01-26 19:32  v1v1v1  阅读(83)  评论(0编辑  收藏  举报