【网络安全】-文件上传漏洞

news2024/11/13 16:07:19

文件操作漏洞包括文件上传漏洞,文件包含漏洞,文件下载漏洞。

文章目录

前言  什么是文件上传漏洞?

文件上传的验证与绕过:

1.前端js验证:  

          Microsft Edge浏览器:

    Google Chrome浏览器:

2.后端黑名单与白名单验证

     黑名单验证

           白名单验证

3.内容及其它验证

总结


前言  什么是文件上传漏洞?

文件上传漏洞指hacker利用网站能让用户上传文件的功能,在上传过程中上传木马,直接连接或配合文件包含漏洞获取webshell,从而导致用户权限丢失,隐私泄露。

而hacker成功getshell后还可以长期控制受影响的网站或服务器,进行持续性的攻击和破坏,甚至会将受控制的服务器作为攻击其他目标的跳板,利用该服务器的资源和网络带宽发起更广泛的网络攻击。


文件上传的验证与绕过:

1.前端js验证:

  禁用js

 Microsft Edge浏览器:

右上方三个点,点击设置:

Cookie和网站权限->所有权限->JavaScript

  

点击JavaScript,允许关闭

Google Chrome浏览器:

右上方三个点,点击设置->隐私和安全->网站设置

下拉滚动条 内容->JavaScript,不允许使用。

2.后端黑名单与白名单验证
黑名单验证

[阻止已知的恶意实体访问网络资源]

定义:一种阻止机制,通过列出不受信任或已知有害的实体-IP地址、域名、用户ID、电子邮件地址等,来阻止这些实体访问网络资源。

特点

负面表列:以“负面表列”的方式禁止某些行为或访问。

灵活性较高:在识别出威胁后,可以快速地将其加入黑名单,以阻止其进一步活动。

安全性相对较低:虽然能有效阻止已知威胁,但是无法及时应对未知攻击或新出现的恶意实体。

绕过方式

1.大小写绕过:

例:upload第六题

2.点绕过:

例:upload第五题

3.空格绕过

例:upload第七题

4.双写绕过

例:upload第十一题

 5.htaccess特殊后缀解析

例:upload第四题

第一步:.png文件

<?php @eval($_POST[cmd]);  ?>

第二步:.htaccess文件

<IfModule mime_module>
AddHandler php5-script .gif          
SetHandler application/x-httpd-php   
</IfModule>

6.流数据(::$$DATA)绕过

例:upload第九题

白名单验证

通过限制访问权限来提高系统的整体安全性。

定义:一种权限机制,策略是一种严格的访问控制方法,只有白名单中的实体才允许访问网络资源,这种方式适用于对安全性要求较高的环境,如企业内部网络、关键业务系统等。

特点

正向表列:以“正向表列”的方式允许某些行为或访问。

安全性高:只有经过验证和信任的实体才能访问系统,从而有效防止未经授权的访问和恶意攻击。

灵活性较低:在需要允许新的实体访问时,白名单需要手动更新,会增加管理成本和时间。

绕过方式

1.文件格式验证mime绕过

修改 MIME 类型:
攻击者可以在上传文件时修改 HTTP 请求中的 Content-Type 头部,使其显示为一个无害的 MIME 类型(如 image/jpeg),但实际上传的是恶意脚本(如 PHP 脚本)。

利用客户端软件的漏洞:
有时,文件上传的客户端软件(浏览器插件或自定义上传工具)可能存在漏洞,允许用户绕过 MIME 类型的限制。

服务端验证不足:
如果服务端仅依赖客户端提供的 MIME 类型,而没有进行文件内容检查(如文件扩展名检查、文件签名检查、文件内容分析等),则攻击者可以通过修改 MIME 类型来绕过这些简单的安全检查。

2.%00截断

条件:php<5.3.4,magic_quotes_gpc函数关闭,get提交

例:upload第十二题

3.0x00截断

条件:php<5.3.4,magic_quotes_gpc函数关闭,post提交

例:upload第十三题

把%00换成0x00

或手动编码:

4.0xoa截断    ASCII->换行

3.内容及其它验证

1.文件头检测:

例:upload第十四题

直接页面截图,重命名为.txt文件,打开文件,将一句话木马黏贴进去,再进行重命名为3.png文件。

重命名的.png就有验证特征:

2.二次渲染

例:upload第十七题

上传的图片后,后端代码会重新生成画布 然后把上传的图片重新渲染一次,使得png(图片+木马)->png(图片)。

3.条件竞争

