一道考验脑洞和观察力的题目。题目给了一个压缩包。
压缩包下载:http://file.eonew.cn/ctf/misc/bmp.zip。
思路借鉴自ChaMd5团队的博客:https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485730&idx=1&sn=cb90f178c56453f558acc626ec84ddad&chksm=e89e21fadfe9a8ecca8ac397984045c7ebda97577ac082d94141d37d0b12d70222128f0af2e7&mpshare=1&scene=23&srcid=#rd。
目录
题目提示
Color Threshold
- 提示:AES ECB密钥为小写字母
- 提示2:密钥不足位用\0补全
- 提示3:不要光记得隐写不看图片本身啊...
分析
binwalk检查
ex@Ex:~/test/bmp$ binwalk 北京地铁2.bmp
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PC bitmap, Windows 3.x format,, 3112 x 1979 x 24
图片里面应该没有隐藏文件。
隐藏字符串分析
先用strings
分析一下文件发现了很多X
字符和)
字符还有一些其他没有用的字符,将这些字符过滤掉之后。
ex@Ex:~/test/bmp$ strings 北京地铁2.bmp | grep -vE "X|\)|\*|W"
+Ol7B
Ol7w
Ol7o
Ol7B
Ol7o
Ol7B
Mq.B
Mq.B
Ol7B
Mq.B
Ol7B
Mq.B
Ol7B
Ok6B
Mq.B
SMq.B
HMq.B
Mq.B
Mq.g
Mq.B
HMq.U
Mq.B
Mq.n
|Mq.B
Mq.B
SMq.B
HMq.g
HMq.g
etfA
M5f5f
M5f5e
还是看不出有什么隐藏信息。
stegsolve.jar分析
开始的时候用stereogram solver
来查找图片的隐藏信息,还是没找到,最后用了Data extra
功能,才发现是lsb加密。
得到提示字符iKk/Ju3vu4wOnssdIaUSrg==
。
后面借鉴了ChaMd5团队的博客
,这个脑洞是真的没想到,在图片中魏公村的那里有疑似被PS的痕迹,所以认为那就是给我们的提示,然后直接写脚本解密。
#! /usr/bin/python3
# -*- coding:utf-8 -*-
from Crypto.Cipher import AES
import base64
aes_instance = AES.new(b'weigongcun'.ljust(16, b'\0'), AES.MODE_ECB)
cipher = base64.b64decode('iKk/Ju3vu4wOnssdIaUSrg==')
plaintext = aes_instance.decrypt(cipher)
print(plaintext)
运行实例:
ex@Ex:~/test$ python3 main.py
b'DDCTF{CD*Q23&0}\x00'
总结
这题需要脑洞与实力进行结合,缺一不可,所以这题解出来的人数并不多,以后或许我也得多训练一下自己的脑洞。当然还有实力。