CTFHUB-技能树-Web前置技能-文件上传(前端验证—文件头检查)

news2024/11/16 16:44:55

CTFHUB-技能树-Web前置技能-文件上传(前端验证—文件头检查)

文章目录

  • CTFHUB-技能树-Web前置技能-文件上传(前端验证—文件头检查)
      • 前端验证—文件头检查
          • 题目解析
        • 各种文件头标志

前端验证—文件头检查

题目考的是:png,gif等文件在文件的头部都会有其专有的字符,都确定这是什么类型的文件

比如用winhex打开,可以看到png专属的文件头信息。

解题方法:

1、制作图片木马

2、上传一个图片,使用bp抓包,在图片代码末尾中插入一句话木马,并修改filename为php文件

在这里插入图片描述

3、使用编辑器010editor、weihex等工具,在图片末尾插入一句话木马,抓包,并修改filename为php文件

在这里插入图片描述

题目解析

先上传一个php文件,发现提示

在这里插入图片描述

PHP文件被拦截了,然后我们看回题目,文件头检查,那么文件头是什么呢

在这里插入图片描述

简单来说,就是每个文件的最开头部分,就是文件头,他代表了这个文件的是属于什么类型,例如

我们随便打开一个png格式的文件

在这里插入图片描述

在这里插入图片描述

右侧开头%PNG就是这个文件的文件头,这也代表了这个文件是一个png文件,打开一个jpg文件
在这里插入图片描述

由此可见,只要是相同类型的文件,他的文件头就是一样的,这样代表了这个文件是属于什么类型,既然本题用到的是文件头检查,那我们制作一个图片马,将我们的一句话代码放入图片里面然后进行上传。

可以自己用画图工具做一个简单的png图片,一定要简单,做一个简朴的图,否则一些乱码会使php报错

我们先创造一个名为1.png的图片,然后写一个名为1.php的一句话代码,把他们放到同一目录下,用cmd生成一个名为2.php的图片马

在这里插入图片描述

copy 1.png/b+1.php/a 2.php

然后将此木马进行上传,并用bp抓包

在这里插入图片描述

将此段改为图片格式(MIME绕过,这段代表着一个文件的格式)

然后进行放包,文件上传成功

在这里插入图片描述

访问,发现代码执行

在这里插入图片描述

使用蚁剑连接,寻找flag

在这里插入图片描述

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

各种文件头标志
JPEG (jpg),文件头:FFD8FF

PNG (png),文件头:89504E47

GIF (gif),文件头:47494638

TIFF (tif),文件头:49492A00

Windows Bitmap (bmp),文件头:424D

CAD (dwg),文件头:41433130

Adobe Photoshop (psd),文件头:38425053

Rich Text Format (rtf),文件头:7B5C727466

XML (xml),文件头:3C3F786D6C

HTML (html),文件头:68746D6C3E

Email [thorough only] (eml),文件头:44656C69766572792D646174653A

Outlook Express (dbx),文件头:CFAD12FEC5FD746F

Outlook (pst),文件头:2142444E

MS Word/Excel (xls.or.doc),文件头:D0CF11E0

MS Access (mdb),文件头:5374616E64617264204A

WordPerfect (wpd),文件头:FF575043

Postscript (eps.or.ps),文件头:252150532D41646F6265

Adobe Acrobat (pdf),文件头:255044462D312E

Quicken (qdf),文件头:AC9EBD8F

Windows Password (pwl),文件头:E3828596

ZIP Archive (zip),文件头:504B0304

RAR Archive (rar),文件头:52617221

Wave (wav),文件头:57415645

AVI (avi),文件头:41564920

Real Audio (ram),文件头:2E7261FD

Real Media (rm),文件头:2E524D46

MPEG (mpg),文件头:000001BA

MPEG (mpg),文件头:000001B3

Quicktime (mov),文件头:6D6F6F76

Windows Media (asf),文件头:3026B2758E66CF11

MIDI (mid),文件头:4D546864

2、从winhex中取出的文件头列表

File Type ExtensionsHeader

JPEG jpg;jpeg 0xFFD8FF

PNG png 0x89504E470D0A1A0A

GIF gif GIF8

TIFF tif;tiff 0x49492A00

TIFF tif;tiff 0x4D4D002A

Bit map bmp BM

AOL ART art 0x4A47040E000000