例:upload第十八题

实质:多个请求同时处理同一个文件或资源

第一次:

上传了一个恶意文件

服务器在将文件保存到磁盘后还需要进行一些额外的检查

验证失败

第二次:

上传了一个恶意文件

服务器在将文件保存到磁盘后还需要进行一些额外的检查

验证失败

......

第n次:

上传了一个恶意文件

服务器被占用

验证成功

4.函数验证

getimagesize / exif_imagestype  ->检测上传文件类型是否为图片

例:upload第十五题

与文件头检测没有大的区别。

文件上传漏洞防范措施:

1.修改文件存储路径:

将用户上传的文件存储在一个独立的目录下,避免与应用程序的代码混合在一起。同时,确保该目录的权限设置合理,防止未授权访问。

2.文件权限和访问控制设置

将上传的文件设置为只读权限,以防止被恶意修改。同时,限制用户对上传文件的访问权限,只允许特定的用户或角色访问这些文件。

3.限制文件上传

限制用户在一定时间内可以上传的文件数量,防止恶意用户进行无限制的文件上传。


总结

文件上传漏洞是一种常见的Web应用程序安全漏洞,它允许攻击者利用网站或应用程序中的文件上传功能,上传恶意文件到服务器上,并通过这些文件执行恶意代码,从而控制服务器、窃取数据或执行其他恶意操作。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2140247.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【jvm】记一次hive堆heap内存溢出的排查

先看下java的内存模型 监控jvm工具&#xff1a;visualVM 摘录一下内容&#xff1a; 由c开发的jvm&#xff0c;它巧妙地设计了java的设计理念——即万物皆对象。并设计了这些对象应该如何存储&#xff0c;如何调用&#xff0c;并通过不断迭代设计让对象的存储和回收&#xff0…

最新安装vmware地址(官网找半天没找到)

CDS Repository - /var/www/public/stage/session-120/cds/vmw-desktop 直接走这个点进去&#xff0c;windows点ws&#xff0c;linux和mac点fusion进去下对应版本 win为例子&#xff1a;CDS Repository - /var/www/public/stage/session-50/cds/vmw-desktop/ws/17.6.0/242380…

MyBatis中一对多关系的两种处理方法

目录 1.多表联查&#xff08;通过collection标签的ofType属性&#xff09; 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff09;测试代码 4&#xff09;测试结果 2.分布查询(通过collection标签的select属性) 1&#xff09;mapper 2&#xff09;mapper.xml 3&#xff0…

铁路输电线路异物检测数据集

铁路输电线路异物检测数据集&#xff0c;共6GB&#xff0c;14000余图像&#xff0c;40000标注&#xff0c;标注鸟巢&#xff0c;塑料袋&#xff0c;气球&#xff0c;漂浮物四大类。coco格式标注。 项目背景&#xff1a; 铁路输电线路是保障铁路运输安全的重要组成部分&#xf…

Golang | Leetcode Golang题解之第405题数字转换为十六进制数

题目&#xff1a; 题解&#xff1a; func toHex(num int) string {if num 0 {return "0"}sb : &strings.Builder{}for i : 7; i > 0; i-- {val : num >> (4 * i) & 0xfif val > 0 || sb.Len() > 0 {var digit byteif val < 10 {digit 0…

小程序组件间通信

文章目录 父传子子传父获取组件实例兄弟通信 父传子 知识点&#xff1a; 父组件如果需要向子组件传递指定属性的数据&#xff0c;在 WXML 中需要使用数据绑定的方式 与普通的 WXML 模板类似&#xff0c;使用数据绑定&#xff0c;这样就可以向子组件的属性传递动态数据。 父…

随机森林算法介绍

文章目录 基本原理关键步骤举例说明算法流程优点缺点实现示例总结 随机森林&#xff08;Random Forest&#xff09;是一种集成学习方法&#xff0c;主要用于分类和回归任务。它通过集成多棵决策树来提高模型的准确性和泛化能力。以下是随机森林的详细算法介绍&#xff1a; 基本…

VMware Tools系列二:图解安装VMware Tools过程

一、安装环境&#xff1a; VMware Workstation Pro17华为OpenEuler虚拟机 二、安装步骤&#xff1a; 在VMware Workstation中为OpenEuler虚拟机安装VMware Tools的步骤如下&#xff1a; 1. 确保OpenEuler虚拟机正在运行。注意&#xff0c;安装的VMware Tools只对当前虚拟机…

结合人工智能,大数据,物联网等主流技术实现业务流程的闭环整合的名厨亮灶开源了

