二维码

二维码 - BUUCTF

题目附件给了一个压缩包,解压后得到一张名为“QR_code.png”的图片文件。

用QR research(CQR)识别出二维码内容为secret is here
使用草料二维码解码器也可以得到二维码内容。

使用Kali中的工具binwalk对文件进行检测。
binwalk QR_code.png

1
2
3
4
5
DECIMAL       HEXADECIMAL     DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 PNG image, 280 x 280, 1-bit colormap, non-interlaced
471 0x1D7 Zip archive data, encrypted at least v2.0 to extract, compressed size: 29, uncompressed size: 15, name: 4number.txt
650 0x28A End of Zip archive, footer length: 22

可以发现该png文件下还隐藏着一个zip文件。

我们也可以使用 010Editor 进行手动分析。
png的文件尾是AE 42 60 82,正常来说在文件尾之后就应该结束,在这里却发现png的文件尾后还跟着50 4B 03 04,这是zip的文件头,说明在该png文件下还隐藏着一个zip文件。

可以继续使用binwalk对文件进行拆分。
binwalk -e QR_code.png

也可以使用Linux中的工具foremost对文件进行拆分。
foremost QR_code.png

拆分后对zip文件进行解压发现需要密码,使用WinRAR对压缩包内文件进行预览发现里面是一个名为“4number.txt”的文本文件,这可能提示我们该压缩包解压密码是一个四位数字。

使用Ziperello对压缩包密码进行暴力破解即可,密码是7639,和预想的一样。

解压压缩包后发现其中文本文件的内容即为flag。

当然此题在拆分文件那里也可以使用手动拆分的方式,在 010Editor 中对zip文件头前的内容删除后再修改文件后缀为.zip即可得到图片文件下隐藏的压缩包文件,不过直接修改后缀名也可以进行解压完成后续工作。