0x00 题目
h4x0r厌烦了你对他的城堡的所有攻击,所以他决定报复攻击你,他给你发来一封带有图片的邮件作为警告,希望你能找出他的警告消息:-)
消息的MD5值就是flag。
0x01 解题法1
给出的图片:
用StegSolve(基于Java开发的流行图片隐写分析软件)打开图片,浏览图片各个颜色通道,发现Blue plane 0通道时图片左上角突然多了一些内容,应该就是隐藏的二进制信息。
所以使用StegSolve中Analyse选项下Data Extract功能查看Blue plane 0通道:
计算出MD5值
1
2
3
4
|
root@kali:~ # echo modernwarfare | md5sum
3c87b2bc2f0e1143ecb67aa8570ffc1b - root@kali:~ # echo -n modernwarfare | md5sum /* 选项-n表示输出文字后不换行*/
d2432052b887f9e09fb8fa44b11861ef - |
0x02 解题法2
用StegSolve打开图片,浏览图片的Gray bits通道:
将Gray bits通道时的图片另存为solved.bmp:
编写脚本提取这些信息,将它们转换为0和1二进制:
1
2
3
4
5
6
7
8
9
10
11
|
from PIL import Image
flag_img = Image. open ( "solved.bmp" )
w,h = flag_img.size
msg = ''
for x in range ( 0 , flag_img.size[ 1 ]):
g,b,a = flag_img.getpixel((x, 0 ))
if g = = 255 : msg + = '0'
else : msg + = '1'
print msg
print chr ( int ( '111001' , 2 ))
|
提取出的隐藏二进制数值
1
2
|
root@kali:~ # python get.py
011011010110111101100100011001010111001001101110011101110110000101110010011001100110000101110010011001010000000000000000000000000000 |
使用编码转换神器JPK将二进制串转换为ASCII字符串:
计算出MD5值
1
2
3
4
|
root@kali:~ # echo modernwarfare | md5sum
3c87b2bc2f0e1143ecb67aa8570ffc1b - root@kali:~ # echo -n modernwarfare | md5sum /* 选项-n表示输出文字后不换行*/
d2432052b887f9e09fb8fa44b11861ef - |