文件上传漏洞及安全

文件上传

文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!

靶场下载链接:

https://github.com/sqlsec/upload-labs-docker

前端JS检测绕过

由于只做了前端js校验,所以抓包绕过前端检验即可

在这里插入图片描述

在这里插入图片描述

.htaccess绕过(apache的解析配置文件)

.htaccess文件定义了哪个文件可以以脚本方式运行

<FilesMatch “^qaz*\.jpg$”> //文件匹配指令 匹配以qaz开头.jpg结尾的所有文件
SetHandler application/x-httpd-php //指定被匹配的文件按照php执行

在这里插入图片描述

MIME类型&文件头检测绕过

后端判断Content-Type字段 也就是MIME类型是否符合要求

在这里插入图片描述

不同后缀名的文件头都不一样
在这里插入图片描述

黑名单检测绕过

例如针对php后缀名做为黑名单,只有这个不能上传,其余都可以,这里可以尝试大小写绕过,冷门php3、php5等后缀名上传,或者黑盒的时候直接fuzz跑后缀名

字典下载:https://github.com/fuzzdb-project/fuzzdb

%00截断绕过

使用条件:

magic_quotes_gpc = Off

PHP版本小于5.3.4

在这里插入图片描述

url 上面 %00

post 下面 %00 然后url解码

在这里插入图片描述

逻辑不严谨-条件竞争

原理:

本来检测文件流程:用户上传 -> 服务器判断是否合规 -> 合规存储

错误逻辑:用户上传->服务器先存储->判断是否合规->不合规删除

这里就导致就算不合规,但是恶意文件在服务器停留了,这就可以实现条件竞争利用这个逻辑漏洞

先预知恶意文件路径,然后使用爆破模块疯狂请求

在这里插入图片描述

上传恶意文件内容:

<?php fputs(fopen('111.php','w'),'<?php eval($REQUEST[1]);?>');?>

一旦请求成功一次,就可以在同目录留下一个木马

二次渲染

后端语言会对图片进行二次渲染,让图片更好的呈现出来,但是这样就会造成一个图片里插入的脚本代码丢失的情况

先搞个正常图片,上传图片后导出渲染后的图片,然后对比

在这里插入图片描述

二进制对比
在这里插入图片描述

可以发现存在一直不变化的数据地方,将木马语句插入其中就行

move_uploaded_file函数缺陷

move_uploaded_file($temp_file, $img_path)

$img_path可控的时候,还会忽略掉 $img_path后面的 /.

中间件解析漏洞

IIS

IIS 6 解析漏洞

该版本默认会将*.asp;.jpg 此种格式的文件名,当成Asp解析
该版本默认会将*.asp/目录下的所有文件当成Asp解析。
如:logo.asp;.jpg、xx.asp/logo.jpg

IIS 7.x 解析漏洞

在一个文件路径(/xx.jpg)后面加上/xx.php会将/xx.jpg/xx.php 解析为php文件

Apache

未知扩展名解析漏洞 <=2.4.23

不识别即向前解析(低版本2.4.23以下版本都可以)

例如.php.dsd dsd后缀名解析不了,则向前php解析

在这里插入图片描述

换行解析漏洞(CVE-2017-15715)2.4.0-2.4.29

条件:

  1. 符合漏洞版本2.4.0~2.4.29
  2. 有文件上传点
  3. 能够重命名上传文件

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

上传成功

多后缀解析漏洞(配置问题,比较少见,和版本无关)

在这里插入图片描述

Nginx

00截断 cve-2013-4547(Nginx 0.8.41 ~ 1.4.3 / 1.5.0 ~ 1.5.7)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

测试
在这里插入图片描述

解析漏洞(配置问题,比较少见,和版本无关)

在这里插入图片描述

编辑器上传漏洞

net.版本1.4.3文件上传

在这里插入图片描述

1、本地新建poc.html文件,文件内容如下,其中需将action修改成目标漏洞路径

shell addr:

2、制作aspx图片马上传至VPS并在所在目录启动http服务

3、打开poc.html后,输入vps的图片马地址,成功上传至目标服务器后,会返回webshell访问地址

4、使用Webshell管理工具连接指定地址即可成功连接webshell

文件上传安全

拒绝执行权限

文件上传的目录禁止执行权限,导致不能解析木马

在这里插入图片描述

在这里插入图片描述

绕过:

条件:

上传目录可控

上传目录可访问

