题目链接:https://www.lanzous.com/i9e23fi
下载得到一个压缩包打开后发现只有画.mp3,很容易联想到是音频隐写
首先照例HxD一波
发现不正常的尾部而且是以FFD9结尾的,明显这压缩包还藏了一张图片
foremost分离一下得到隐藏的图片
再重复上面的步骤没任何发现就开始做题了
一个mp3一张图片,emmm音频隐写加密没跑了(真的大坑- -)
那就先分析下MP3文件
好的没任何发现,看来如果这音频有隐藏信息加密了那密码就在图片里
jpg隐写的话就照常
.\stegdetect.exe -tjpoi -s 10.0 00017508.jpg
返回negative
那只能一个一个工具试了
哈?你问我为啥确定有隐藏信息?
看这串
还有这串
正常图片有这些鬼东西的吗(有的话请务必告诉我,拜托了我想知道这些是啥)
接着从群主大佬那白嫖的工具里一个一个试
最后发现steghide能检测到隐藏信息
.\steghide.exe info .\00017508.jpg
试了下弱口令是123456
Get!!!隐藏文本找到
.\steghide.exe extract -sf .\00017508.jpg 解出flag.txt
打开
发现是base64格式的字符串,解密得
https://www.lanzous.com/i9dpjxe
又是附件下载链接
下载得到red5.zip
例行分析完没啥发现直接解压得到flag.txt
猜测应该是16进制放到HxD中发现
有坐标有3个,分隔得十进制数很明显是rgb的图片
复制下来后上代码格式化一下把坐标去掉
import re
str_=""
str_list=[]
with open('flag.txt') as f:
for i in f.readline():
str_+=i
if(str_[-1] is ")"):
str_ = "".join(re.findall("\(.*\)",str_))
str_list.append(str_.strip('(').strip(')'))
str_=""
with open('rgb.txt','w') as f:
for i in str_list:
f.write(i+'\n')
接着就是把rgb转化成图像了(网上直接找现成的,x和y就是上面的坐标,从0开始算所以是72和74)
from PIL import Image
x = 72 #x坐标 通过对txt里的行数进行整数分解
y = 74 #y坐标 x * y = 行数
im = Image.new("RGB", (x, y)) #创建图片
file = open('rgb.txt') #打开rbg值的文件
#通过每个rgb点生成图片
for i in range(0, x):
for j in range(0, y):
line = file.readline() #获取一行的rgb值
rgb = line.split(", ") #分离rgb,文本中逗号后面有空格
im.putpixel((i, j), (int(rgb[0]), int(rgb[1]), int(rgb[2]))) #将rgb转化为像素
im.save('flag.jpg') #也可用im.save('flag.jpg')保存下来
得到一张上下颠倒的二维码
ps走起!
ok最后QR_Research一下得到
flagGet!!!
好啦到这结束
..........
是不是忘了什么
对!就是那鬼mp3文件,跟得flag一点关系都没,后面看到提示说的
-----------------------------------------------------------------我是分割线--------------------------------------------------------------
看完了觉得不错就点个赞或者评论下吧,感谢!!!
如果本文哪里有误随时可以提出了,收到会尽快更正的