misc3
查看bpg文件
.\bpgview.exe 文件路径
下载地址
misc11
提示:flag在另一张图里。
放入tweakpng中,删除一个IDAT块,保存为新的图片。得到flag
misc12
提示:flag在另一张图里。
做法与11一模一样,然后只是一个一个IDAT块删完然后保存下来得到flag。我映像中应该是删了5次。
misc13
提示:flag位置在图片末尾。
这里把这串字符的十六进制数值复制下来,按照规律选取正确的数值,直接搞不行。。。。。
s="631A74B96685738668AA6F4B77B07B216114655336A5655433346578612534DD38EF66AB35103195381F628237BA6545347C3254647E373A64E465F136FA66F5341E3107321D665438F1333239E9616C7D"
flag=""
for i in range(0,len(s),4):
flag += s[i]
flag += s[i+1]
print(flag)
misc14
提示:flag在那张图里。
binwalk发现存在两张图片
其中一张是JFIF的图片,直接在010里面搜JFIF找到文件头
从这里开始复制下来新建为新的图片。打开后得到flag
misc17
提示:flag在图片数据里。
先binwalk分析,没啥问题,然后试试zsteg
发现隐藏的数据,位置处于extradata:0
将数据提取出来:zsteg -E “extradata:0” /home/volcano/桌面/misc17.png > 1.txt
然后再binwalk -e把1.txt中的数据分离出来,拿到flag
misc20
exif信息查看
ctfshow{c97964b1aecf06e1d79c21ddad593e42}
misc22
提示:flag在图片里。
用magicexif打开,直接发现flag,flag藏到了缩略图中
但是很难看清,然后我们截图,用StegSolve换了个颜色
有个地方很难看清
这是个c不是o 。。。。。。。。
ctfshow{dbf7d3f84b0125e833dfd3c80820a129}
misc23
提示:flag在时间里。
使用exiftool看一下发现有好几个历史时间,上面的History Action中有提示
Timestamp指的是时间戳,那个前缀没搞懂是什么意思,DECtoHEX是十进制转十六进制
时间戳转换
然后再进制转换,就好了
ctfshow{3425649ea0e31938808c0de51b70ce6a}
misc 24 hao
四国欸的一道题
提示:flag在图片上面
我第一想法就是直接改高度就好,然后发现不能这样。。。。。。
这个是bmp文件bmp文件结构
目前是900*150=135000个像素大小,文件头占了53个字节,文件尾的位置在675053字节处(后面两个字节是windows的”补0”),又因为每个像素点由3个字节(十六进制码6位)表示,每个字节负责控制一种颜色,分别为蓝(Blue)、绿(Green)、红(Red),所以文件真实的像素大小为:(675053-53)/3=225000
这题的宽度是对的,所以正确的高度是225000/900=250
然后这个就是改了的高。
misc 25 base
是个很简单的题,但是因为上面那个题,我搞混了。。。。。。。
提示:flag在图片下面
然后是png图片,PNG文件结构
png改图片高度还是很简单的,没bmp那么多事直接改,左框是图片宽度,右框是图片高度
改大96就好
misc26
提示:flag还是在图片下面,但到底有多下面?
改了图片高度后还要知道对的高度,根据图片的crc32值爆破宽高,这题算出来高度是25e
脚本
import struct
import binascii
from Crypto.Util.number import bytes_to_long
img = open("misc26.png", "rb").read()
for i in range(0xFFFF):
stream = img[12:20] + struct.pack('>i', i) + img[24:29]
crc = binascii.crc32(stream)
if crc == bytes_to_long(img[29:33]):
print(hex(i))
ctfshow{94aef125e087a7ccf2e28e742efd704c}
misc27 base
提示:flag在图片下面
jpg文件结构
FF是我已经改了的高
msic 28
提示:flag在图片下面。
图片是gif,修改gif高度
但是要改两处才行
也阔以用gif.bt直接改
misc29
与上一题一样。对gif全部帧进行替换。搜索全部的96 00换成FF 00
misc 31
做法同24,最后算出宽度为1082(余数舍去)