ctfshow-红包题第五弹

题目链接:https://www.lanzous.com/i9e23fi

下载得到一个压缩包打开后发现只有画.mp3,很容易联想到是音频隐写

首先照例HxD一波

发现不正常的尾部而且是以FFD9结尾的,明显这压缩包还藏了一张图片

foremost分离一下得到隐藏的图片

再重复上面的步骤没任何发现就开始做题了

一个mp3一张图片,emmm音频隐写加密没跑了(真的大坑- -)

那就先分析下MP3文件

扫描二维码关注公众号,回复: 9217647 查看本文章

好的没任何发现,看来如果这音频有隐藏信息加密了那密码就在图片里

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一点关系都没,后面看到提示说的

-----------------------------------------------------------------我是分割线--------------------------------------------------------------

看完了觉得不错就点个赞或者评论下吧,感谢!!!

如果本文哪里有误随时可以提出了,收到会尽快更正的
 

发布了5 篇原创文章 · 获赞 12 · 访问量 4132

猜你喜欢

转载自blog.csdn.net/qq_42016346/article/details/104350613