文件上传漏洞

提要:文件上传漏洞属于服务端漏洞,可归纳为文件操作类型中的漏洞。
漏洞简介:文件上传漏洞是Web安全中对数据与代码分离原理的一种攻击方法,顾名思义,攻击者上传了一个可执行文件(木马,病毒,恶意脚本,WebShell等到服务器执行,并最终获得网站控制权限的高危漏洞。

漏洞危害:
文件上传属于高危漏洞,相比于SQL注入,XSS,风险更大,其危害的是整个应用系统,如果目标网站存在文件上传漏洞:
1,如果攻击者上传的是Web脚本语言,服务器的Web容器解释并执行了用户上传的脚本,则会产生代码执行。
2,如果上传的是Flash的策略文件crossdomain.xml,攻击者则可以控制Flash在该域下的行为。
3,如果上传的是病毒,木马文件,攻击者则可以诱骗用户下载并执行恶意文件。
4,如果上传了一个Webshell到服务器上,那么整个应用服务器则可能被攻击者进行控制或致使系统完全崩溃。
漏洞原理:
大部分的网站或应用系统都存在文件上传功能,如果未对上传文件的后缀合法性进行校验或仅进行前端的JS层验证,导致使用者可以上传任意格式文件到目标服务器(JSP,ASP,PHP,ASPX)等,那就很大概率会造成文件上传漏洞的发生,导致恶意程序被执行,危害目标应用服务器。

漏洞利用绕过:


客户端绕过:
1,JavaScript检测
绕过:禁止JS或者Burp代理工具抓包修改参数
服务端绕过:
1,Content-Type字段绕过(MIME类型检测)
绕过:使用Burp代理工具修改Content-Type绕过
2,服务端path参数检测
3,服务端文件扩展名检测
绕过:
文件名大小写绕过(PhP,Asp等)
后缀名字双写嵌套(phphpp,asaspp等)
利用系统对一些特殊文件名做默认修改的系统特性绕过(.htaccess文件)
可以利用asp程序中的漏洞,使用截断字符绕过
利用不在黑名单中但可以执行的扩展名绕过(php3,php4)
利用解析/包含漏洞配合上传一个代码注入 的白名单进行绕过4
4,服务端内容检测
绕过原理:通过在文件中添加正常文件的标识或其他关键字符绕过

文件上传漏洞通常和解析漏洞一起配合使用,解析漏洞可参考Web安全深度剖析—上传漏洞

文件上传漏洞防御:

系统运行时的防御:
1,文件上传的目录权限设置为不可执行。只要web容器无法解析该目录下面的文件,即使攻击者上传了脚本文件,服务器本身也不会受到影响。
2,文件扩展名使用白名单机制判断。在判断文件类型时,使用白名单方式,黑名单的方式已经无数次被证明是不可靠的。此外,对于图片的处理,可以使用压缩函数或者resize函数,在处理图片的同时破坏图片中可能包含的HTML代码。
3,使用随机数改写文件名和文件路径。文件上传如果要执行代码,则需要用户能够访问到这个文件。如果应用了随机数改写了文件名和路径,将极大地增加攻击的成本。再来就是像shell.php.rar.rar和crossdomain.xml这种文件,都将因为重命名而无法攻击。
4,单独设置文件服务器的域名。由于浏览器同源策略的关系,一系列客户端攻击将失效,比如上传crossdomain.xml、上传包含Javascript的XSS利用等问题将得到解决。
5,使用安全设备防御。文件上传攻击的本质就是将恶意文件或者脚本上传到服务器,专业的安全设备防御此类漏洞主要是通过对漏洞的上传利用行为和恶意文件的上传过程进行检测。恶意文件千变万化,隐藏手法也不断推陈出新,对普通的系统管理员来说可以通过部署安全设备来帮助防御。

参考学习链接:
文件上传漏洞攻击与防范方法

Web安全—文件上传漏洞相关推荐

  1. 公司项目重构-Web安全-文件上传漏洞

    目录 1.背景介绍 2.攻击原理 3.防范手段 1).做好文件类型检查(重要) 2).最好对图片进行压缩或resize 3).使用随机数改写文件名和文件路径(根据公司需求) 4).设置单独文件服务器和 ...

  2. Web安全——文件上传漏洞

    文件上传漏洞 绕过JS验证 通过表单上传时,可能存在JS对文件类型.大小的检验 使用BurpSuite剔除相应JS 上传WebShell,使用菜刀连接 <?php @eval($_POST[&q ...

  3. Web安全 文件上传漏洞的 测试和利用.(上传一个图片或文件 拿下服务器最高权限.)

    文件上传漏洞的概括 现在大多的网站和Web应用系统都会有上传功能(比如:文档,图片,头像,视频上传等.),而程序员在开发文件上传功能时,没有对代码做严格校验上传文件的后缀和文件类型. 此时攻击者就可以 ...

  4. Web安全-文件上传漏洞与WAF绕过

    文章目录 概述 Webshell简述 上传漏洞原理 上传漏洞绕过 解析漏洞 IIS 6.0解析漏洞 Apache解析漏洞 Nginx解析漏洞 Windows文件命名 客户端检测绕过 更改前端JS代码 ...

  5. Web安全--文件上传漏洞

    前言:本文参考了一些文章,如有侵权请留言删除. 该文章基于upload-labs基础靶场进行编写 0x00 任意文件上传漏洞原理 由于服务端代码未对客户端上传的文件进行严格的验证和过滤,导致攻击者可以 ...

  6. 文件上传漏洞原理/方式/防护

    文件上传漏洞是获取服务器权限最快也是最直接的一个漏洞 原理 文件上传漏洞是指用户上传可执行脚本文件 , 并通过脚本文件控制Web服务器 利用方式 文件上传漏洞的利用分为客户端和服务端 客户端主通过JS ...

  7. web安全之文件上传漏洞攻击与防范方法

    一. 文件上传漏洞与WebShell的关系 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等.这种攻击方式是最为直接和有效 ...

  8. 上传文件白名单_十大常见web漏洞——文件上传漏洞

    漏洞介绍 在我们浏览网页时,文件上传是非常常见的,比如我们会上传头像.附件.视频等文件,文件上传漏洞通常由于网页代码中的文件上传路径变量过滤不严造成的,如果文件上传功能实现代码没有严格限制用户上传的文 ...

  9. java web 上传图片漏洞_Web安全:文件上传漏洞

    原标题:Web安全:文件上传漏洞 一般将文件上传归类为直接文件上传与间接文件上传.直接文件上传就是服务器根本没有做任何安全过滤,导致攻击者可以直接上传小马文件及大马文件(如ASP.ASPX.PHP.J ...

最新文章

  1. shell批量增删改查百库百表(mysql)
  2. mysql udf提权_MySQL日志安全分析技巧
  3. Boost:基于boost::asio的延迟tcp服务器测试程序
  4. linux的进程pcd,LINUX下查看点云图————point cloud(.ply .vtk .pcd)
  5. 施一公:带好学生,是特别要紧的事
  6. 3-2:常见任务和主要工具之存储介质
  7. JS-函数(匿名-自调用-回调)-递归
  8. 干货 物联网卡使用9大常见问题解惑
  9. idea无法导入java文件_java – IntelliJ IDEA无法解析spring导入的文件
  10. java txt中统计一个字母出现的次数并储存,统计txt文件中每个字符出现的次数,并根据次数从高到低排序...
  11. PHP kafka消息队列的使用
  12. 安装电脑硬件要求_2019,8月,精雕设计多档次电脑硬件配置推荐
  13. Linux下安装常用软件
  14. html代码快速生成
  15. 使用 stm32实现锂电充电_12V锂电池保护板电路图锂电池保护板工作原理及短路、过充电等控制原理分析...
  16. RS-485 接口 EMC 电路设计
  17. 『中文、英文词频统计分析软件』免费工具分享
  18. win10计算机不分区,win10有必要分区吗
  19. mysql分组查询学生平均年龄_那些年我们一起做过的[分组查询]_MySQL
  20. 关于魔趣刷机(含root)步骤

热门文章

  1. linux刻录光驱是哪个好,Linux中使用mkisofs或genisoimage刻录光盘
  2. 重置计算机网络设置路由器,路由器登录不上怎么办 如何重新设置路由器
  3. 语音与影像上的自督导式学习模型、一些老版本的补充(李宏毅2022
  4. 计算机网络原理系列学习笔记(七)——网络安全
  5. Mac缓解或关闭鼠标加速
  6. python中布尔类型的值包括_Python 布尔值(Booleans)
  7. latex公式换行后保证括弧大小相同
  8. 计算机科学期刊催稿,围观!520 ,最“专业”的表白方式
  9. 笔记本运行linux亮度低,关于笔记本linux亮度调节
  10. 人生就是一场“康波”,你准备好了吗?