CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)

文章目录

  • CTFHUB-技能树-Web前置技能-文件上传(前端验证—MIME绕过、00截断、00截断-双写后缀)
        • 前端验证—MIME绕过
          • 有关MIME
            • MIME的作用
          • 解题时有很多种思路
          • 题目解析
        • MIME绕过—00截断
          • 关于00截断
          • 题目解析
        • MIME绕过—00截断-双写后缀
          • 关于双写
          • 题目解析

前端验证—MIME绕过
有关MIME

web服务器使用MIME来说明发送数据的种类, web客户端使用MIME来说明希望接收到的数据种类

MIME的作用

使客户端软件,区分不同种类的数据,例如web浏览器就是通过MIME类型来判断文件是GIF图片,还是可打印的PostScript文件。

简单来说就是一种校验机制,当文件进行上传的时候对文件的Content-Type进行校验,如果是白名单中所允许的类型则能够成功上传,如果不是则无法上传。

解题时有很多种思路

方法一

直接上传木马文件,把mime类型改为前端可验证的

方法二

也就是直接传入前端可验证文件,抓包修改为PHP脚本文件

题目解析

既然是Content-Type验证,就需要进行抓包

依旧上传php一句话木马文件,并抓包

这里,修改Content-Type字段的值为image/jpeg(也可以是别类型)

在这里插入图片描述

放包,发现上传成功
在这里插入图片描述

访问一下,发现执行成功
在这里插入图片描述

用蚁剑进行连接,寻找flag即可

在这里插入图片描述

html中发现flag

在这里插入图片描述

MIME绕过—00截断
关于00截断

截断原理:
0x00是字符串的结束标识符,攻击者可以利用手动添加字符串标识符的方式来将后面的内容进行截断,而后面的内容又可以帮助我们绕过检测。
00截断的限制条件:
PHP<5.3.29,且GPC关闭

参考链接:http://www.admintony.com/%E5%85%B3%E4%BA%8E%E4%B8%8A%E4%BC%A0%E4%B8%AD%E7%9A%8400%E6%88%AA%E6%96%AD%E5%88%86%E6%9E%90.html
00截断有限制,php版本得低于5.3,并且GPC得关闭,一般在url上。
两种方法,%00和0x00,后台读取是遇到%00就会停止。
举个例子,url中输入的是upload/post.php%00.jpg,那么后台读取到是upload/post.php,就实现了绕后目的。
————————————————
参考链接:https://blog.csdn.net/m0_52432374/article/details/113850458

00截断简单来说,就是由于php解释器是由C语言编写的,所以遵循C语言解析文件时遇到ascll码0时停止解析,而%00表示ascll码中的0,所以php解释器在解析文件时遇到%00就会默认文件名已经解析结束,所以我们可以利用这一原理进行上传。

题目解析

这里直接上传php一句话木马文件,不可行,显示文件类型不匹配

在这里插入图片描述

查看源代码发现,设置了白名单

在这里插入图片描述

根据提示,我们使用00截断进行绕过。

首先使用bp抓包

我们找到文件名,在文件名后面,在POST请求后面,都加上我们的截断(让他后面的代码不在执行。),1.php%00;.jpg

在这里插入图片描述

放包,上传成功

在这里插入图片描述

虽然这次页面没有提示我们的文件存放在哪里,但是根据之前的题目。我们可以判断出我们上传的文件摆放在upload目录下面。我们直接访问/upload/1.php,发现代码执行成功

在这里插入图片描述

然后我们使用蚁剑进行连接一句话木马,寻找flag

在这里插入图片描述

MIME绕过—00截断-双写后缀
关于双写

双写后缀绕过,这里适用于前后端都对文件的扩展名做了限制。我们可以通过双写文件的扩展名,达到绕过的目的。例如:xxx.php=>xxx.pphphp.

用于只将文件后缀名,例如"php"字符串过滤的场合; 
例如:上传时将Burpsuite截获的数据包中文件名【evil.php】改为【evil.pphphp】,那么过滤了第一个"php"字符串"后,开头的'p'和结尾的'hp'就组合又形成了【php】。
题目解析

先规矩的上传一个php文件,发现上传成功

在这里插入图片描述

但文件后缀名被过滤了(原先我的文件名字是1.php)

查看源代码,发现使用了黑名单机制

在这里插入图片描述

