一、基础操作
misc1
文件解压缩即可。
misc2
010editor打开是png文件头,将txt后缀修改为png。
misc3
bpg格式,使用Honeyview打开。
misc4
根据文件头将6个txt文件分别修改为png jpg bmp gif tiff riff这6种格式,组合图片内容即可。
二、信息附加
misc5
010打开发现在文件末尾。
misc6
打开发现在文件中间,也可直接查找ctfshow.
misc7
直接查找。
misc8
里面隐藏了一个png文件,分离即可。
misc9
查找即可。
misc10
flag伪装成了一个IDAT块,binwalk -e分离即可。
misc11
两个IDAT块,删除第一个即可。
misc12
和上一个一样,只是要删除8个IDAT块。
misc13
由提示在文件末尾找到了三段和flag很像的字符串,分别用脚本对其处理,即删去奇数位的字符,即可得到。
misc14
发现图片里面有几张jpg图片,直接手动分离,即可得到。
misc15
010打开就能看见。
misc16
提示flag在图片数据里,用binwalk分离即可。
misc17
先用zsteg查看隐写数据,再使用zsteg提取并保存到txt文件(zsteg -e extradata:0 misc17.png > 1.txt
),最后用binwalk分离即可。
misc18
由提示可知直接查看图片属性即可得到。
misc19
由提示可知在主机上的文档名里,010打开,编辑方式换成文本一眼可以看到,不换也有只是不容易看见。
misc20
用exiftool查看图片信息可看见提示说的评论,不过要根据谐音翻译一下。
misc21
exif查看图片信息,将序列号686578285826597329十六进制转字符可得hex(X&Ys),即将X、Y转为十六进制,根据flag的长度,可知四段数字都要转换,之后合在一起即可。
misc22
加个黑白滤镜就能看见flag了
misc23
把history when的几个时间转换为时间戳,再转成十六进制,组合即可得到。
misc41
因为很少碰见这种题目一开始完全没有思路,后面看别人的题解知道是搜索题目中提示的F0 01,其颜色组成的图案即为flag。
三、文件结构
misc24
根据提示改下高度即可。
misc25
同上。
misc26
修改高度后发现是cftshow{94aef1+True height(hex) of this picture+087a7ccf2e28e742efd704c},需要计算出真实高度再转十六进制,因为有校验码,所以使用脚本爆破直接得到。
misc27
还是改高度。
misc28
不停改。
misc29
还是改高度,不过是gif文件,改完后用stegsolve一帧帧找即可。
misc30
改宽度为950。
misc31
需要计算宽度,所有字节减去文件头的53个字节再除450即得到宽度,因为高度是150,每个像素由3个字节表示,改完即可得到。
misc32
和misc26差不多,只是脚本不同,通过校验码爆破出宽度,然后修改即可。
misc33
同上,只是高度宽度都要求。
misc34
因为校验码也改了,所以不能通过它来得出宽和高,但是题目告诉我们宽度大于900,所以可以用脚本生成宽度大于900的各个图片来看哪个对。
misc35
和下面的misc36一样,要先修改高度再爆破,不然看不见,用这个图主要是我忘截图了,不过两道题脚本也基本一样。
misc36
同上,不过要注意在哪里修改高度,一开始改错了一直没做出来。
misc37
放stegsolve里找就行。
misc38
apng图片,放Honeyview里可以看见。
misc39
一开始不了解完全不知道怎么回事,后面看了别人的题解知道这是gif帧数间隔隐写,需要用identify处理,然后会得到一个txt文件,里面有一串 36 和 37 的数字,把 37 换成1,36 换成 0,就会得到长度为 287 的二进制字符串,因为ctfshow的flag长度都是41,所以每7位转1个字符,而不是8位。
misc40
这个也不清楚,后面知道要用一个叫 APNG Disassembler的工具把apng文件分解再导出保存,然后就会发现每张图片都带有一个 txt 文件,删去干扰数据,然后用找的脚本把文本的数字转换为字符即可。
misc42
题目提示好像和长度有关,但是不清楚怎么和长度扯上关系的,就进行搜索,发现有TweakPNG这个工具可以很方便的看png信息,他那个长度应该是和IDAT块有关,对长度进行字符转换就能得到flag。
misc43
一开始修改了一下高度,后面突然发现图片的校验码组合起来刚好就是flag。
misc44
这个做着做着也是没了头绪,看了别人的题解是可以用PngDebugger把CRC信息统计,去掉IHDR和IEND的信息再将对的转为1,错的转为0,然后二进制转字符就能得到。
misc45
这个题目提示告诉我们要改格式,别的就不知道了,用在线网站一个一个转,然后分析,不过运气很好第一个转的bmp文件就对了,把它用binwalk分离就能得到flag图片,至于原理看别人的题解好像是png和bmp像素点的读取方式不一样,所以bmp就能读取到信息。
misc46
它和47都是我没碰见过的题,看别人的题解才知道这题是用 gif 每一帧的偏移量作为坐标来画图,可以用 identify 命令获取 gif 图片的详细信息得到偏移量,再用脚本绘制生成flag。
misc47
这道给的是png图片,每一帧都有一个 fcTL 块,包含了当前帧的序列号、图像的宽高及水平垂直偏移量,帧播放时长和绘制方式等,要从十六进制中提取出偏移量的坐标,不会做的我只能使用大佬的脚本来写,运行后就能得到flag。
misc48
题目提示我们看 DQT 模块,可以发现要我们数前32个部分FF这个字节的个数,然后再减1,最后转成十六进制就能得到。
misc49
这道题我完全想不到,看别人的题解做法就是统计所有的FF E0-FF EF 块,刚好共有32个,而E后面那一位就是flag中的字符,全部组合起来就是 flag,真是难以想象。
四、颜色通道
misc50
用stegsolve点啊点就行。
misc51
还是不会,看了别人的题解是从像素入手,就是有两个颜色出现次数很多,所以用脚本新建一个图像遍历,如果是那两个像素其中之一就把该坐标对应的像素点变为白色,然后就得到了flag图像。
misc52
这个和上面差不多,不过颜色变成了十种。
misc53
用Stegsolve打开,可以在R0、G0、B0这三个通道看见行排列的隐写痕迹,所以如上进行数据提取即可得到。
misc54
同样用用Stegsolve打开,可以在A0、G0、B0这三个通道看见列排列的隐写痕迹,然后进行数据提取,不过这次的图像层排列是BRG。
misc55
还是LSB的题目,不过这个图片是上下翻转的,需要用脚本让它翻转过来,然后和其他的一样使用Stegsolve,然后会发现提取出一个zip文件,保存解压即可。
misc56
还是一样,不过这个R4、R2、R1、G4、G2、G1通道都有隐写痕迹,需要把这几个全勾选才能得出。