Twosmi1e's Blog.

CTF中遇到的隐写术总结

Word count: 805 / Reading time: 4 min
2018/08/03 Share

图片隐写

F5隐写

安恒杯月赛

题目提示浏览图片的时候能不能F5刷新呢?

  1. GitHub上的现成工具:git clone https://github.com/matthewgao/F5-steganography
  2. 进入F5_steganography目录 java Extract 图片文件路径 -p password
    Alt text

然后会出现一个flag.txt但是打开为乱码
Alt text
Alt text
看文件头是zip 看后缀名解压拿flag
flag{96efd0a2037d06f34199e921079778ee}

xor隐写

巅峰极客 loli

hint:0xFF 想到用0xFF异或整个文件

1
2
3
4
5
6
7
8
9
10
11
#!/usr/bin/env python
# coding=utf-8

def xor():
with open('./1.png', 'rb') as f, open('xor.png', 'wb') as wf:
for each in f.read():
wf.write(chr(ord(each) ^ 0xff))


if __name__ == '__main__':
xor()

得到新的png文件,用hex看文件有提示
Alt text
将png分离出来可以用foremost或者直接修改16进制文件
Alt text
观察png文件,可以看到色块分为11列,每列隔行的色块永远是黑色,这说明应该横向读取图片,而列中的横长条由8个小色块组成,显然其代表的是一个字节的数据。
提取信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import matplotlib.image as mpimg

res_str = []
res = []


def readpng():
png = mpimg.imread('./00006777.png')
yy, xx, depth = png.shape
for y in range(yy):
if y % 2 == 0:
for x in range(1, xx - 1, 9):
_str = "0b" + str(int(png[y][x][0])) + str(int(png[y][x + 1][0])) + str(int(png[y][x + 2][0])) + str(int(png[y][x + 3][0])) + str(int(png[y][x + 4][0])) + str(int(png[y][x + 5][0])) + str(int(png[y][x + 6][0])) + str(int(png[y][x + 7][0]))
res_str.append(_str)
res.append(bin2hex(_str))
print res_str
with open('res.bin', 'wb') as f:
for each in res:
f.write(chr(each))


def bin2hex(_bin="0b101"):
return int(_bin, 2) ^ 0xFF


if __name__ == '__main__':
readpng()

打开就能看到flag
Alt text
flag{e0754197-e3ab-4d0d-b98f-96174c378a34}

LSB隐写

巅峰极客 warmup

判断方法大概就是用Stegsolve打开看red plane 0,blue plane 0, green plane 0是不是大致相同,如果是那多半是LSB隐写

分别提取红绿蓝三个通道的最低位
Alt text
Alt text
Alt text
分别是ook 和brainfuck编码 然后解码拼一起就完事
flag{db640436-7839-4050-8339-75a972fc553c}

安恒月赛 女神

题目提示弱口令,会误以为压缩包密码为弱口令,结果是隐写口令为弱口令

打开压缩包发现有密码,旁边有备注
Alt text
复制备注到sublime,发现是tab和空格,于是猜测为摩斯码,空格为点,tab为横线
Alt text
Alt text
解码得到密码,解压后得到图片,用Stegoslove分析应该是LSB隐写,用cloacked-pixel解出flag,密码为弱口令
Alt text
flag{jsy09-wytg5-wius8}

反色二维码

有些简单题目用stegsolve就能出二维码不过是反色的
比如这种

whalectf Find
Alt text

这时候发送到QQ上点击选中就可以扫了
Alt text

word隐写

第一种是在word内容里隐藏文字
Alt text
勾选上隐藏文字就可以看到隐写内容。
当然也有把文字颜色改为和背景色一样的,还有用图片覆盖的。

第二种是在xml文件中隐藏
用binwalk查看文件或者将文件后缀名改为zip可以解压出xml文件
Alt text

未完待添加。。。。。。

上述题目文件链接

链接:https://pan.baidu.com/s/15-U7XAF21hvr7DBq01Rd_g 密码:7r3s

CATALOG
  1. 1. 图片隐写
    1. 1.1. F5隐写
    2. 1.2. xor隐写
    3. 1.3. LSB隐写
    4. 1.4. 反色二维码
  2. 2. word隐写
  3. 3. 上述题目文件链接