[CTF从0到1]记一道简单的图片隐写

发布于 2023-08-08  514 次阅读


学长看我闲的没事干扔给我的一道misc题目给了两个文件,一个png一个xlsx。图片一眼看上去像是长宽被隐藏了,至于表格,文件本身没什么问题,看内容像是密码相关的。

先从这张png开刀。处理图片隐写无非就是那几种套路,挨个走一遍就差不多了。010editor打开图片没发现任何问题,CRC校验也正常。用stegsolve看各个通道也没发现隐藏信息,foremost没能拆出来隐藏文件,拖进kali用binwalk拆出来两个抽象东西,不认识,应该和题目没关系。

用tweakpng打开图片,发现三个idat数据块,用pngdebugger查了一下没发现idat数据块有问题,尝试依次删除idat块之后保存图片,然后图片就花了,没发现任何有效信息,这条路也不好使。
然后还是尝试修改了一下图片尺寸。在010editor里把尺寸修改成500×500(原尺寸485×462),才拉了这么点,结果图片直接炸了,直接排除隐藏长宽的可能。

最后想起来传说中的LSB隐写,用stegsolve看了一下,好像有点东西:

看文件头很明显是隐写了个zip(一开始没看出来,但是有个flag.txt,多少有点关系),点Save Bin把文件另存为233.zip,尝试解压,发现带密码(我就知道)

既然有密码,那题目还给了个表格文件,其内容肯定和解密有关系了。表格只有一列,为三个数字的某种排列,看着像什么密文,不管了,先扔进Word里。学长给到提示:

必应搜了一下,没找到有且仅有三种字符的密码,正纳闷的时候,看了一眼密文内容发现了某种奇妙的规律:

7000和8000抱团,长度随机排列随机还可以重复,然后9000出现且只出现一次,似乎充当了某种分隔符的作用,而7000和8000就是密文。瞎鸡儿联想到摩斯密码(eg:-../.-../..-/-/./-../.-,摩斯密码表面上看是只有两种字符玩排列组合,其实充当分隔符的斜线或空格也算一种字符),
利用Word的替换功能先将密文换成摩斯密码并解密得到bm33am10ee75787578ii685432,解压提示密码错误,于是将.-互换解密得到ji88ni65tt20232023mm130987,结果仍旧是解压密码错误。正怀疑是不是思路错了,想起摩斯密码最著名的应用(SOS呼救)似乎都是大写字母的形式出现,于是把密码转换成大写得到JI88NI65TT20232023MM130987,解压成功。

整道题难度很低,属于入门题,但是很好地体现了misc题目的特点,用学长的话说,就是:

最后更新于 2023-11-10