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
| 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
|
提取出的隐藏二进制数值
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 -
|