AOL ART art 0x4A47030E000000

PC Paintbrush pcx 0x0A050108

Graphics Metafile wmf 0xD7CDC69A

Graphics Metafile wmf 0x01000900

Graphics Metafile wmf 0x02000900

Enhanced Metafile emf 0x0100000058000000

Corel Draw cdr CDR

CAD dwg 0x41433130

Adobe Photoshop psd 8BPS

Rich Text Format rtf rtf

XML xml

HTML html;htm;PHP;php3;php4;phtml;shtml type

Email eml Delivery-date:

Outlook Express dbx 0xCFAD12FE

Outlookpst!BDN

MS Office/OLE2doc;xls;dot;ppt;xla;ppa;pps;pot;msi;sdw;db 0xD0CF11E0A1B11AE1

MS Access mdb;mda;mde;mdt Standard J

WordPerfect wpd 0xFF575043

OpenOffice Writer sxw writer

OpenOffice Calc sxc calc

OpenOffice Math sxm math

OpenOffice Impress sxi impress

OpenOffice Draw sxd draw

Adobe FrameMaker fm

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

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

相关文章

第二部分 Python提高—GUI图形用户界面编程(三)

简单组件学习 Radiobutton 单选按钮、Checkbutton 复选按钮和canvas 画布 文章目录 Radiobutton 单选按钮Checkbutton 复选按钮canvas 画布 Radiobutton 单选按钮 Radiobutton 控件用于选择同一组单选按钮中的一个。Radiobutton 可以显示文本,也可以显示图像。 f…

基于XML配置bean(二)

文章目录 1.工厂中获取bean1.静态工厂1.MyStaticFactory.java2.beans.xml3.测试 2.实例工厂1.MyInstanceFactory.java2.beans.xml3.测试 3.FactoryBean(重点)1.MyFactoryBean.java2.beans.xml3.测试 2.bean配置信息重用继承抽象bean1.beans.xml2.测试 3.…

《系统分析与设计》实验-----在线书店系统 需求规格说明书 哈尔滨理工大学PLUS完善版

文章目录 需求规格说明书1.引言1.1编写目的1.2项目背景1.3定义1.4参考资料 2.任务概述2.1目标2.2运行环境2.3条件与限制 3.数据描述3.1静态数据3.2动态数据3.3数据库介绍3.4数据词典3.5数据采集 4.功能需求4.1功能划分4.2功能描述…

transformer架构详细详解

一、transformer的贡献 transformer架构的贡献:该架构只使用自注意力机制,没有使用RNN或卷积网络。且可以实现并行计算,加快模型训练速度。 (将所有的循环层全部换成:multi-headed self-attention) 二、t…

Day13-Python基础学习之数据分析案例

数据分析案例 data_define.py # 数据定义的类 class Record:def __init__(self, date, order_id, money, province):self.date dateself.order_id order_idself.money moneyself.province province ​def __str__(self):return f"{self.date}, {self.order_id}, {se…

OpenGL:图元

OpenGL的图元 点 GL_POINTS: 将顶点绘制成单个的点 线 GL_LINES:将顶点用于创建线段,2个点成为一条单独的线段。如果顶点个数是奇数,则忽略最后一个。 顶点:v0, v1, v2, v3, … , vn,线段:v0-v1, v2-v3, v4-v5, … , vn-1 - vn GL_LINE_STRIP:将顶点用于创建线段,…

驱动创新成长,智能费控助力国央企财务数智化升级

如果说中小企业是我国国民经济的毛细血管,那么国央企就是承载着我国市场发展的主动脉,是国民经济的重要支柱。今年以来,面对复杂严峻的国内外发展环境,国央企锚定目标,深入开展提质增效专项行动,打出深化改…

基础算法之二分算法

前言 本次博客,将要介绍二分算法的基本原理以及如何使用,深入浅出 二分可以针对整型以及浮点型接下来对其讲解希望对小白有所帮助吧 整型的二分法 一般要在一个数组中猜出一个数是否存在我们可以遍历一遍整个数组,判断是否存在&#xff0…

python学习笔记B-07:序列结构之列表--列表的常用函数和方法

以xx_函数名(列表名)的形式出现的是函数;以xx_列表名.xx_方法名的形式出现的是方法。 列表常用函数如下: len():计算列表元素数量 max():获取列表元素最大值 min():获取列表元素最小值 sum():计算列表中各元素之和 列表常用方法如…

