420 字
2 分钟
MISC——图片隐写之二维码隐写

在 CTF 中,二维码很少直接让你“掏出手机扫一下”就出 flag。它通常是以破损、反色、缺角、或 01 矩阵的形式出现,考察的是你“修复图形”和“还原数据”的能力。
特征
-
题目附件直接给了一张二维码图片,但扫不出来。
-
分离出的文件里,有一张损坏的二维码(缺定位角、中间有污损、颜色反转)。
-
提取出一段纯文本,内容全是
0和1(01 矩阵)。 -
图片被切成了几块(碎片拼接)。
工具安装:
apt install zbar-tools zbarimg 图片.png //使用工具进行扫码
如果二维码被反色,可以使用StegSolve工具或者ps进行反相 Linux下命令:convert 原图.png -negate 反色图.png
QRazyBox网页工具
- 导入图片:在
Tools->Extract QR Information载入图片,它会自动读取格式信息。 - 手动填补:
- 利用左侧的画笔工具,黑色块选“Fill”,白色块选“Empty”。
- 如果是被遮挡或污损的区域,根据你肉眼看到的边缘规律,手动把它涂黑或涂白。
- 自动纠错(关键):涂完之后,点击
Tools->Reed-Solomon Decoding(或者直接点右上角的Decode按钮)。- 二维码有约 30% 的纠错能力,你只需补全明显的定位角和格式信息,剩下的残损它会自动帮你算出来并解码。
有时候你从图片的 LSB、文件尾部或者文本里提取出来一长串的 0 和 1,比如:
111111100110101011111110100...时,就有可能时01矩阵隐写,一般可以转换为二维码,可以使用脚本去跑出来。