前言:本文是实验吧训练题库里隐写术部分的一道题:“小苹果”的Write Up.
解题文件:
观察题目发现这很像是一个二维码,拿手机扫描一下得到这个:
\u7f8a\u7531\u5927\u4e95\u592b\u5927\u4eba\u738b\u4e2d\u5de5
这是一串Unicode编码字符,使用Unicode转中文:
转换得到:
羊由大井夫大人王中工
这是CTF中常出现的一种“当铺密码”
当铺密码百度百科地址:当铺密码
当铺密码的原理就是一个汉字中有多少个出头的笔画就对应相应的数字,根据当铺密码解密,上述汉字转换成数字就是:
9158753624
我们猜测这可能是一个解密密码。
既然有了解密密码,而且我们手里只有一个文件,因此想到是不是会是解密压缩包呢。我们拿到的文件里并没有压缩包,但是我们可以尝试自己创建压缩包。
经过尝试我们可以通过将apple.png 改成apple.png.rar 的方式构造一个压缩包。
之后右键解压会得到一个mp3文件.
这时我们就想到了一个在CTF比赛中常用于从mp3文件中提取flag的工具mp3stego
mp3stego的使用方法可以参考这里:
简单的命令格式就是:
decode -X -P password svega_stego.mp3
—预警:踩坑开始—
解压mp3stego后,我为mp3stego配置了一下Path环境变量:
C:\ctftools_other_01\MP3Stego_1_1_18\MP3Stego_1_1_18\MP3Stego
之后在apple.mp3所在的路径下输入:
decode -X -P 9158753624 apple.mp3
回车。
然而,回车之后并没有得到flag,回车后返回的信息是:
可以看到,最后的返回结果是:
[Frame 0]OpenTable: could not find tables/huffdec Check local directory './tables/' Please check huffman table 'huffdec'
查找了一些资料,发现并没有人在使用mp3stego之前配置了环境变量,每次使用mp3stego都是将需要解密分离的文件放到mp3stego所在的路径中使用。但是,此时我仍然想尝试一下是不是可以通过添加环境变量的方式我又尝试将mp3stego压缩包中的其他两个文件夹的路径添加到了Path环境变量里,发现上述问题依然存在,因此使用大家都在用的办法:
—警报解除:踩坑结束—
直接将MP3文件复制进C:\Users\master\Desktop\隐写\MP3Stego_1_1_18\MP3Stego 目录(即MP3Stego所在的目录),然后在该目录的路径框里输入cmd ,之后回车便可以在该路径下打开cmd,之后输入:
decode -X -P 9158753624 apple.mp3
回车可以正常解密,解密完成后在该路径下面多出两个文件,分别是:
apple.mp3.pcm apple.mp3.txt
打开apple.mp3.txt 可以看到一串字符:
Q1RGe3hpYW9fcGluZ19ndW99
这是一段Base64编码的字符,使用Base64解码之后就可以得到flag。
解码后得到flag:
CTF{xiao_ping_guo}