wps导出pdf文献引用不能跳转解决办法

问题描述 本科论文参考文献使用wps设置交叉引用,但导出pdf后无法跳转引用 尝试 用office word打开文件word版跳转没有问题, 另存为pdf或导出pdf。 但是pdf版跳转完全错误。 16跳到14.但是总体而言都是跳到包含该序号的页 要求不高的话也可以&#x…

【WebSocket连接异常】前端使用WebSocket子协议传递token时,Java后端的正确打开方式!!!

文章目录 1. 背景2. 代码实现和异常发现3. 解决异常3.1 从 URL入手3.2 从 WebSocket子协议的使用方式入手(真正原因) 4. 总结(仍然存在的问题) 前言: 本篇文章记录的是使用WebSocket进行双向通信时踩过的坑&#xff0c…

链表(C语言)

前言:前面几篇文章我们详细介绍了顺序表,以及基于顺序表来实现的通讯录。今天我们连介绍一下链表的下一个结构链表。那么链表和顺序表究竟有什么区别呢?他们两个的优缺点分别是什么。今天这篇文章就带大家了解一下链表。 目录 一.链表的概念…

新质生产力走红背后,华为云的基本盘和自我修养

文 | 智能相对论 作者 | 沈浪 今年全国两会期间走红的“新质生产力”正成为中国产业转型升级的关键方向。政府工作报告更是把“大力推进现代化产业体系建设,加快发展新质生产力”放在今年政府工作任务的重要位置。 何为新质生产力?简单来说&#xff0…

C++奇迹之旅:探索C++拷贝构造函数

文章目录 📝拷贝构造函数🌠 概念🌉特征 🌠浅拷贝(值拷贝)🌉深拷贝 🌠拷贝构造函数典型调用场景🌠应用时效率的思考🚩总结 📝拷贝构造函数 🌠 概念 在现实生…

web轮播图

思路: 例如:有5张轮播的图片,每张图片的宽度为1024px、高度为512px.那么轮播的窗口大小就应该为一张图片的尺寸,即为:1024512。之后将这5张图片0px水平相接组成一张宽度为:5120px,高度依然为:5…

SpringBoot - Logback 打印第三方 Jar 日志解决方案

问题描述 最近碰到一个很苦恼的问题&#xff0c;就是第三方的 Jar 在自己项目里日志可以正常输出&#xff0c;但是一旦被引用到其他项目里&#xff0c;就日志死活打不出来…… 解决方案 这是原来的配置 - logback.xml <?xml version"1.0" encoding"UTF-8…

5G-A有何能耐?5G-A三载波聚合技术介绍

2024年被称作5G-A元年。5G-A作为5G下一阶段的演进技术&#xff0c;到底有何能耐呢&#xff1f; 三载波聚合&#xff08;3CC&#xff09;被认为是首个大规模商用的5G-A技术&#xff0c;将带来手机网速的大幅提升。 █ 什么是3CC 3CC&#xff0c;全称叫3 Component Carriers…

python聊天室

python聊天室 文章目录 python聊天室chat_serverchat_client使用方式1.局域网聊天2.公网聊天 下面是一个简单的示例&#xff0c;包含了chat_client.py和chat_server.py的代码。 chat_server chat_server.py监听指定的端口&#xff0c;并接收来自客户端的消息&#xff0c;并将消…

一个 .net 8 + Azure 登录 + Ant Design Blazor 的基本后台框架

一个 .net 8 Azure 登录 Ant Design Blazor 的基本后台框架 主界面使用了 Ant Design Blazor 项目模板搭建 后台技术是 .net 8 Blazor run at server 模式 登录方式使用 Azure 实现了菜单导航和路由 此外实现了读取和修改本地Json文件的功能&#xff0c;不是必须的&#x…

【Python】OPC UA模拟服务器实现

目录 服务器模拟1. 环境准备2. 服务器设置3. 服务器初始化4. 节点操作5. 读取CSV文件6. 运行服务器 查看服务器客户端总结 在工业自动化和物联网&#xff08;IoT&#xff09;领域&#xff0c;OPC UA&#xff08;开放平台通信统一架构&#xff09;已经成为一种广泛采用的数据交换…