CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加

Posted Ocean:)

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加相关的知识,希望对你有一定的参考价值。

ctfshow 图片篇引语

  • 大部分题目仅涉及单一知识点,但可能有多种解法;
  • 找到flag并不困难,关键是了解每一题背后的原理;
  • 藏在哪?为什么可以这样藏?请多考虑这两个问题;

misc脑图-misc之神丁神给的

基础操作

misc1-签到题

打开图片就是flag

misc2-改后缀

下载之后是一段文本,打开发现png的文件头,将txt后缀改成png,查看图片,获得flag

misc3-bpg格式

下载我就直接打开了,我还寻思就这?,原来是我的图片查看器帮了忙,bpg文件,推荐蜂蜜浏览器

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ChXAbQGw-1631199055893)(F:_笔记\\mdpic\\1.CTFshow刷题日记-MISC-图片篇(上)] - 副本\\image-20210909170530982.png)

misc4-改后缀

下载发现是六个文档

然后每个文档打开都是看似乱码的六种不同格式的图片,只要根据其文件头将其改为正确的格式即可

从1-6分别是png,jpg,bmp,gif,tif,webp

每张图都是flag的一部分

信息附加

misc5-7-010直接搜

010打开,搜ctfshow找到flag

misc8-分离文件

提示:flag在图片文件中图片文件中。

给的是png,根据提示猜测可能是改了高度,或者要分离文件,该高度无果,在kali中使用分离命令foremost分离图片,成功分离出flag

misc9-010直接搜

提示:flag在图片块里

010打开,搜ctfshow找到flag

misc10-分离文件

提示:flag在图片数据里

使用binwalk -e命令分离文件

原理-引用z.volcano师傅博客

misc11-双IDAT块

提示:flag在另一张图里

IDAT

图像数据块IDAT(image data chunk):它存储实际的数据, 在数据流中可包含多个连续顺序的图像数据块。
IDAT存放着图像真正的数据信息,因此,如果能够了解IDAT的结构,我们就可以很方便的生成PNG图像。

010打开发现有两个IDAT数据块

把第一段IDAT删除,另存为图片内容就是flag

misc12-多IDAT块

提示:flag在另一张图里

打开发现有十多个IDAT,可以使用tweakpng这个工具边删边保存,发现删除前八个flag就出来了

misc13

试了多种方法没解出来

在010使用正则表达式搜索 c.*t.*f

发现两个有点像flag的字符串

flag格式是ctfshow很明显这是每隔一个字符有一个垃圾字符,python简单处理下

str = "ct¹f…s†hªoKw°{!aeS6¥eT34fxa%4Ý8ïf«52•8b‚1º7E4|2Td~7:2äeñ6úfõ4129T8ñ328é0l}"
flag = ""
for i in range(len(str)):
    if (i%2==0):
        flag = flag + str[i]
print(flag)

运行得到flag

misc14-手动分离图片

jpg格式的图片

在kali中使用命令却分不出来,使用010

在0x837位置发现另一张jpg图片,从837选择到末尾,右键选择->保存选择

保存生成一个新文件,即为flag

misc15-010一把梭

提示:flag被跳过去了

不知道啥意思但是010一把撸

misc16-binwalk一把梭

misc17-steg

提示:flag在图片数据里

使用zsteg命令发现隐藏的数据

使用命令提取数据

zsteg -E "extradata:0" ./misc17.png > ./png
// 名字随便定义

使用命令去分离

binwalk -e png

misc18-图片属性

提取:flag在标题、作者、照相机和镜头型号里

简单肯定在属性里边

flag分成了三段

misc19-010

提示:flag在主机上的文档名里

010一把梭

两段拼一下就有了

misc20-exiftool工具

提示:flag在评论里

可以使用工具exiftool

但是环境问题是乱码,在linux下查看

如果没有exiftool,可以安装,教程

这flag需要译一下

misc21-转换

提示:flag在序号里

同样使用exiftool命令查看

发现序列号提交不正确,经过十六进制转码发现问题

也就是说吧x和y都要分别进行转换而不是合一起转换,python的hex()

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Sao2gnwl-1631199055913)(F:_笔记\\mdpic\\1.CTFshow刷题日记-MISC-图片篇(上)] \\image-20210909214809200.png)

再用ctfshow{}包裹

misc22-缩略图隐写

提示:flag在图片里

缩略图竟然和图片不一样,学到了

这是magicexif

利用exiftool工具导出图片

exiftool.exe -ThumbnailImage -b misc22.jpg > 1.jpg

misc23-属性转换

提示:flag在时间里

使用exiftool命令查看信息

发现四个时间,将时间转换成时间戳网站https://www.zxgj.cn/g/unix

再用21题的方法,进行hex编码

misc41-抽象

提示:

H4ppy Apr1l F001’s D4y!
愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。

愚人节限定题,下载得到misc41.jpg,用winhex打开,发现是jpg的文件尾,但是文件头对不上,本来想以这个方向为突破点,没得到结果…

后面看了套神的wp才知道,提示中的第二句说的就是我…

第一句提示的F001才是真突破点,这个位置有大量F001,看起来组成了某种形状

我的思路是,把F001出现过的位置中所有十六进制的值单独截取出来,每四位分隔开,把F001替换成0,其他值替换成空格。 最后变成下图的8*125的“图”,其实如果会用CyberChef会更方便,不过我不太习惯。

依稀看出flag:ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}

来自https://blog.csdn.net/weixin_45696568/article/details/115261347

参考链接

z.volcano

以上是关于CTFshow刷题日记-MISC-图片篇(上)基础操作和信息附加的主要内容,如果未能解决你的问题,请参考以下文章

ctfshow刷题笔记-misc入门

CTFshow刷题日记-WEB-反序列化篇(上,254-263)

ctfshow-Misc入门

ctfshow-Misc入门 图片篇(50-56)

ctfshow-Misc入门 图片篇(50-54)

ctfshow-Misc入门 图片篇(50-60)