如果是文件名被过滤,我们就可以直接利用双写来绕过。我们回到我们的文件,将后缀进行两次写入,使用双写后缀绕过。

两种方法:

在上传前,将后缀名改为pphphp

在上传时,用bp抓包,将filename文件名改为1.pphphp

注意,双写一定要在php里面在写一个php,不能两个php连着写,不然两个php都会被识别,两个都会被过滤掉

这里使用bp抓包的方法

将filename文件名改为1.pphphp

在这里插入图片描述

放包,上传成功

在这里插入图片描述

访问,发现代码执行

在这里插入图片描述

使用蚁剑连接,寻找flag

在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习笔记】Vue3源码解析:第四部分- runtime-dom(1)

课程地址&#xff1a;【已完结】全网最详细Vue3源码解析&#xff01;&#xff08;一行行带你手写Vue3源码&#xff09; 第四部分-&#xff1a;&#xff08;对应课程的第24-26节&#xff09; 第24节&#xff1a;《理解runtime-dom的作用》 源码中除了 dep.ts &#xff0c;其余基…

设计模式——备忘录模式18

备忘录模式将创建状态快照 /备份的工作委派给实际状态的拥有者 &#xff08;Originator&#xff09; 对象。 这样其他对象就不再需要从 “外部” 复制文件状态了&#xff0c; 拥有者拥有其文件状态的完全访问权&#xff0c; 因此可以自行生成快照。 设计模式&#xff0c;一定要…

Linux-时间同步服务器

1. (问答题) 一.配置server主机要求如下&#xff1a; 1.server主机的主机名称为 ntp_server.example.com 编写脚本文件 #!/bin/bash hostnamectl hostname ntp_server.example.com cd /etc/NetworkManager/system-connections/ rm -fr * cat > eth0.nmconnection <&…

SpringBoot相关知识点总结

1 SpringBoot的目的 简化开发&#xff0c;开箱即用。 2 Spring Boot Starter Spring Boot Starter 是 Spring Boot 中的一个重要概念&#xff0c;它是一种提供依赖项的方式&#xff0c;可以帮助开发人员快速集成各种第三方库和框架。Spring Boot Starter 的目的是简化 Sprin…

【架构-14】数据库性能优化方式

数据库出现性能瓶颈对外的表现为&#xff1a; 大量请求阻塞SQL操作变慢存储出现问题 为解决上述出现的问题&#xff0c;因此推出了一系列的数据库性能优化方式。 数据库性能优化是提高数据库系统性能和响应时间的关键任务。以下是一些常见的 数据库性能优化方式&#xff1a; …

力扣152. 乘积最大子数组

Problem: 152. 乘积最大子数组 文章目录 题目描述思路复杂度Code 题目描述 思路 1.初始化&#xff1a;首先&#xff0c;我们创建两个数组maxNum和minNum&#xff0c;并将它们初始化为输入数组nums。这两个数组用于存储到当前位置的最大和最小乘积。我们还需要一个变量maxProduc…

51单片机之DS1302实时时钟

1.DS1302时钟芯片介绍 DS1302是由美国DALLAS公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。它可以对年、月、日、周、时、分、秒进行计时&#xff0c;且具有闰年补偿等多种功能RTC(Real Time Clock)&#xff1a;实时时钟&#xff0c;是一种集成电路&#xff0c;通常称…

HTML段落标签、换行标签、文本格式化标签与水平线标签

目录 HTML段落标签 HTML换行标签 HTML格式化标签 加粗标签 倾斜标签 删除线标签 下划线标签 HTML水平线标签 HTML段落标签 在网页中&#xff0c;要把文字有条理地显示出来&#xff0c;就需要将这些文字分段显示。在 HTML 标签中&#xff0c;<p>标签用于定义段落…

【前端】1. HTML【万字长文】

HTML 基础 HTML 结构 认识 HTML 标签 HTML 代码是由 “标签” 构成的. 形如: <body>hello</body>标签名 (body) 放到 < > 中大部分标签成对出现. <body> 为开始标签, </body> 为结束标签.少数标签只有开始标签, 称为 “单标签”.开始标签和…

一次配置Docker环境的完整记录

一次配置Docker环境的完整记录 Docker环境搭建报错与解决报错一报错二报错三 Docker环境搭建 本节介绍了一次配置docker环境的完整记录&#xff1a; 编写Dockerfile文件&#xff1a; FROM pytorch/pytorch:1.10.0-cuda11.3-cudnn8-develRUN rm /etc/apt/sources.list.d/cuda.l…

