Eol
感谢光临
Eol's Blog

Welcome! ——隐写入门例题

Welcome! ——隐写入门例题

本题源自 Pragyan CTF 2019,比赛结束时分值 50 pts。

就以这个极其入门的简单题开始我的隐写题 Write-up 吧(毕竟稍难一点就不会了

预备知识(Spoiler Alert!
keyboard_arrow_down

    • JPEG 文件以 0xFF D8 开始,此固定码被称为 SOI (start of image);
    • JPEG 文件的 EOI (end of image) 为 0xFF D9
    • ZIP 文件固定开头为 0x50 4B 03 04

首先,原文件在此:

https://www.eolstudy.com/wp-content/uploads/2019/03/welcome.jpeg

隐写题套路,先用十六进制查看器打开(本文采用工具为 Hex Fiend)。

http://45.76.150.185/wp-content/uploads/2019/04/welcom-head-1024x205.png

检查 SOI 为 0xFF D8,无异常;然而文件结尾却并未发现正确的 EOI(EOI 不是 Eol!!!):

http://45.76.150.185/wp-content/uploads/2019/04/welcome-end-1024x230.png

与此同时,注意到文本显示区有 d.zip 字样,推测图片中掺入了一个 zip 压缩文件。

注意到图片并未损坏,因此图片的 JEPG 部分应已符合标准,故查找 EOI:

http://45.76.150.185/wp-content/uploads/2019/04/welcome-searchEOI-1024x278.png

大概在文件一半的位置找到图片的结尾,同时发现 EOI 之后紧接着的 0x50 4B 03 04 是 ZIP 的文件的起始标志。不难判断出,从此处开始一直到文件结尾的部分是个附加的 ZIP 压缩文件。

因此,将 ZIP 文件的数据部分拷贝出来,并粘贴至用二进制编辑器新建的文件中,命名为 d.zip (文件名可随意)并保存,得到压缩包。将其以 ZIP 方式解压可得文件夹 d,内有两文件:a.zip 和 secret.bmp。其中,a.zip 解压需要密码,而 secret.bmp 在尝试打开时会提示“文件已损坏”。再次使用二进制编辑器打开 secret.bmp,然而发现文件内容是文本文件,并非 BMP 文件:

http://45.76.150.185/wp-content/uploads/2019/04/secret.bmp-1024x133.png

观察文本,可发现 base64 字符串 dGhlIHBhc3N3b3JkIGlzOiBoMzExMF90aDNyMyE==,解码,得到:the password is: h3110_th3r3! 因此,使用 h3110_th3r3 解压 a.zip,得到图片 a.png:

https://www.eolstudy.com/wp-content/uploads/2019/03/a.png

最让人无语的地方要来了——

图片乍一看就是几个几何图形,容易让人习惯性地以为仍需要用二进制编辑器查看隐写内容;然而,在长时间查看图片二进制信息无果后,我又无聊地重新看起了原图,这才发现在黑色矩形下方隐隐约约有些字迹,甚至能看到 pctf{….} 的样式!显然这是 Flag 无疑了:

http://45.76.150.185/wp-content/uploads/2019/04/faint-flag-1024x470.png

然而,试图一点一点尝试看清每个字符的我终于精疲力竭却还没有认全。无奈之下想到了用 PS 提高对比度,这才终于让 Flag 现出原形:

https://www.eolstudy.com/wp-content/uploads/2019/03/flag.png

提交 Flag,50 pts 到手(为什么只有50…

感想

降低对比度的隐写可是真·社工隐写🌚(没错所以我给这篇加上了社会工程学的标签。。。

Eol

文章作者

发表评论

textsms
account_circle
email

Eol's Blog

Welcome! ——隐写入门例题
本题源自 Pragyan CTF 2019,比赛结束时分值 50 pts。 就以这个极其入门的简单题开始我的隐写题 Write-up 吧(毕竟稍难一点就不会了 预备知识(Spoiler Alert!…
扫描二维码继续阅读
2019-03-31