Backdoor CTF 2013: 电子取证 250

时间:2022-04-10 11:50:45

0x00 题目

h4x0r厌烦了你对他的城堡的所有攻击,所以他决定报复攻击你,他给你发来一封带有图片的邮件作为警告,希望你能找出他的警告消息:-)

消息的MD5值就是flag。

0x01 解题法1

给出的图片:

Backdoor CTF 2013: 电子取证 250

StegSolve(基于Java开发的流行图片隐写分析软件)打开图片,浏览图片各个颜色通道,发现Blue plane 0通道时图片左上角突然多了一些内容,应该就是隐藏的二进制信息。

Backdoor CTF 2013: 电子取证 250

所以使用StegSolve中Analyse选项下Data Extract功能查看Blue plane 0通道:

Backdoor CTF 2013: 电子取证 250

计算出MD5值

1
2
3
4
root@kali:~# echo modernwarfare | md5sum
3c87b2bc2f0e1143ecb67aa8570ffc1b  -
root@kali:~# echo -n modernwarfare | md5sum /* 选项-n表示输出文字后不换行*/
d2432052b887f9e09fb8fa44b11861ef  -

0x02 解题法2

用StegSolve打开图片,浏览图片的Gray bits通道:

Backdoor CTF 2013: 电子取证 250

将Gray bits通道时的图片另存为solved.bmp:

Backdoor CTF 2013: 电子取证 250

编写脚本提取这些信息,将它们转换为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字符串:

Backdoor CTF 2013: 电子取证 250

计算出MD5值

1
2
3
4
root@kali:~# echo modernwarfare | md5sum
3c87b2bc2f0e1143ecb67aa8570ffc1b  -
root@kali:~# echo -n modernwarfare | md5sum /* 选项-n表示输出文字后不换行*/
d2432052b887f9e09fb8fa44b11861ef  -