ctfshow刷题笔记-misc入门
Posted zxqt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ctfshow刷题笔记-misc入门相关的知识,希望对你有一定的参考价值。
ctfshow-misc入门
图片篇(文件结构)
misc24
1.在010Editor中打开文件,根据鼠标自动提示找到图片宽高对应的地方
biWidth
指定图象的宽度,单位是象素。
biHeight
指定图象的高度,单位是象素。
2.修改图片高度为250px并另存
3.打开后得到flag
misc25
1.从网上找到的脚本(将脚本和图片放在同一个文件夹中更加方便)
https://blog.csdn.net/m0_58030673/article/details/128794368
`import binascii
import struct
crcbp = open("misc25.png", "rb").read() #打开图片
crc32frombp = int(crcbp[29:33].hex(),16) #读取图片中的CRC校验值
print(crc32frombp)
for i in range(4000): #宽度1-4000进行枚举
for j in range(4000): #高度1-4000进行枚举
data = crcbp[12:16] +
struct.pack(\'>i\', i)+struct.pack(\'>i\', j)+crcbp[24:29]
crc32 = binascii.crc32(data) & 0xffffffff
# print(crc32)
if(crc32 == crc32frombp): #计算当图片大小为i:j时的CRC校验值,与图片中的CRC比较,当相同,则图片大小已经确定
print(i, j)
print(\'hex:\', hex(i), hex(j))
exit(0)`
2.得到下列结果,结果与宽高对应,根据结果修改
3.修改完后另存文件
4.打开文件后得到flag
misc26
1.步骤与25类似,只是最后结果中要求找到图片真实的高,hex代表十六进制,求出来为25e
misc27
在010editor中查找高宽度可以先看图片属性的高和宽,在转换成十六进制,在010中搜索找到,一般尽量往大了改
将这个宽0096改成00FF
misc28
1.这个题出现了十六进制x86低位在前高位在后,所有查找的时候我查的9600
2.找到flag
misc29
1.多处改高度,可以选择全部替换
2.打开后是动图,flag藏在里面,用StegSolve逐帧查看图片
misc30
题目提示图片宽度为950,转成十六进制是3B6
在010中改下就可以看到flag了
![](https://img2023.cnblogs.com/blog/3197645/202305/3197645-20230528200858279-63363641.jpg
misc31
题目提示图片宽度不对,84 03改成39 04就可以看见倾斜的flag了
misc32
1.脚本得到宽高
2.修改宽得到flag
misc33
同上用脚本得宽高改宽高
misc34
根据题目提示,crc改了,不能通过脚本爆破,所以通过慢慢改宽趋近于正确值0463得到结果
misc35
高0296宽03E4
misc36
根据题目提升宽在398-3B6间,同上更改高宽度
37
stegslove中翻看
misc38
Honeyview工具查看
misc39
在kali中安装identify
sudo apt-get install imagemagick
输入命令
identify -format "%T " misc39.gif > 1.txt
提取出
将37换成1,36换成0,使用脚本得出flag
misc40
先安装工具apngdisassembler
分解APNG图片,分解APNG动画图片中每一帧,并且把帧导出保存为图片文件。
处理后,每一帧图片还带有一个 txt 文件
链接:https://sourceforge.net/projects/apngdis/files/latest/download
用网上的脚本处理得到flag
misc42
chr(x):用一个数值作参数,返回一个对应的unicode字符,该参数的有效范围是从0到1114111(16进制时为0x10FFFF),参数可以是十进制,也可以是十六进制。
查看网上大佬们的wp,并借用其脚本将IDAT的length值进行char转化(难道提示中说的长度=2cm是length中第二板块IDAT的值转化而成?(个人乱猜的想法))
misc43
先在kali中安装PCRT在执行命令
提取出错误crc---chunk crc
在converter中转换
misc50
用Stegslove查看文件
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
参考链接
以上是关于ctfshow刷题笔记-misc入门的主要内容,如果未能解决你的问题,请参考以下文章