-PHP 应用文件上传函数缺陷条件竞争二次渲染黑白名单JS 绕过

#学习前必读:
1 、课前一定要明白:
无文件解析安全问题上,格式解析是一对一的(不能 jpg 解析 php
换句话来说有解析错误配置或后缀解析漏洞时才能实现格式差异解析
2 、文件上传安全指的是攻击者通过利用上传实现后门的写入连接后门进行权限控制的安
全问题,对于如何确保这类安全问题,一般会从原生态功能中的文件内容,文件后缀,文
件类型等方面判断,但是漏洞可能不仅在本身的代码验证逻辑中出现安全问题,也会在语
言版本,语言函数,中间件,引用的第三方编辑器等存在缺陷地方配合利用。另外文件上
传也有多个存储逻辑,不同的文件存储方案也会给攻击者带来不一样的挑战!
# 测试环境安装参考:
https://github.com/ffffffff0x/f8x
https://github.com/fuzzdb-project/fuzzdb
https://github.com/sqlsec/upload-labs-docker
0 、下载上述资源
1 docker 安装
f8x -d f8x -docker
2 、进入项目文件夹
cd upload-labs-docker
3 、一键部署运行
docker-compose up -d
#upload-labs-docker 知识点:
1 、前端 JS
如何判断是否是前端验证呢?
首先抓包监听,如果上传文件的时候还没有抓取到数据包,但是浏览器就提示文件类型不
正确的话,那么这个多半就是前端校验了
2 .htaccess
AddType application/x-httpd-php .png(将png类型解析成php类型)
先上传.htaccess 在上传png类型
3 MIME 类型
Content-Type image/png
4 、文件头判断
GIF89a
5 、黑名单 - 过滤不严(大小写 双写php  00截断(魔术开关要关 版本小于5.34)   PHP5之类)
6.条件竞争
先上传 后判断逻辑(就是在文件上传一刹那 访问)
7.二次渲染
如果放大图片 还要图片清晰 就会进行二次渲染 这就会改动代码  使用010editor 
8.函数缺陷
对于move_upload_file 函数 上传文件用shell.php/.就能上传

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

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

相关文章

C++的模板(十四):更多的自动内存管理

在前文《C的模板(八):子系统》class DMM,给出了一个自动动态内存管理的例子。https://blog.csdn.net/aaasssdddd96/article/details/139921880 它使用了一个list容器,把两个类型兼容的指针存放在一起。在new的时候,随即就把得到的…

Windows下VSCode的安装

前言 VSCode的安装看起来平平无奇,但也不是轻轻松松的。笔者将最新的Windows下安装VSCode,以及运行最简单的C程序的过程记录下来,供后续的自己和大家参考。 一、官网下载安装包 Visual Studio Code - Code Editing. Redefined 二、安装 直接…

Matlab教程004:Matlab矩阵的拼接重构重排以及矩阵的运算

文章目录 1.4.3 矩阵的拼接重构重排1.4.3.1 横向拼接1.4.3.2 纵向拼接1.4.3.3 矩阵的重构重排 1.4.4 矩阵的运算1.4.4.1 算数运算1.4.4.2 矩阵加减1.4.4.3 矩阵乘法1.4.4.4 矩阵转置 1.4.3 矩阵的拼接重构重排 1.4.3.1 横向拼接 A和B的行数相同,那么使用[A,B]、[A …

Python小练习系列 Vol.3:生成有效括号组合(回溯 + DFS)

🧠 Python小练习系列 Vol.3:生成有效括号组合(回溯 DFS) 👋 本期我们来刷一道 LeetCode 热门经典题,借此掌握回溯算法的精髓 —— 生成有效括号组合,是学习递归 & DFS 的黄金题型&#xff…

实战经验深度解析 | 博睿数据制造行业精选案例集发布!

近年来,我国制造业加速迈向高端化、智能化、绿色化,为经济高质量发展注入新动能。放眼全球,制造业正加速数字化、智能化转型,5G、人工智能、边缘计算等技术与生产全流程深度融合,有力推动柔性化生产与产业链协同创新发…

[创业之路-344]:战略的本质是选择、聚焦, 是成本/效率/低毛利优先,还是差易化/效益/高毛利优先?无论是成本优先,还是差易化战略,产品聚焦是前提。

前言: 一、战略的本质是选择、聚焦 关于战略的本质,触及了商业竞争的核心矛盾:选择成本优先(效率/低毛利)还是差异化(效益/高毛利),本质上是对企业战略方向的终极拷问。 1、战略选…

项目代码第10讲【数据库运维知识——如何优化数据库查询效率?】:各种日志查看;主从复制;分库分表(MyCat);读写分离;区别数据分区、分表、分库

01. 运维-课程介绍_哔哩哔哩_bilibili 一、各种日志查看 二、主从复制 三、分库分表(MyCat) 四、读写分离 五、区别数据分区、分表、分库 1、数据库分区 上图中的ibd文件,是分区表的数据文件,可以分布在不同的物理设备上&…

OpenCV图像拼接(10)用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类cv::detail::Timelapser

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::detail::Timelapser 是 OpenCV 库中用于实现图像拼接过程中的时间流逝(timelapse)效果的一个类。它通常用于将一系列…

Transformer 通关秘籍2:利用 BERT 将文本 token 化

前面两节分别通过两个代码示例展示了模型将文本转换为 token 之后是什么样的,希望你可以对此有一个感性的认识。 本节来简要介绍一下将一个连续的文本转换为 token 序列的大致过程,这个过程被称为分词,也叫 tokenization。 在你没了解这方面…

Optional的stream方法,flatMap, filter应用

Java 8引入的Optional和Stream彻底改变了我们处理空值和集合操作的方式。本文将深入探讨如何将二者结合使用,通过四个核心场景提升代码的健壮性和简洁性。 一、Optional构成的Stream:空值自动过滤 当处理Optional集合时,我们常需要过滤掉空…

参加李继刚线下活动启发:未来提示词还会存在吗?

上周六,我参加了李继刚老师组织的线下活动。 现场干货满满,尤其是关于 AI 时代提示词的价值、与 AI 沟通的艺术等话题,李老师的分享如同醍醐灌顶,让我对 AI 人机协作有了更深的理解。 将几点核心收获整理出来,与大家…

Python基础知识第二天:从格式化到流程控制

Python基础知识第二天:从格式化到流程控制 大家好!今天我们来梳理Python的一些重要基础知识,包括格式化输出、输入函数、运算符以及流程控制语句。 1. 格式化输出 Python提供了多种格式化输出的方式: # %d, %f, %s 格式化name &q…

GDB: coredump

前言:一句话如下使用 gdb [exec_file] [core_file] # or gdb -c [core_file] [exec_file] #-c指定转储的core文件 gdb -c core.5213 spp_uc_frequent_contact_ol_worker # 进入后输入bt查看调用栈 bt #显示所有帧栈 bt 10 #显示前面10个帧栈(感觉没啥用) bt …

21_js正则_表单验证

目录 正则 一、 正则的概念 二、创建正则方式 2.1 构造函数去创建正则 2.2 字面量去创建正则 2,3 test方法 三、正则修饰符 四、 正则的方法 lastIndex test方法 exec 五、字符串方法 replace match search split 六、正则表达式的构成 元字符-- 定位符 元字…

矿山自动化监测解决方案

1.行业现状 为贯彻落实《中共中央国务院关于推进安全生产领域改革发展的意见》《“十四五”矿山安全生产规划》(应急〔2022〕64号)、《国务院安委会办公室关于加强矿山安全生产工作的紧急通知》(安委办〔2021〕3号)等有关工作部署…

企业级知识库建设:自建与开源产品集成的全景解析 —— 产品经理、CTO 与 CDO 的深度对话

文章目录 一、引言二、主流产品与方案对比表三、自建方案 vs. 开源产品集成:技术路径对比3.1 自建方案3.2 开源产品集成方案 四、结论与个人观点 一、引言 在当今数据驱动的商业环境中,构建高质量的知识库已成为企业数字化转型的关键一环。本博客分别从…

【蓝桥杯】单片机设计与开发,温度传感器DS18B20

一、温度传感器概述 结构图 二、通信过程 三、onewire单总线协议概述 四、单总线的工作原理 黑粗线是单片机发送的,浅的是s18b20回应的 五、温度传感器的应用 六、onewire 七、课后习题

Python 在Word中查找并替换文本

在操作Word文档时,如果想要修正一处反复出现的拼写错误,统一文中前后不一致的术语,或者将文档中所有的旧联系方式更新为新号码。这时我们可以使用 Word中的查找替换功能,快速定位并批量处理文档中的特定文本,提升编辑效…

Python 笔记 (二)

Python Note 2 1. Python 慢的原因2. 三个元素3. 标准数据类型4. 字符串5. 比较大小: 富比较方法 rich comparison6. 数据容器 (支持*混装* )一、允许重复类 (list、tuple、str)二、不允许重复类 (set、dict)1、集合(set)2、字典(dict)3、特殊: 双端队列 deque 三、数据容器的共…

kill子进程后再wait可以吗?

在父进程中先使用 kill 函数终止子进程,之后再使用 wait 函数是可行的,下面从原理、使用示例、注意事项几个方面详细说明。 原理 kill 函数:其作用是向指定进程发送信号。当向子进程发送 SIGTERM(通常用于请求进程正常终止&…