目录标题
题目说明
附件下载:https://ctfshow.lanzous.com/iDEiVmr8m4d
说明:
0、本场比赛共有18题,但只有1个附件文件(见第1题),所有flag均可以从附件中获取;
1、所有的flag开头和结尾均为#,中间由字母、数字或下划线组成;
2、本场比赛不使用任何*可以*设置密码的隐写方法,包括可以将密码留空的隐写方法;
3、原理类似的隐写方法在确保不互相干扰的前提下可能会以多种方式使用;
4、如果从附件提取的隐写信息为字符串形式,可能需要转码得到指定格式的结果;
5、如果从附件提取的隐写信息为另一张图片,该图片不会再包含隐写信息,即不存在套娃隐写;
6、所使用的字体均为微软雅黑,若有字符无法分辨,请与字体对比查看;
7、取得类似#abcd_1234#的字符串后,请计算其MD5值(包含头尾的#号);
8、每道题目都给出了一段MD5值,请找到MD5值匹配的题目后,将flag包上ctfshow{}格式提交。
One PieNG 1 342f08112d4ffb0577f49e89a2a18fa2
One PieNG 2 d64fc33636dda50babdde6b775d8cf10
One PieNG 3 8b8bc8c6aa81e7b955660fba3575af63
One PieNG 4 c35bc750588f620f49e83493f4125bfd
One PieNG 5 91848bee27655dc0da45006f467a59fb
One PieNG 6 335b63183f19e4fe1b9bd734af81403e
One PieNG 7 e18d9aa18b35ae3a702875beab14cc86
One PieNG 8 8d4ae0eed967e9936ee5373f0f58829c
One PieNG 9 9734a5d18504ef6a31c2c104b224f0df
One PieNG 10 cec1969402261bd550f1b3d0c0ccc655
One PieNG 11 3e703086b0e2585eff041cbd186f1bd4
One PieNG 12 fba2e6b912ab1a308c6b1438da31fbb8
One PieNG 13 23e4464f1b458a062fb13e155a72f999
One PieNG 14 d325d41389ddb0c3fdec30e51565fda3
One PieNG 15 ad9d95f270d91aed3ba2203487bf01cd
One PieNG 16 7dc6506ac3d4c7a99587c9b3cbf43798
One PieNG 17 170cee5e9bd6dd81021d8533490a4b8b
One PieNG 18 5f6b859726bd17bd5fb4905c4420b269
One PieNG 1
文件名称
One PieNG 2
One PieNG 3
使用python脚本爆破图片高度
import os
import binascii
import struct
misc = open("ctfshow.png","rb").read()
#print(misc[0x0c:0x0f+1])
# 爆破高
crc32_bytes = misc[0x1d:0x20+1]# 读出bytes
crc32_hex_eval = eval('0x' + crc32_bytes.hex())#bytes串 -> hex串 -> 值
print(crc32_hex_eval)
for i in range(4096):
data = misc[0x0c:0x0f+1] + misc[0x10:0x13+1] + struct.pack('>i',i)+ misc[0x18:0x1c+1] #IHDR数据
crc32 = binascii.crc32(data) & 0xffffffff
if crc32 == crc32_hex_eval : #IHDR块的crc32值
print(i)
print("height_hex:"+ hex(i))
运行脚本得到
2871077429
1463
height_hex:0x5b7
将0297修改为05b7,可以得到
One PieNG 4
上面脚本计算出,i=1463,直接把高改为1463
One PieNG 5
Blue通道最低位
One PieNG 6
使用stegsolve的data extract模块,除Alpha均勾选0通道
One PieNG 7
勾选Red通道和Green通道的最低位0,然后选择Column
One PieNG 8
全部勾选最高位,选择GBR
One PieNG 9
除Alpha通道外均勾选1、2位,发现PK压缩包,另存为a.zip
删去多余的部分
解压压缩包得到
One PieNG 10
使用010 editor查看十六进制
使用exiftool工具也可以得到
也可以使用在线EXIF查看器
One PieNG 11
上面使用在线EXIF查看器,可以发现DocumentAncestors栏有可疑字符串
b58/3AjtPrXQJuhFwguK7nqu4ZpsqMLwU
Base58解码/后面的内容
One PieNG 12
同样city一栏中有十六进制字符串
23415F6B65795F6672306D5F50683074307368307023
16进制转字符串
One PieNG 13
在stegsolve主页面,选择File Format
套神的方法:
010查看变量窗口(打开方式:视图–检查器窗口–变量,需要下载png摸板,点击模板–摸板储存库–png模板)
One PieNG 14
使用tweakpng工具打开图片,连着十个警告
删去九个IDAT以及tXEt
另存为flag.png
One PieNG 15
使用binwalk分离图片
One PieNG 16
pngdebug检测图片,第4-12共9个IDAT块都报错,查看发现这些错误的CRC32值都是00开头,且后三个字节都在ASCII可打印字符范围内
...
0x0000028D chunk-length=0x00010000 (65536)
0x00000291 chunk-type='IDAT'
0x00010295 crc-code=0x00234831
>> (CRC CHECK) crc-computed=0x94F55588 => CRC FAILED
0x00010299 chunk-length=0x00010000 (65536)
0x0001029D chunk-type='IDAT'
0x000202A1 crc-code=0x0064655F
>> (CRC CHECK) crc-computed=0xBA2406E1 => CRC FAILED
0x000202A5 chunk-length=0x00010000 (65536)
0x000202A9 chunk-type='IDAT'
0x000302AD crc-code=0x00683378
>> (CRC CHECK) crc-computed=0xCD6A57C7 => CRC FAILED
0x000302B1 chunk-length=0x00010000 (65536)
0x000302B5 chunk-type='IDAT'
0x000402B9 crc-code=0x00643437
>> (CRC CHECK) crc-computed=0x9EC196CD => CRC FAILED
0x000402BD chunk-length=0x00010000 (65536)
0x000402C1 chunk-type='IDAT'
0x000502C5 crc-code=0x00615F31
>> (CRC CHECK) crc-computed=0x1D1C51CC => CRC FAILED
0x000502C9 chunk-length=0x00010000 (65536)
0x000502CD chunk-type='IDAT'
0x000602D1 crc-code=0x006E5F63
>> (CRC CHECK) crc-computed=0xD41FCAD9 => CRC FAILED
0x000602D5 chunk-length=0x00010000 (65536)
0x000602D9 chunk-type='IDAT'
0x000702DD crc-code=0x0068756E
>> (CRC CHECK) crc-computed=0x655D563D => CRC FAILED
0x000702E1 chunk-length=0x00010000 (65536)
0x000702E5 chunk-type='IDAT'
0x000802E9 crc-code=0x006B5F43
>> (CRC CHECK) crc-computed=0xCB1875FD => CRC FAILED
0x000802ED chunk-length=0x00002646 (9798)
0x000802F1 chunk-type='IDAT'
0x0008293B crc-code=0x00524323
>> (CRC CHECK) crc-computed=0x19FE70D3 => CRC FAILED
...
这几个异常的CRC值提取出来
0x00234831
0x0064655F
0x00683378
0x00643437
0x00615F31
0x006E5F63
0x0068756E
0x006B5F43
0x00524323
整理一下得到
23483164655F683378643437615F316E5F6368756E6B5F43524323
然后十六进制转字符串
#H1de_h3xd47a_1n_chunk_CRC#
One PieNG 17
使用zsteg工具检测
One PieNG 18
foremost分离图片
总结:主要是各种工具的运用,有些工具没见过,还是太菜了
参考:https://blog.youkuaiyun.com/qq_42880719/article/details/114825260