控制上传目录到未被禁止执行权限的目录

解码还原

网站对上传的文件、图片以固定的data:image/png;base64, 传输解析数据

在这里插入图片描述

无法绕过

分站存储

将上传的文件存储到一台单独的服务器,一般该单独服务器是只拿来做存储使用,并且可能禁止执行权限,无法绕过

OSS存储

使用oss云存储服务,是第三方存储服务,一般遇到访问就下载文件,无法绕过

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++学习路线(二十二)

构造函数 构造函数作用 在创建一个新的对象时&#xff0c;自动调用的函数&#xff0c;用来进行“初始化”工作:对这个对象内部的数据成员进行初始化。 构造函数特点 1.自动调用(在创建新对象时&#xff0c;自动调用) 2.构造函数的函数名&#xff0c;和类名相同 3.构造函数…

Pytorch学习--如何下载及使用Pytorch中自带数据集,如何把数据集和transforms联合在一起使用

一、标准数据集使用 pytorch官网–标准数据集 这里以CIFAR10数据集为例&#xff1a;CIFAR10 下载数据集 代码&#xff1a; import torchvision train_datatorchvision.datasets.CIFAR10(root"datasets",trainTrue,downloadTrue) test_datatorchvision.datasets.…

盘古信息制造数字化优才计划 | 解决人才困境 赋能智能制造

在中国制造2025的大背景下&#xff0c;制造业正以前所未有的速度向数字化、智能化转型。在这场深刻的变革中&#xff0c;人才作为核心驱动力&#xff0c;其重要性日益凸显。作为全球领先的制造运营管理工业软件供应商&#xff0c;盘古信息深知构建制造人才生态的重要性&#xf…

EasyExcel_动态表头的导入导出

文章目录 前言一、EasyExcel二、使用步骤1.引入jar包2.数据准备2.1 数据库 3.方法实例3.1 无实体的导入3.1.1 Controller3.1.2 Service3.1.3 Listener3.1.4 Utils3.1.5 无实体导入数据返回说明 3.2 无实体的导出3.2.1 无实体导出数据(这里只贴出关键代码,Service代码处理)3.2.2…

Kafka Tool(Offset Explorer)在windows下配置访问kerberos认证Kafka

Author : Spinach | GHB Link : http://blog.csdn.net/bocai8058文章目录 前言准备配置文件配置软件参数及启动 前言 Offset Explorer&#xff08;以前称为Kafka Tool&#xff09;是一个用于管理和使用Apache Kafka集群的图形用户界面&#xff08;GUI&#xff09;应用程序。…

登录时用户名密码加密传输(包含前后端代码)

页面输入用户名密码登录过程中&#xff0c;如果没有对用户名密码进行加密处理&#xff0c;可能会导致传输过程中数据被窃取&#xff0c;就算使用https协议&#xff0c;在浏览器控制台的Request Payload中也是能直接看到传输的明文&#xff0c;安全感是否还是不足。 大致流程&a…

FreeRTOS代码规范(3)

数据类型 portmacro.h : 在里面定义了Free RTOS 用到的相关数据类型 在 CM-3 内核中 short类型是16位&#xff0c;long 类型是32位 在 portmacro.h 中有两个最基本的数据类型 &#xff1a; Base type_t Tick type_t 这两个数据类型的存在是基于执行效率考虑的&#xff0c;…

如何使用 NumPy 和 Matplotlib 进行数据可视化

如何使用 NumPy 和 Matplotlib 进行数据可视化 在数据科学领域&#xff0c;NumPy 和 Matplotlib 是 Python 中最常用的两个库。NumPy 用于科学计算和数据处理&#xff0c;而 Matplotlib 提供了丰富的图表工具来展示数据。本文将介绍如何将这两个库结合使用&#xff0c;轻松进行…

腾讯会议pc端3.29.11开启悬浮窗口

之前是&#xff1a;pc端每次最小化&#xff0c;它就自动收回到任务栏里了 版本&#xff1a;3.29.11 解决办法&#xff1a; 打开腾讯会议&#xff0c;点击左上角的【头像】。 单击【设置】。 选择【显示当前说话者】来管理麦克风浮窗。 再进入会议&#xff0c;点击最小化一哈&…

中小企业设备资源优化:Spring Boot系统实现