明厨亮灶视频监控平台是一款功能强大且简单易用的实时算法视频监控系统。它的愿景是最底层打通各大芯片厂商相互间的壁垒&#xff0c;省去繁琐重复的适配流程&#xff0c;实现芯片、算法、应用的全流程组合&#xff0c;从而大大减少企业级应用约95%的开发成本。AI技术可以24小时…

一文学会Containerd配置和镜像加速

一文学会Containerd配置和镜像加速 ❤️ 摘要: 本文介绍了 Containerd 的基本概念及其在 Kubernetes 中的作用&#xff0c;并详细说明了如何通过配置代理、使用国内镜像源或手动下载等方式加速镜像拉取。此外&#xff0c;还提供了针对不同场景的具体配置方法&#xff0c;包括通…

解码 OpenAI 的 o1 系列大型语言模型

OpenAI 表示&#xff0c;其 Strawberry 项目已升级为新的大型语言模型 (LLM) 系列&#xff0c;公司将其命名为 OpenAI o1。 该公司表示&#xff0c;新系列模型还包括一个 o1-mini 版本&#xff0c;以提高成本效益&#xff0c;可根据其推理能力与最新的GPT-4o 模型进行区分。 …

Visual Studio(vs)下载安装C/C++运行环境配置和基本使用注意事项

基本安装 点击跳转到vs官网点击箭头所指的按钮进行下载双击运行刚才下载好的下载器点击继续勾选“使用C的桌面开发”和“Visual Studio扩展开发”点击“安装位置”&#xff0c;对vs的安装位置进行更改。你可以跟我一样只选择D盘或者其他你空闲的盘&#xff0c;然后将默认的路径…

AIGC文本生成

文本生成是一种人工智能技术&#xff0c;它基于深度学习算法&#xff0c;根据给定的提示信息创作出有逻辑、连贯的文本内容。 文本生成所需的输入&#xff08;提示或Prompt&#xff09;可以是简单的关键词、一句话概述或是更复杂的指令和上下文信息。文本生成模型通过分析大量…

AR技术在电商行业中有哪些应用场景?有何优势?

AR&#xff08;增强现实&#xff09;技术在电商行业中的应用场景广泛且多样&#xff0c;为消费者带来了全新的购物体验&#xff0c;同时也为商家提供了诸多优势。51建模网为电商行业AR技术应用提供解决方案&#xff0c;以下是AR技术在电商行业中的主要应用场景及其优势&#xf…

数据结构:时间复杂度与空间复杂度

目录 算法效率时间复杂度大O渐进表示法时间复杂度计算案例 空间复杂度空间复杂度案例 复杂度算法题 算法效率 算法在编写成可执行程序后&#xff0c;运⾏时需要耗费时间资源和空间(内存)资源 。因此衡量⼀个算法的好坏&#xff0c;⼀般是从时间和空间两个维度来衡量的&#xf…

通过sshd_config限制用户登录

在CentOS Stream或其他现代的Linux发行版中&#xff0c;你可能会发现传统的hosts.deny和 hosts.allow文件已经不存在或不被使用。这是因为随着时间的推移&#xff0c;系统的安全策略和网络管理工具已经发生了演变&#xff0c;许多系统管理员和发行版维护者选择使用更现代、更灵…

12. DataLoader的基本使用

DataLoader的基本使用 1. 为什么要使用DataLoader DataLoader对创建好的DataSet的样本取样进行了集成操作&#xff0c;非常方便对于后续网络训练、测试的数据集的选择和使用 DataLoader可以集成了数据批量加载的方法&#xff0c;可以使用 batch_size 设置批量大小&#xff0c…

深入理解 Redis 的文件事件处理器

概述 Redis 的文件事件处理器是基于 Reactor 模式实现的&#xff0c;内部采用 IO 多路复用程序来同时监听多个套接字&#xff0c;当被监听的套接字准备好执行连接应答&#xff08;accept&#xff09;、读取&#xff08;read&#xff09;、写入&#xff08;write&#xff09;、…

计算机毕业设计 高校大学生竞赛项目管理系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

获取Live2d模型

文章目录 1、 Live2D官方示例数据集&#xff08;可免费下载&#xff09;2、模之屋3、unity商店4、直接b站搜索5、youtube6、BOOTH完结 1、 Live2D官方示例数据集&#xff08;可免费下载&#xff09; 官方提供了一些 Live2D实例模型给大家下载使用 地址&#xff1a;https://ww…