CTFmisc图像题(zsteg取zip、压缩包重组、IDAT数据隐写、Markdown编写LaTeX、零宽字节隐写)

您所在的位置:网站首页 读取idat数据块 CTFmisc图像题(zsteg取zip、压缩包重组、IDAT数据隐写、Markdown编写LaTeX、零宽字节隐写)

CTFmisc图像题(zsteg取zip、压缩包重组、IDAT数据隐写、Markdown编写LaTeX、零宽字节隐写)

2024-04-01 01:42| 来源: 网络整理| 查看: 265

文章目录 一、题目描述二、题目分析与完成zsteg取zip压缩包重组IDAT数据隐写Markdown编写LaTeX二维码Version零宽字节隐写 三、BMZCTF其他赛题wp

一、题目描述

BMZCTF第二届网络安全公开赛,主办单位:白帽子社区 · WHT战队,2022年1月1日,白帽杯 misc 题目名称:游戏秘籍 题目说明:做为程序员我的,竟然无法调出30条命,我用笔记记录下来了。

游戏秘籍hint:压缩包注意标识,再重组。 游戏秘籍hint2:笔记是用mardown记录的。

下载一张名为30.png的魂斗罗图片: 在这里插入图片描述

二、题目分析与完成 zsteg取zip

zsteg 30.png查看一下(也可以zsteg -a 30.png): 在这里插入图片描述 发现有PK开头的字符,可能是压缩包,隐藏的数据位置处于 extradata:0 提取压缩包:

zsteg -E "extradata:0" 30.png > 30.zip 压缩包重组

010editor打开,发现一段提示:Need_Find_The_Passwd_to_unzip_file0 在这里插入图片描述 删除504B0102前的数据后,双击打开发现压缩包损坏。

正常压缩包开头是50 4B 03 04,还包括50 4B 01 02和50 4B 05 06等字段。

一个 ZIP 文件由三个部分组成: 压缩源文件数据区+压缩源文件目录区+压缩源文件目录结束标志 CTF压缩包隐写类(zip、RAR)

50 4B 01 02:目录中文件文件头标记 3F 00:压缩使用的 pkware 版本 14 00:解压文件所需 pkware 版本 00 00:全局方式位标记(有无加密,这里的 01 00为真加密) 08 00:压缩方式

将此压缩包重组,搜索05 06、03 04 字段,发现均缺少50 4B,插入这两比特字节,然后用WinRAR自带的修复重组顺序。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 压缩包可以正常打开,但需要密码。 在这里插入图片描述

IDAT数据隐写

用010editor打开,发现很多类似这样的错误:

*ERROR: CRC Mismatch @ chunk[17]; in data: 5468655f; expected: 4a57f189 *错误:CRC不匹配@ chunk[17]; 在数据:5468655f; 预计:4a57f189

在这里插入图片描述 将in data:后的数据拷贝出来,按照顺序生成十六进制文件, 5468655f68696e745f69733a55316b6b67473a56624445335b316f795b3145656044457960306768537a463e3e3e3ee4b88ae99da2e5ad97e7aca6e4b8b2e5bc82e68896e99bb6e58f89e99bb6e4b889e784b6e5908ee59ca8424153453634e8a7a3e7a081e38082596f755f

即新建16进制文本文档,然后在文本选项里选择导入16进制文件,最后在右下角改成UTF8编码。 在这里插入图片描述 得到hint:

