首页 > 其他分享 >2024 四川省大学生信息安全技术大赛 安恒杯 部分 WP

2024 四川省大学生信息安全技术大赛 安恒杯 部分 WP

时间:2024-10-27 20:47:34浏览次数:3  
标签:安恒杯 编码 IDAT 文件 ROT47 zlib 2024 WP PNG

文章目录

一、前言

WP不完整,仅供参考!

除WEB外,其余附件均已打包完毕,在这里也是非常感谢师傅的附件支持!

123网盘下载:

https://www.123pan.com/s/q2J1jv-vRJvd?提取码:0905
提取码:0905

二、MISC

unzip-png

解题思路

附件下载,得到一个txt,打开仔细观察不难发现这个头部有点像zlib的头部(789c),可能有的师傅刷题刷的少,zlib是什么他不知道,不过没关系哈,这里我们也简单说说:

zlib文件

我们在分析文件时,789C 是 zlib 数据流 的一个特征性的起始字节,我们可以通过这些字节来识别它是 zlib 格式的压缩数据。这是因为 zlib 压缩流的开头包含一个压缩头部,并且其中的前两个字节具有特殊的含义。

  1. zlib 头部格式

zlib 数据流的头部由两个字节组成,具体格式如下:

  • 第一个字节(8位):压缩方法和信息(CMF,即 Compression Method and Flags
  • 第二个字节(8位):额外的标志和校验值(FLG,即 Flags
  1. 具体含义
  • 78:第一个字节 78 的前四位 0111 表示使用 DEFLATE 压缩算法(zlib 默认使用 DEFLATE),后四位表示压缩窗口大小。
  • 9C:第二个字节 9C 代表某种默认设置,且最后5位是用来计算校验和(FCHECK)的。
  1. 常见的 zlib 头部

zlib 文件头的常见前两字节是:

  • 78 01:表示最低压缩级别,几乎不压缩
  • 78 9C:表示默认压缩级别(常见,压缩比和速度均衡)
  • 78 DA:表示最高压缩级别(压缩率最高,但速度较慢)

TXT文本

在这里插入图片描述

当然这里如果一时半会看不出是zlib也没有关系,我们可以直接请出我们的工具:cyberchef

https://cyberchef.org/

哎,这里有的师傅可能就有疑问了,比赛不是离线的嘛?怎么还可以使用在线工具呢?因为人家"cyberchef"本来就是可供本地下载离线解码!

cyberchef下载

直接将1.txt拖进去即可,cyberchef会自动识别并且帮助解码(当然只能识别出一些简单的,复杂一些的就需自己分辨了)

在这里插入图片描述

最后经过一次“From Hex”解码,以及“Detect File Type”也是成功识别出是zlib文件(这里全程是cyberchef自动识别出的)

在这里插入图片描述

那既然已知晓是zlib,这里我们直接将用于自动识别文件的Detect File Type进行替换Zlib Inflate即可

在这里插入图片描述

直接在cyberchef的搜索栏中查找关键词zlib就能发现,接着选中Zlib Inflate进行拖动至Recipe中进行解码即可,最后看见89 50 4E 47就熟悉多了吧?

最后导出解码的数据,保存即可:

在这里插入图片描述

哎,那这里有的师傅可能就要急了,他可能会直接将刚刚导出的download.dat直接改一个后缀,修改为download.png,以为就能直接显示图片,但其实并不是这样操作的:

在cyberchef中,导出的数据都是原数据,这是什么意思呢?通俗易懂来说,你就只是单纯导出了89 50 4E 47 0D 0A 1A 0A 00 00 00 0D 49 48 44 52这一串数字,人家并不会直接帮你转换为png图片(也并不是单纯修改后缀为png那么简单),当然我们可以选中导出的download.dat使用010打开分析一下

在这里插入图片描述

这样一打开来进行查看,跟普通的png图片是不是少了些什么?那我们到底要怎么做呢,其实也很简单,这里以010为例,我们可以直接新建一个十六进制的文件,将刚刚得到的数据复制并且"Ctrl+shift+v"粘贴至新建的十六进制的文件中:

得到

在这里插入图片描述

最后Ctrl+s保存为1.png即可,这时候我们再去打开图片,会发现还是什么也看不见:

在这里插入图片描述

那既然不能正常显示,肯定是图片数据出现了问题,那我们接着返回010中仔细观察一下:

那这里我们首先来简单的了解一下PNG图片的组成部分;

一个 PNG 图片 一般由多个部分组成,主要包括几个关键的 数据块(chunk),其中最常见的部分有 IHDRIDAT 块。

PNG 文件的主要组成部分:

  1. 文件签名(PNG Signature)

    • PNG 文件以一个 8 字节的固定签名开始,标识文件是 PNG 格式。
    • 这个签名的十六进制值是 89 50 4E 47 0D 0A 1A 0A
  2. 数据块(Chunks): PNG 文件接下来的部分由一系列数据块组成,每个数据块有其特定的功能。每个数据块包含四部分:长度、类型、数据和 CRC 校验。

    常见的数据块有:

    • IHDR(Image Header Chunk)

      • 这是 PNG 图片的头部,它是第一个数据块,包含图片的基本信息,比如宽度、高度、位深度、颜色类型、压缩方法、滤波器方法和交错方法。
      • IHDR 块非常重要,任何 PNG 图片都必须有一个 IHDR 块。
      • 大小通常是 13 字节。
    • PLTE(Palette Chunk,调色板块)

      • 用于定义图像的调色板(仅在使用调色板的 PNG 图片中出现)。这部分包含索引颜色值。
    • IDAT(Image Data Chunk)

      • IDAT 块包含图像的压缩数据,可以有多个 IDAT 块。PNG 使用 zlib/DEFLATE 算法对图像数据进行压缩。
      • IDAT 块的数据在解压后会还原为图像的像素数据。
    • IEND(Image End Chunk)

      • 标志着 PNG 文件的结束,IEND 是最后一个数据块。
      • 没有数据内容,只有一个结束标志。

其他数据块(可选):

  • tEXt / zTXt / iTXt:用于存储文本信息,比如作者、版权等。
  • gAMA:用于定义图像的伽马值。
  • tIME:用于记录图像的修改时间。

小结:

  • IHDR 是 PNG 文件的头部数据块,定义了图像的基本信息。
  • IDAT 是存储图像压缩数据的主要部分,通常会有多个 IDAT 块。
  • IEND 是结束块,标志着 PNG 文件的结束。

所以,IHDR 和 IDAT 都是 PNG 图片的重要组成部分,IHDR 提供基本信息,而 IDAT 主要包含压缩后的图像数据。

所以这里我们重新使用010打开1.png,就会发现原本IDAT的位置被CTF2/CTF1所占据了!

在这里插入图片描述

那这里我们肯定是要将CTF2/CTF1替换为IDAT,所以这里我们直接将IDAT进行Hex编码进行最后进行插入!

在这里插入图片描述

得到:49 44 41 54

进行替换

在这里插入图片描述

最后Ctrl+s进行保存,打开图片:

在这里插入图片描述

发现打开是可以打开了,但是奇怪的是什么也没有,如果有的师傅靠自己做到这里,其实已经很好了,因为后面这一步有点考验脑洞了,为什么这样说呢?如果在修改IDAT之前有观察仔细的师傅会发现他是CTF2在前CTF1在后,那这能代表什么嘛?其实就是变相的在告诉你:我chunk数据块弄反了,你要改回来!

那如果这里实在想不到呢?想不到就出不来呗~

那这里我们可以直接新建一个十六进制文件,将文件头部(chunk[0])先复制过去:

在这里插入图片描述

得到:

在这里插入图片描述

将chunl[2]复制过去:

在这里插入图片描述

得到:

在这里插入图片描述

接着再将chunl[1]复制过去:

在这里插入图片描述

最后再将图片的尾部一一进行复制粘贴补全即可,Ctrl+s进行保存2.png,打开2.png即可发现:

在这里插入图片描述

最后得出一张图片,一眼看过去就感觉宽高有一些问题,当然如果不确定我们可以直接丢进工具:随波逐流中进行分析一下,或者kali,它们都是可以自动校验png图片的CRC:

这里我是直接丢进随波逐流中(当然也可以自己手动修改一下宽高):

在这里插入图片描述

最后它会直接帮你修复原本的png图片宽高,打开即可发现flag:

在这里插入图片描述

至此;

flag{d01adf92-f7a8-7fc6-c89f-0e6cf6f68e6a}
拓展

Detect File Type简介

在 CyberChef 工具中,Detect File Type 是用来自动检测输入文件或数据的类型的操作。它通过分析输入的二进制数据或文本,识别出该数据的格式或文件类型。

工作原理:

  • 文件头检测:它会首先分析文件的头部,查找已知文件类型的标识(魔数)。
  • 模式匹配:通过匹配已知文件结构的特征,判断文件的格式。
  • 内容分析:有些情况下,它可能会分析文件的整体内容特征,比如文本编码或压缩格式。

示例:

  • 如果输入一个 PNG 图片文件,CyberChef 的 Detect File Type 会识别出 “PNG image”
  • 如果输入一个 ZIP 压缩文件,它会显示 “ZIP archive”
  • 如果输入一段 zlib 压缩数据,它也可能检测出 “zlib compressed data”
第47张图片

解题思路

附件下载,得到一张图片jpg图片:

在这里插入图片描述

我们使用010打开简单分析一下:

在这里插入图片描述

往下翻一些很快就发现一个可能是ROT47的编码

不是很了解的ROT47编码特征的师傅也没关系,这里我们正好来一起简单说说:

ROT47 的编码特征:

  1. 字符范围:ROT47 对应的字符集是 33-126 的 ASCII 字符,包含可打印的符号、数字、字母和一些标点符号,总共有 94 个字符。

    • 例如,常见的字母 (A-Z, a-z)、数字 (0-9)、标点符号(如 !, @, #, &, *)等都在此范围内。
  2. 字符旋转:每个字符通过向右“旋转”47个位置来编码。如果超出126,就从33重新开始。这意味着编码和解码是对称的,即同一个函数可以用于编码和解码。

  3. 对称加密:类似于 ROT13,ROT47 的编码和解码方式是相同的,因此加密一次后,再加密一次就会还原成原始文本。

例子:

  • A(ASCII 65)通过 ROT47 编码后变成 r(ASCII 114)。
  • !(ASCII 33)通过 ROT47 编码后变成 P(ASCII 80)。
  • HELLO 编码后会变成 w6==@.

那从7=28Lf6f63347\7c7d\67gb\6dc7\a7b6g3g4b5ad编码中哪里能看出是ROT47呢?

  1. 字符范围
  • 字符串中的字符包括 数字(如 7, 2, 6)、字母(如 L, f, g, b)以及 符号(如 =, \, a\7c7d等),这些字符都在 ASCII 33 到 126 之间,这是 ROT47 处理的字符范围,因此符合 ROT47 的字符集要求。
  1. 字符混淆
  • 由于 ROT47 是对字符进行位移(47个位置)的替换编码,该字符串是由混合的字母、数字、符号构成的,这是 ROT47 加密后的典型表现。正常文本被 ROT47 编码后,会出现类似这种“乱码”样的形式。
  1. 非对称性内容
  • ROT47 编码后字符会出现符号、字母和数字交错的情况。这是由于 ROT47 对可打印字符范围内的所有字符(包括字母、符号、数字)进行统一的位移,导致字符分布看起来无规律。
  1. 可解码还原
  • 如果这个字符串是经过 ROT47 编码的,它可以通过再次应用 ROT47 进行解码,还原成原始的明文内容。由于 ROT47 的加密和解密是对称的,同样的函数可以解码出明文。

最后其实如果实在不明白的还有一点就是,这个题目的名称也可以看出一点,当然如果有脑洞的话是可以想出的,毕竟题目名都叫:第47张图片

在这里插入图片描述

或者直接将整张文件拖进去进行ROT47解码也是可以发现的:

在这里插入图片描述

至此;

flag{7e7ebbcf-f4f5-ef83-e54f-2f3e8b8c3d25}
重要的文件

解题思路

暂无

三、WEB

推荐(baozongwi师傅的):

四川省赛2024——web

四、CRYPTO

暂无,附件已打包完毕,可自取

五、REVERSE

暂无,附件已打包完毕,可自取

标签:安恒杯,编码,IDAT,文件,ROT47,zlib,2024,WP,PNG
From: https://blog.csdn.net/administratorlws/article/details/143160034

相关文章

  • 20222303 2024-2025-1 《网络与系统攻防技术》实验三实验报告
    一、实验内容1.正确使用msf编码器,使用msfvenom生成如jar之类的其他文件;2.能够使用veil,加壳工具;3.能够使用C+shellcode编程;4.能够通过组合应用各种技术实现恶意代码免杀;5.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。二、基础问题回答1.杀软......
  • 学期2024-2025-1 学号20241306《计算机基础与程序设计》第5周学习总结
    学期2024-2025-1学号20241306《计算机基础与程序设计》第5周学习总结作业信息这个作业属于哪个课程[2024-2025-1-计算机基础与程序设计(https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP))这个作业要求在哪里[2024-2025-1计算机基础与程序设计第5周作业(https......
  • 2024-10-27 闲话
    去年参加icpc杭州站之后在zju和yubai一起玩。当时yubai脱把骑车给我留下了深刻的印象。今年五一和yubai去nihon,在富士山下本栖湖旁边租了一辆电助力车子。在我的请求下,yubai又表演了他的脱把神技:【这里理应有一张照片,但是很遗憾我没找到,于是用一张富士山的照片替代吧......
  • P11233 CSP-S 2024 染色
    P11233CSP-S2024染色考试最后码方程忘记\(a[i-1]\)了,调不出来,只好\(50pts\)收尾。思路\(dp\)的难点在于确定一段的颜色后,无法快速找到上一段相同颜色的结尾。从这里入手,设\(dp[i][0/1][0/1]\)表示第\(i\)位颜色为\(1/0\),第三维表示是一段颜色的\(0\)开头或\(1......
  • 2024-2025-1 20241327 《计算机基础与程序设计》第五周学习总结
    作业信息|2024-2025-1-计算机基础与程序设计)||--|-|2024-2025-1计算机基础与程序设计第五周作业)||快速浏览一遍教材计算机科学概论(第七版),课本每章提出至少一个自己不懂的或最想解决的问题并在期末回答这些问题|作业正文|https://www.cnblogs.com/shr060414/p/18440575|教......
  • 【刷题10】2024.10.26
    来源:CTFHubSVN泄露扫描一下目录,发现有/svn,所以是svn泄露使用工具dvcs-ripper将泄露的文件下载到本地目录中先用ls-al查看,再转到.svn文件夹中查看下载的文件。根据题目可知,在旧版服务器,所以访问pristime文件夹,在其中找到了flagctfhub{4e0bf99268e97......
  • CSP2024游记
    CSP2024游记Day0去八中试机,感觉好像比难堪的电脑稍微快一点(然而考试当天好像并不是这样)。发现VSCode已经把插件下好了。Day1CSP-J没有。CSP-S13:30从家里出发去八中。到了之后原地乱晃,吃了一块巧克力(齁甜)。遇见了几个老师(忘了是谁了)。14:05进了八中科技楼。差点走成......
  • CSP-S2024&CCPC济南站游记
    初赛忘了,乱打的。得分-估分=\(13\),得分=\(79\)。Day-5忘了,打模拟赛被打爆。Day-4忘了,打模拟赛被打爆。Day-3忘了,打模拟赛被打爆。Day-2忘了,打模拟赛被打爆。我患上了一种只会做T1的病。晚上画画,CF啥都不会。Day-1和wmh坐上了一趟高铁。到了以后疯狂发徽章......
  • CSP-J/S 2024 游寄
    满纸荒唐言,一把辛酸泪。其实不是去年没去,只是去年复赛喜提15pts荣获四等奖,木有获奖证书。今年决定一雪前耻!坐标:窄西省浅圳市某郊区(。该区是弱区,目前已知的唯一一个官方承认的(不包括我的省四)复赛获奖选手是CSP-J2022以90pts的高分荣获三等奖(T1一个红题没AC?这是咋过初......
  • CSP2024游记
    发现很久没有写游记了!为什么呢,大概是中间的apio和noi都烂完了吧,这次csp虽然也不太行,但是毕竟没有到崩盘的地步,还是写一下罢。Day-1发生一些神秘的事情,不好评价。Day0下午在机房测试了frc,没有出问题。RoFtaCD的代码收不上去,他在主目录下建了个叫noi的文件夹,原来主......