文章目录
前言
CTFSHOW : https://ctf.show/challenges (点击网址跳转)
每道题都从以下模板讲解,并且每个步骤都有图片,清晰明了,便于复盘。
- 题目:
- 解决思路:
- flag:
- 疑问:
图片篇(基础操作)
misc1
- 题目:
- 解决思路:
打开图片,看到flag
- flag:
ctfshow{22f1fb91fc4169f1c9411ce632a0ed8d}
misc2
- 题目: 解压得到txt文件
- 解决思路:
- 看到txt文件,notepad++或者010、winhex打开txt文本查看文件头
- 发现文件头8950对应的文件后缀格式是PNG,说明该文件是PNG图片,所以把txt改成PNG后缀名即可
- 查看文件头对应的文件格式
- 把txt改成PNG后缀名即可
- flag:
ctfshow{6f66202f21ad22a2a19520cdd3f69e7b}
misc3
- 题目:
压缩包解压后,就这样。我本人一开始没有下载BandiView和Honeyview,所以该bpg文件没有图片效果的
- 解决思路:
- notepad++打开txt文本发现内容以BPG”开头
- 文本的后缀名已经对应文件头的格式
- 所以用能够打开bpg后缀文件的软件打开尝试查看
- 下载BandiView或者Honeyview打开查看flag,成功
- flag:
misc4 *
- 题目: 压缩包解压后
- 解决思路:
- notepad++打开txt文本发现内容以“塒NG”、“GIF89a”等等开头,猜到是格式问题了
- 用16进制查看文件的文件头,文件头都与内容开头的文件格式对应,确定是格式问题
- 把文本的后缀名改成其文件头的格式即可
- 第六个文件,文件头是 “52494646”(即 “RIFF”),由于前面五个都是图片格式,其对应着RIFF中的WebP文件(图像格式)
- flag:
)
- 疑问:
比如,第二个文本的文件头是jpg格式,为什么改成png格式也可以查看flag?
)
图片篇(信息附加)
misc5
- **题目:**压缩包解压后
- 解决思路:
- 点开图片,显示,flag不在这里
- 尝试着用notepad++打开txt文本,拉到下面,发现藏着flag
- 16进制也可以查看得到flag
- 用010和记事本也可以找到
- flag:
如上图所示
misc6
- 题目: 压缩包解压后
)
- 解决思路:
- 使用010 Editor,使用 CTRL+F 搜索功能,选择ASCLL,输入ctf,或者flag等等
- 使用notepad++r,使用 CTRL+F 搜索功能,选择ASCLL,输入ctf,或者flag等等
- 使用010 Editor,使用 CTRL+F 搜索功能,选择ASCLL,输入ctf,或者flag等等
-
使用notepad++r,使用 CTRL+F 搜索功能,选择ASCLL,输入ctf,或者flag等等
-
flag:
如上图所示
misc7
- 题目: 和misc6一样
misc8 (多种解)
-
题目: 压缩包解压后
)
-
解决思路1:
- notepad++查看文件头没问题,并且文本内容和16进制内容搜索不到flag
- 答案借鉴
- 先用binwalk 来分析文件是否由多个文件组成
- 如果是由多个文件组成,用 binwalk -e 文件名 分离文件
- 如果分离后,得不到flag,再用“ foremost 文件名 -o 新命名的文件 “”来分离文件
- binwalk 来分析文件,可见misc8.png图片由二个png图片组成
- 我这边要在命令后面加上 --run-as=root 不然没有权限,分离得到_misc8.png.extracted文件
- 查看_misc8.png.extracted文件,得不到想要结果
- 使用foremost分离文件
- 细节:
- 在这里我是通过xftp把test文件传到真机查看其内容,但是查看的test文件夹是空的,同时在虚拟机kali下进入test文件,以及想进入test的子目录,没有执行权限,就是因为kali用户对test文件没有执行权限, 所以要更改权限chmod
- 使用chmod -R test 更改test文件及其文件子目录的权限
- 进入png文件夹,查看图片,第一张没有,第二张有flag
=
- flag:
- 解决思路2: 010和notepad++手动分离
- notepad++查看文件头没问题,并且文本内容和16进制内容搜索不到flag
- 答案借鉴
- 先用binwalk 来分析文件是否由多个文件组成
- 分析得到文件由二个png图片组成,并且binwalk分析出二个图片的开始与结束位置
- 通过notepad++手动分离(删除其中一个图片),单独分离出二个图片,看哪个图片有flag
- binwalk 来分析文件
- 这边只示范单独分离出第二个图片(第一个单独分离出来得不到flag)
- 选中第一个png图片的16进制区域,鼠标右键,点击Delete删除第一个图片的16进制文件,这样可以单独分离出第二个png图片
- flag:
- 解决思路3: 使用dd命令可跳过第一张图片,手动分离出第二张图片
- 先用binwalk 来分析文件中的二张图片的16进制位置
- 使用dd命令可跳过第一张图片(即bs=1 count =11633 skip=3892 ),读取第二张,单独分离出来
- 3892表示的是跳过3892个字节,即跳过第一张图片,11633是十六进制ox2d71换算来的,保证读取完整
- 单独分离出第二种图片
- 疑问: 图片读取不完整的问题
- count =3954,只能读取一半
- count =63,图片是灰色
misc9
- 题目: 和misc6一样,文本或者16进制找flag
misc10
- 题目: 压缩包解压后
)
- 解决思路1:
- notepad++查看文件头没问题,并且文本内容和16进制内容搜索不到flag
- 先用binwalk 来分析文件是否由多个文件组成
- 得到png和zlip,有隐藏文件
- 使用binwalk分离
- binwalk分离得不到,再用foremost
- 分析得到png和zlip(文件后缀名为 .zlib 表示该文件是使用 zlib 库压缩的),有隐藏文件,再使用binwalk分离,
- 分离得到文件夹,点击进入文件下查看
-
flag:
-
flag在10E5文件中
- 解决思路2: 使用foremos没成功
- 用foremost分离文件,得到test文件夹
-
flag:
-
伪flag
misc11
- 题目: 解压后得到一张伪flag 的png图片
- 解决思路:
- 题目中给了提示flag在另一个图中
- notepad++查看文件头没问题,并且文本内容和16进制内容搜索不到flag
- 先用binwalk 来分析文件
- 得到png和二个zlip,判断该文件有隐藏文件
- 使用binwalk分离
- binwalk分离得不到,再用foremost
- 发现binwalk和oremost都不行
- 使用tweakpng排查发现含有2个IDAT块,图片默认显示第一个,根据提示删除第一个IDAT,保存得到一个新图片,得到flag
- binwalk分离出的文件夹下,没有flag
- 再用foremost分离图片
- 使用tweakpng根据题目提示flag在另一张图里,删除第一个IDAT,保存得到一个新图片
- flag:
- 总结:
- 出题人意图:对图片IDAT数据块的考察,所以要了解png图片的四大数据块
- PNG 的图像数据块(IDAT)存储图像的实际数据,相当于 BMP 图像的图像数据。PNG 可以包含多幅图像,所以 PNG 的图像 数据块可能是由一幅图像的数据组成,也可能是由多幅图像的数据组成(默认显示第一个IDAT数据块图像)
misc12 *
- 题目: 题目和misc11一样,解压得到png图片,伪flag
- 解决思路:
- 看题目提示:flag在另一张图里
- 010或者notepad打开,flag在文本或者16进制中是找不到
- 使用binwalk分析文件,没看到有隐藏文件
- 使用tweakpng,发现有很多IDAT块,IDAT合并,binwalk分离,也不行
- 使用tweakpng依次删除,删到前8个后,在第九个IDAT保存,图片出现flag
- 尝试binwalk分析与IDAT合并
- 使用tweakpng,发现有很多IDAT块,IDAT合并,binwalk分离也不行
- 使用tweakpng依次删除,删到前8个后,在第九个IDAT保存,图片出现flag
- flag:
如上图所示
- 疑问:
有人把IDAT合并后,得出删除前8个,怎么做?
misc13
- 题目: 题目和misc11一样,解压得到png图片,伪flag
- 解决思路:
- 题目提示flag位置在图片末尾
- tweakpng打开文件发现两个IDAT块,但是删除后图片是黑色,无flag
- 用notepad++的16进制查看,大概看到有ctf和flag的ASLL码,但是不完整
- 用010查看,也有ctf,只不过被一些字符分隔开了,但是比较完整(比notepad++不完整),根据这些flag的特征,以ASCLL码的形式搜索c或者oK ,搜索出4处,题目说在图片末尾,可以尝试第2,3,4
- notepad++的16进制查看,大概看到有ctf和flag的ASLL码,但是不完整
- 用010查看,以ASCLL码的形式搜索c或者oK ,搜索出4处
- 发现他们都是隔位有个字符,按规律隔位删除字符即可,得到四个flag
ctfshow{ae6e3fa48f528b1742d72e6f41298380}
ctfshow{1e3e2ed48f518b7e4267de1c412a839a}
ctfshow{ae6e3ea48f518b7e42d7de6f412f839a}
ctfshow{ae6e46c48f739b7eb2d1de6e412f839a}
- 题目提示在末尾,从后面开始试,答案在第三个
- flag:
ctfshow{ae6e3ea48f518b7e42d7de6f412f839a}
- 尝试:
binwalk和foremost不行
misc14
- 题目: zip解压得到JPG图片,伪flag
- 解决思路:
- 题目提示:flag在那张图里
-常规思路,用notepad++和010查看,找不到- binwalk分析,显示有隐藏文件,但分离不出,没变化
- foremos分离,得到伪flag图片
- 答案借鉴
- 题目提示flag在那张图里,原图是jpg格式,binwalk分析,隐藏二个jpg和二个tif图片,分离出第二个jpg图片
- 用dd命令,手动选择分离
- binwalk分析,显示有隐藏文件,但分离不出,没变化。 -foremos分离,得到伪flag图片
- dd命令,手动选择分离
-
flag:
-
解决思路2:
- binwalk分析得到第二张jpg图片位置在0x837,把前面的数据删除保存即可得到第二张jpg图片
- 用16进制查看文件的文件头,文件头都与内容开头的文件格式对应,确定是格式问题
- 把文本的后缀名改成其文件头的格式即可
- 解决思路3:
- 查询资料和借鉴答案,对于该jpg图片常规binwalk - e命令分离不了
- binwalk -D=jpeg misc14.jpg --run-as=root
- flag:
- 还得把文件后缀名改成jpg格式
- 疑问: 已解决
用notepad++和010查看二个jpg的文件头发现不相同FF D8 FF E1和FF D8 FF E0
- JPEG图像数据,EXIF标准、JPEG图像数据,JFIF标准
misc15
-
题目: 解压得到bmp图片
-
解决思路:
- 题目提示:flag被跳过去了 (misc15就是这么简单,不过这里有个点,就是题目里那个“跳”字。BMP格式的文件头里有4位字节叫作偏移量,是用来指定从哪个字节开始为实际图像数据用的。这题就是利用增大这个偏移量的方法,把冗余数据塞在了BMP头和图像数据中间的地方。因为这段数据不会被识别,所以可以说是跳过去了。—来自评论区用户的评论见解)
- notepad++和010打开发现有ctfshow字眼
misc16
-
题目:
-
解决思路:
- 题目提示:
- notepad++和010打开,找不到ctfshow字眼
- 根据提示,先binwalk分析和分离
- binwalk分离的到四个文件,DD4用记事本打开有flag
- flag:
ctfshow{a7e32f131c011290a62476ae77190b52}
misc17
-
题目:
-
解决思路:
- 题目提示:flag在图片数据里
- notepad++和010打开,找不到ctfshow字眼
- 根据提示,binwalk分析有3个文件,分离文件后,无结果
- foremost分离也不行
- 由于题目是PNG图片,尝试用tweakpng一个个删除,也不行,最后合并所有IDAT再分离,得到二个文件,也无结果
- 看了一下答案 (kali安装zsteg)
- 用到zsteg命令 (用于检测PNG和BMP图片中隐藏数据的工具,它可以帮助用户发现和提取图像中隐藏的信息)
- zsteg检测到misc17.png有隐藏的信息 “ extractata :0”
- zsteg把misc17.png中隐藏的信息 “ extractata :0” 提取到指定文件“s”
- 最后binwalk分离文件“s”,得到_s.extracted 文件夹
- kali打开IF可以看到flag
- binwalk分析
- binwalk分离,无结果
- zsteg检测到misc17.png有隐藏的信息 “ extractata :0”
- zsteg把misc17.png中隐藏的信息 “ extractata :0” 提取到指定文件“s”
- 最后binwalk分离文件“s”,得到_s.extracted 文件夹
- kali打开IF可以看到flag
- flag:
- 在真机查看,要改成png后缀名
- kali本身安装了zsteg的话,直接binwalk可以出flag(没有安装zsteg,binwalk只能分离出前面二个文件)
- flag在“D6E“
misc18
-
题目:
-
解决思路:
- 题目提示:flag在标题、作者、照相机和镜头型号里
- 查看图片属性
- flag:
ctfshow{325d60c208f728ac17e5f02d4cf5a839}
misc19
-
题目:
-
解决思路:
- 题目提示:flag在主机上的文档名里
- notepad++和010、winhex打开,找不到ctfshow字眼
- 看答案
- 使用EXIF查看器,网址:https://exif.tuchong.com/
- https://exif.tuchong.com/ 网站入口 (点击即可)
- flag:
ctfshow{dfdcf08038cd446a5eb50782f8d3605d}
misc20
-
题目:
-
解决思路:
- 题目提示:flag在评论里。
- 使用EXIF查看器,网址:https://exif.tuchong.com/ 网站入口 (点击即可)
- 解决思路2: 使用HoneyView也行,效果不佳
-
flag:
ctfshow{c97964b1aecf06e1d79c21ddad593e42} -
解决思路3: 利用exiftool查看(下载了,没试过))
misc21
-
题目:
-
解决思路:
- 题目提示:flag在序号里
- 使用EXIF查看器,网址:https://exif.tuchong.com/ 网站入口 (点击即可)
- 16进制转字符串的得到hex(X&Ys)
- hex(X&Ys)的意思是把X和Y转成16进制,对于分辨率和单位来说,是十进制
- 分别将X分辨率,Y分辨率,X定位,Y定位进行hex转换 (先拼接在转,转不了)
- X分辨率 3902939465转16进制为e8a22149
- Y分辨率 3902939465转16进制
- flag:
ctfshow{e8a221498d5c073b4084eb51b1a1686d}
misc22
- 题目: 解压得到jpg图片,点进去看不到黄色字体,是缩略图
- 解决思路:
- 题目提示:flag在图片里
- binwalk分析没有找到压缩包,所以不出文件
- 试一试jpg图片里是否还有jpg图片,然后找到2个FFD8,删除前面的保存,得到有黄色的flag
- flag:
- ctfshow{dbf7d3f84b0125e833dfd3c80820a129}
- 解决思路 2:
- 使用exiftool 工具
- 解决思路 3: Magicexif和XnView也行 (直接查看缩略图)
misc23
-
题目:
-
解决思路:
- 题目提示:flag在时间里
- 看到时间想到图片属性,查看但是没有
- 看了答案
- 在kali 使用 exiftool misc23.psd 命令查看图片信息,根据提示
- 可以看到History Action给了ctfshow{},unixtimestamp是时间戳,DECtoHEX(十进制转十六进制),得到flag
- 日期1997:09:22 02:17:02+08:00 改成 1997-9-22 02:17:02 来转化成时间戳 (874865822,2699237688,2156662245,460377706)
- 将时间戳,即十进制转成十六进制,最后把四个十六进制部分拼接得到flag (3425649ea0e31938808c0de51b70ce6a)
- flag:
ctfshow{3425649ea0e31938808c0de51b70ce6a}
misc41
-
题目:
-
解决思路:
- 题目提示:(本题为Misc入门图片篇和愚人节比赛特别联动题)
H4ppy Apr1l F001’s D4y!
愚人节到了,一群笨蛋往南飞,一会儿排成S字,一会儿排成B字。- 当时没想到
- 答案
- 根据提示得出答案和“F001”这几个字符有关,用010 editor打开后使用十六进制搜索"F001",全部显示,高亮部分的形状就是flag。
- flag:
- ctfshow{fcbd427caf4a52f1147ab44346cd1cdd}