题目说明
题目来源: ctf.bugku.com
题目: lunjian.jpg
解题步骤
看到图片先binwalk、foremost二连
foremost分离出两张图片
00000000.jpg
00000034.jpg
xor分析盲水印分析色道分析什么的都没用…
在尝试改高度的时候有了发现
更改00000000.jpg高度
发现一半flag
然而更改000000034.jpg没有另一半flag
回到上一步
更改lunjian.jpg的高度
和00000000.jpg相同
分析lunjian.jpg的hex值
在文件中间位置找到一串二进制
编写脚本
chars = '01101101 01111001 01101110 01100001 01101101 01100101 01101001 01110011 01101011 01100101 01111001 00100001 00100001 00100001 01101000 01101000 01101000'
flag = ''
for i in chars.split(' '):
flag += chr(int(i,2))
print(flag)
跑出结果 mynameiskey!!!hhh
按照以往MISC图片题目的尿性
可能是密码所以在二进制周围找一下压缩包文件头
在二进制后面找到损坏的7z文件头并修复
再次使用binwalk查看
使用dd提取
dd if=lunjian.jpg of=lunjian.7z skip=9591 seek=17568 bs=1
用 mynameiskey!!!hhh
作为密码解压后是一张图片
更改图片高度获得另一半flag
进行对照后获得
Not flag{666C61677B6D795F6E616D655F482121487D}hhhh
虽然它说了Not flag
但是我还是提交了一下
果然不是flag (喜闻乐见)
最后再进行base16解码
import base64
char = '666C61677B6D795F6E616D655F482121487D'
print(base64.b16decode(char))
得到flag
flag{my_name_H!!H}