The_hint_is:U1kkgG:VbDE3[1oy[1EeDEy0ghSzF>>>>上面字符串异或零叉零三然后在BASE64解码。You_

写python脚本获得密码:What?That_is_a_passwd?!

import base64 str1 = "U1kkgG:VbDE3[1oy[1Ee`DEy`0ghSzF>>>>" flag_base64 = "" for i in range(len(str1)): a = ord(str1[i]) ^ 0x03 flag_base64 += chr(a) print(flag_base64) flag = base64.b64decode(flag_base64) print(flag) # What?That_is_a_passwd?!

解压压缩包得到Flag.txt。

Markdown编写LaTeX

打开txt文档发现是一串下面这样的编码(这里用记事本打开,实际上不是这样排列的):

# 游戏笔记 \begin{array}{c}\begin{array}{c}\begin{array}{c|ccccc}\\\uparrow\uparrow&0&1&2&3&4\\\hline0&1&1&1&1&1\\1&1&0&0&0&0\\2&1&0&1&1&1\\3&1&0&1&1&1\\4&1&0&1&1&1\\\end{array}&\begin{array}{c|ccccc}\\\downarrow\downarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&1&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&0&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\3&0&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\4&0&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‍\\\end{array}&\begin{array}{c|ccccc}\\\rightarrow\rightarrow&0&1&2&3&4\\\hline0&1&1&0&1&1\\1&0&1&0&1&0\\2&0&1&0&1&0\\3&1&1&0&1&0\\4&0&0&0&1&0\\\end{array}&\begin{array}{c|ccccc}\\\leftarrow\leftarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&0&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&1&1&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&1&0&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\3&1&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\4&1&0&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\\end{array}&\begin{array}{c|cc}\text{ABAB}&1&2&3&4&5\\\hline0&1&1&1&1&1\\1&0&0&0&0&1\\2&1&1&1&0&1\\3&1&1&1&0&1\\4&1&1&1&0&1\\\end{array}\end{array}\\\begin{array}{c}\begin{array}{c|ccccc}\\\uparrow\uparrow&0&1&2&3&4\\\hline0&1&0&0&0&0\\1&1&1&1&1&1\\2&0&0&0&0&0\\3&1&1&1&0&1\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\\\leftarrow\leftarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&0&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&1&0&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\2&1&0&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\3&1&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‬‌‌‌‌‌‌‬‌‌‌‌‍‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\\\rightarrow\rightarrow&0&1&2&3&4\\\hline0&0&1&0&1&0\\1&0&1&0&1&1\\2&1&1&0&0&0\\3&1&0&1&1&0\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\\\downarrow\downarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&1&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&0&0&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\3&1&1&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\text{ABAB}&1&2&3&4&5\\\hline0&0&0&0&0&1\\1&1&1&1&1&1\\2&0&0&0&0&0\\3&0&0&1&0&0\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}\end{array}\\\begin{array}{c}\begin{array}{c|ccccc}\\\uparrow\uparrow&0&1&2&3&4\\\hline0&1&0&0&0&0\\1&1&1&1&0&1\\2&1&0&1&1&1\\3&0&1&1&1&1\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\\\downarrow\downarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&0&0&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&1&1&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\3&0&0&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\\\rightarrow\rightarrow&0&1&2&3&4\\\hline0&0&0&1&1&1\\1&1&0&0&0&1\\2&0&0&1&1&0\\3&1&0&0&1&0\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\\\leftarrow\leftarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&0&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\1&0&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&0&0&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\3&0&1&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‬‌‌‌‌‌‌‬‌‌‌‌‍‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}&\begin{array}{c|cc}\text{ABAB}&1&2&3&4&5\\\hline0&1&1&0&1&1\\1&0&0&0&1&0\\2&1&0&1&1&0\\3&1&1&1&0&0\\‌‌‌‌‌‍‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍‌‌‌‌‍‍‌‌‌‌‌‍‍‌\end{array}\end{array}\\\begin{array}{c}\begin{array}{c|ccccc}\\\uparrow\uparrow&0&1&2&3&4\\\hline0&0&1&0&0&0\\1&1&0&1&1&1\\2&0&0&0&0&0\\3&1&1&1&1&1\\4&1&0&0&0&0\\\end{array}&\begin{array}{c|cc}\\\downarrow\downarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&0&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&1&1&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\2&0&0&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\3&1&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\4&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\\end{array}&\begin{array}{c|cc}\text{ABAB}&1&2&3&4&5\\\hline0&0&1&0&1&0\\1&1&1&1&0&1\\2&1&1&0&1&1\\3&1&0&1&0&1\\4&1&0&0&0&1\\\end{array}&\begin{array}{c|cc}\\\leftarrow\leftarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&1&0&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&0&1&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\2&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\3&0&0&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\4&1&1&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\\end{array}&\begin{array}{c|cc}\\\rightarrow\rightarrow&0&1&2&3&4\\\hline0&1&0&0&0&0\\1&1&1&1&1&1\\2&0&1&0&0&0\\3&1&1&0&1&0\\4&1&1&0&0&0\\\end{array}\end{array}\\\begin{array}{c}\begin{array}{c|ccccc}\\\uparrow\uparrow&0&1&2&3&4\\\hline0&1&0&1&1&1\\1&1&0&1&1&1\\2&1&0&1&1&1\\3&1&0&0&0&0\\4&1&1&1&1&1\\\end{array}&\begin{array}{c|cc}\\\downarrow\downarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&0&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\3&0&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\4&1&1&0&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\\end{array}&\begin{array}{c|cc}\\\leftarrow\leftarrow&0&1&2&3‌‌‌‌‌‬‍‬‌‌‌‌‌‍‌\\\hline0&0&0&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\1&0&0&1&1‌‌‌‌‌‬‍‬‌‌‌‌‌‌‌\\2&1&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\3&0&1&1&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\4&1&1&0&0‌‌‌‌‌‬‍‬‌‌‌‌‌‌‍\\\end{array}&\begin{array}{c|cc}\text{ABAB}&1&2&3&4&5\\\hline0&1&0&1&0&1\\1&1&0&1&1&0\\2&0&1&1&0&1\\3&0&0&1&1&1\\4&0&0&0&0&1\\\end{array}&\begin{array}{c|cc}\\\rightarrow\rightarrow&0&1&2&3&4\\\hline0&1&1&1&1&1\\1&0&0&1&1&1\\2&1&1&1&1&1\\3&1&0&1&1&0\\4&1&0&0&1&1\\\end{array}\end{array}\end{array}

这是LaTeX代码,结合官方给出Hint2:笔记是用mardown记录的。

Markdown插入LaTeX公式 CSDN的MarkDown编辑器使用的公式定界符为和$$和$,单美元符号包围的是行内公式,双美元符号包围的是块公式。

我们知道在mardown语法中两个$$中可以加入LaTeX代码,就会表示成公式。 在这里插入图片描述 在这里插入图片描述

二维码Version

看到5行5列的表格,全是由01组成,想到二维码。 根据题目魂斗罗调30条命,百度发现秘籍是:上上下下左右左右BABA(用上上下下左左右右ABAB来排列)。

但是,23x23尺寸的二维码不合理。

二维码官方叫版本为Version。 二维码一共有40个尺寸。Version 1是21 x 21的矩阵,Version 2是 25 x 25的矩阵,Version 3是29的尺寸,每增加一个version,就会增加4的尺寸,公式是:(V-1)*4 + 21(V是版本号)最高Version 40,(40-1)*4+21 = 177,所以最高是177 x 177 的正方形。

version2 二维码的标准大小应该是25x25。想到零宽字节隐写。

零宽字节隐写

这里用010editor打开,或者在kali下的vim打开字里行间填充的正是零宽字节的隐写特征。 在这里插入图片描述 在这里插入图片描述 零宽字节隐写解密网站:https://330k.github.io/misc_tools/unicode_steganography.html 注意不要全部复制,要单行解密。 从\begin{array}到\end{array} 在这里插入图片描述 用上上下下左左右右ABAB来排列(以此类推):

11111 # 上上的第一行 11011 # 下下的第一行 00101 # 左左的第一行 11011 # 右右的第一行 11111 # ABAB的第一行 from PIL import Image from zlib import * MAX = 25 pic = Image.new("RGB", (MAX, MAX)) str = "1111111011001011101111111100000100011110010100000110111010111011001010111011011101001110101101011101101110100010000000101110110000010010001101010000011111111010101010101111111000000001110111110000000011101111101101010110001000001010110100010100010011100000101100000001111101111101001100100010001000101011111110001000011010110011110000001111100101110010100111000110110100100110100000111101011000001010101111110101111111111110100000000100101101000110111111111011001011101010101100000101111111110001000110111010110000111111101011011101000001100011110110101110101011001111110110110000010100110110110001111111111011110011001100001" i = 0 for y in range(0, MAX): for x in range(0, MAX): if(str[i] == '1'): pic.putpixel([x, y], (0, 0, 0)) else: pic.putpixel([x, y], (255, 255, 255)) i = i+1 pic.show() pic.save("flag.png")

在这里插入图片描述 最终生成一个二维码扫描得到flag:BMZCTF{y0u_f1nd_the_4l@g}

三、BMZCTF其他赛题wp

第二届BMZCTF公开赛-easymisc: https://blog.csdn.net/mochu7777777/article/details/122005160?spm=1001.2014.3001.5501

第二届BMZCTF公开赛-WEB——easy_php、zblog-scshop: https://seizer.top/post/2022-01/BMZCTF/

BMZCTF官方靶场: http://www.bmzclub.cn/

第二届“BMZCTF”网络安全公开赛CFS题目WriteUp: https://www.bll-l.com/index.php/archives/12/

WHT战队博客(BMZCTF往年真题): https://blog.csdn.net/qq_26243045

第二届“BMZCTF”网络安全公开赛官方解题思路(全部题): https://mp.weixin.qq.com/s/ZEfY-u9TgkWOgX__BK40mw



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3