sunflower
附件里是一张向日葵的图片
foremost可以分离出来两张看起来一模一样的图片,显然是盲水印:
python3 bwmforpy3.py decode 1.png 2.png flag.png
打开flag.png就看到flag了
precision
precision的中文是精度,这一点很重要。
附件里是一个打不开的文件,没有后缀名,用foremost可以分离出来两个文件,一个是上锁了的压缩包,另一个是一个打不开的jpg图片。
用010editor打开这个打不开的jpg图片,运行jpg模板,然后查看模板运行结果,把精度从16改成8即可看到正常的图片:
然后我们可以打开这张图片
然后我们可以用隐形水印提取工具从这张图片上提取出那个压缩包的密码
d5fadf801bb5f7c2
打开压缩包里是一个base.txt,里面是一大堆base编码过的数据
一眼base隐写,不知道是32的还是64的,都试试
#base64隐写
import base64
table = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'
file = open("base.txt")
flag=''
tmpbin=''
for line in file.readlines():
line=line.strip('\n')
if(line[-1]=='='):
if(line[-2]=='='):
i=table.index(line[-3])
b=bin(i)[2:]
b=b.zfill(6)
print(line)
print(b)
print(b[-4:]+'\n')
tmpbin+=b[-4:]
else:
i = table.index(line[-2])
b = bin(i)[2:]
b = b.zfill(6)
print(line)
print(b)
print(b[-2:]+'\n')
tmpbin+=b[-2:]
length= len(tmpbin)/8
for i in range(int(length)):
flag+=chr(int(tmpbin[i*8:i*8+8],2))
print(flag)
#base32隐写
import base64
table='ABCDEFGHIJKLMNOPQRSTUVWXYZ234567'
file = open("base.txt")
flag=''
tmpbin=''
for line in file.readlines():
line=line.strip('\n')
if(line[-1]=='='):
if(line[-3]=='='):
if(line[-4]=='='):
if (line[-6] == '='):
i=table.index(line[-7])
b = bin(i)[2:]
b = b.zfill(5)
tmpbin+=b[-2:]
print(line)
print(b)
else:
i = table.index(line[-5])
b = bin(i)[2:]
b = b.zfill(5)
tmpbin += b[-4:]
print(line)
print(b)
else:
i = table.index(line[-4])
b = bin(i)[2:]
b = b.zfill(5)
tmpbin += b[-1:]
print(line)
print(b)
else:
i = table.index(line[-2])
b = bin(i)[2:]
b = b.zfill(5)
tmpbin += b[-3:]
print(line)
print(b)
length= len(tmpbin)/8
for i in range(int(length)):
flag+=chr(int(tmpbin[i*8:i*8+8],2))
print(tmpbin)
print(flag)
用base32隐写脚本跑出来了:
总结
虽然我做的很烂,但我觉得我们重邮办的更烂一点😓