2相关技术 2.1 MYSQL数据库 MySQL是一个真正的多用户、多线程SQL数据库服务器。 是基于SQL的客户/服务器模式的关系数据库管理系统&#xff0c;它的有点有有功能强大、使用简单、管理方便、安全可靠性高、运行速度快、多线程、跨平台性、完全网络化、稳定性等&#xff0c;非常…

RabbitMQ常见问题持续汇总

文章目录 消息分发不公平分发限流-basic.qos主要功能使用场景示例代码 消费者默认concurrency数量prefetch和concurrency结合&#xff1f; spring.rabbitmq.template.retry.enabledtrue和spring.rabbitmq.listener.simple.retry.enabledtrue有什么区别1. spring.rabbitmq.templ…

Appium环境搭建全流程(含软件)

目录 1.node.js的安装 1--中文下载地址 2--node.js设置镜像源 2.安装appium 1--全局安装appium 2--安装驱动 uiautomator2 3--查看插件的命令 4--安装 images插件 5--安装 execute-driver 插件 6--安装 relaxed-caps插件 7--安装 universal-xml 插件 3.python安装 1--python下…

Excel功能区变灰是什么原因造成?怎么解决?

Microsoft Excel是广泛使用的电子表格软件&#xff0c;但有时用户可能会遇到功能区变灰的问题&#xff0c;这可能导致功能无法使用&#xff0c;影响工作效率和用户体验。本文将深入探讨Excel功能区灰色的原因及解决方案&#xff0c;帮助读者快速解决这一问题。 一、Excel功能区…

Windows 使用命令行开启热点(无线网卡连接下)

winr 打开命令提示符框&#xff08;管理员模式&#xff09;在cmd中输入 netsh wlan show drivers 检查无线网卡是否已插入继续输入 ssid后面是wifi名称&#xff0c;key后面是密码&#xff0c;可以自行更改 netsh wlan set hostednetwork modeallow ssidWDW keyWDWWDWWDW 设置热…

开源模型应用落地-Qwen2.5-7B-Instruct与vllm实现推理加速的正确姿势-Gradio

一、前言 目前&#xff0c;Qwen模型已经升级到了2.5版本。无论是语言模型还是多模态模型&#xff0c;它们都是在大规模的多语言和多模态数据上进行预训练的&#xff0c;并通过高质量的数据进行后期微调&#xff0c;以更好地符合人类的需求。 Gradio作为一个强大的工具&#xff…

APP专项测试-冷启动-流量-电量-内存

1、响应时间 1.1怎么获取冷启动时间&#xff08;热启动&#xff0c;就是后台不关后台再次打开&#xff09; 方法一 1.2怎么获取包名 与 启动页 方法三soloPi&#xff1a;启动时间(用户角度出发&#xff0c;页面差异进行计算时间)&#xff1a; 然后默认配置。点击开始录制 1开…

云计算行业应用实训室建设方案

一、引言 云计算作为信息技术领域的重要分支&#xff0c;正在深刻影响着各行各业的发展。随着云计算技术的不断成熟和应用领域的不断拓展&#xff0c;对云计算专业人才的需求日益增长。实训室作为培养学生实践能力和创新能力的重要场所&#xff0c;其建设对于提高教育质量和满…

模拟信号采集显示器+GPS同步信号发生器制作全过程(焊接、问题、代码、电路)

1、制作最小系统板 在制作最小系统板的时候&#xff0c;要用USB转TTL给板子供电&#xff0c;留了一个电源输入的四个接口&#xff0c;同时又用排针引出来VCC和GND用于后续其他外设的电源供应&#xff0c;电源配有电源指示灯和保护电容&#xff0c; 当时在焊接的时候把接口处的…

数学建模与优化算法:从基础理论到实际应用

数学建模和优化算法&#xff0c;它们不仅帮助我们理解和描述复杂系统的行为&#xff0c;还能找到系统性能最优化的解决方案。本文将从基础的数学理论出发&#xff0c;逐步深入到各种优化算法&#xff0c;并探讨它们在实际问题中的应用。 思维导图文件可获取&#xff1a;https:…

51单片机应用开发(进阶)---外部中断(按键+数码管显示0-F)

实现目标 1、巩固数码管、外部中断知识 2、具体实现&#xff1a;按键K4&#xff08;INT1&#xff09;每按一次&#xff0c;数码管从0依次递增显示至F&#xff0c;再按则循环显示。 一、共阳数码管 1.1 共阳数码管结构 1.2 共阳数码管码表 共阳不带小数点0-F段码为&#xff…