C++设计模式|创建型 2.工厂模式

1.简单工厂思想 简单工厂模式不属于23种设计模式之⼀&#xff0c;更多的是⼀种编程习惯。它的核心思想是将产品的创建过程封装在⼀个⼯⼚类中&#xff0c;把创建对象的流程集中在这个⼯⼚类⾥⾯。卡码网将其结构描述为下图所示的情况&#xff1a; 简单⼯⼚模式包括三个主要⻆⾊…

zabbix 自动发现与自动注册 部署 zabbix 代理服务器

zabbix 自动发现&#xff08;对于 agent2 是被动模式&#xff09; zabbix server 主动的去发现所有的客户端&#xff0c;然后将客户端的信息登记在服务端上。 缺点是如果定义的网段中的主机数量多&#xff0c;zabbix server 登记耗时较久&#xff0c;且压力会较大。1.确保客户端…

uboot的移植

文章目录 一、官方uboot移植1.Uboot系统复制到Ubuntu系统2.解压Uboot系统3.编译Uboot系统4.生成可执行文件5.将u-boot.bin烧录到SD卡6.SD卡插入到板子&#xff0c;启动方式选择SD卡7.复位板子&#xff0c;查看打印信息&#xff0c;编译时间是否正常 二、根据官方提供的uboot添加…

frp 内网穿透配置(v0.55.1 版本)

注意&#xff1a;从 [v0.52.0] 版本开始&#xff0c;配置文件由 frps.ini 改成了 frps.toml 一种快速反向代理&#xff0c;可帮助您将 NAT 或防火墙后面的本地服务器暴露给 Internet。 GitHub 地址 &#xff1a; github.com/fatedier/fr… 下载之后如果碰到杀毒软件报毒&#x…

富文本在线编辑器 - tinymce

tinymce 项目是一个比较好的富文本编辑器. 这里有个小demo, 下载下来尝试一下, 需要配置个本地服务器才能够访问, 我这里使用的nginx, 下面是我的整个操作过程: git clone gitgitee.com:chick1993/layui-tinymce.git cd layui-tinymcewget http://nginx.org/download/nginx-1.…

00_Qt概述以及如何创建一个QT新项目

Qt概述 1.Qt概述1.1 什么是Qt1.2 Qt的发展史1.3 支持的平台1.4 Qt版本1.5 Qt的下载与安装1.6 Qt的优点 2.QT新项目创建3.pro文件4.主函数5.代码命名规范和快捷键 1.Qt概述 1.1 什么是Qt Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面…

【一竞技CS2】VP战队官宣签下electroNic取代mir

1、近日VP战队官宣签下electroNic&#xff0c;以取代阵容中的mir。 electroNic自己也表示&#xff1a;“VP是一支顶级队伍。阵容核心曾赢得Major冠军&#xff0c;所有队员都处于巅峰状态并且时刻准备着去争夺冠军。我们有着一样的雄心壮志。 此外我还对和Jame很感兴趣&#xf…

解决nginx日志过大问题

1. 问题点 nginx默认的日志在logs/access.log&#xff0c;并且是一直累加写入&#xff0c;时间长了就会非常大&#xff0c;占用过多的硬盘&#xff0c;如果强行删除是很不友好的&#xff0c;需要重启服务&#xff1b; 2. 文件分割 上图文件已经达到了十个G左右 处理的思路肯定…

AI大模型探索之路-应用篇14:认识国产开源大模型GLM

目录 前言 一、国产主流大模型概览 1. 国内主流大模型清单 2. 主流大模型综合指数 3. 大语言模型评测榜单 二、GLM大模型介绍 三、GLM大模型发展历程 四、GLM家族之基座模型GLM-130B 五、GLM家族之ChatGLM3 六、GLM家族之WebGLM 七、GLM家族之CogVLM 1. CogVLM 2. …

2024五一杯数学建模A题思路分析

文章目录 1 赛题思路2 比赛日期和时间3 组织机构4 建模常见问题类型4.1 分类问题4.2 优化问题4.3 预测问题4.4 评价问题 5 建模资料 1 赛题思路 (赛题出来以后第一时间在CSDN分享) https://blog.csdn.net/dc_sinor?typeblog 2 比赛日期和时间 报名截止时间&#xff1a;2024…