0x003图片隐写之pngcheck+隐藏二维码

图片隐写继续学习,之前将学习记录都记在了有道云笔记上,自己掉过的坑不想让别人再掉一遍。

先上题

0x003图片隐写之pngcheck+隐藏二维码_第1张图片

哇塞美女!

图片链接地址:https://pan.baidu.com/s/1lXMU_xNJDmFoLVu-hs5XjA 密码:6otw

1、上来使用通用方法。先用stegsolve查看一下,看看其他的LSB之类的并没有发现什么问题,

然后使用checkpng 检查图片结构是否存在问题,发现有一些异常的IDAT块。

0x003图片隐写之pngcheck+隐藏二维码_第2张图片

可以看到,正常的块的length是在65524的时候就满了,而倒数第二个IDAT块长度是45027,最后一个长度是138,很明显最后一个IDAT块是有问题的,因为他本来应该并入到倒数第二个未满的块里。

2、查看异常数据块的情况,使用010editor/winhex打开,导出异常数据块

0x003图片隐写之pngcheck+隐藏二维码_第3张图片

3、 查找78 9C文件头标志,发现是zlib压缩。可以查找用python zlib解压方法

0x003图片隐写之pngcheck+隐藏二维码_第4张图片

4、网上搜索zlib的python解压方法,将异常的IDAT数据块斩头去尾之后使用脚本解压

0x003图片隐写之pngcheck+隐藏二维码_第5张图片0x003图片隐写之pngcheck+隐藏二维码_第6张图片

发现是一堆的31303130,此时赛棍立马就知道怎么回事,初学者看了writeup复现的时候才知道,如下:

0x003图片隐写之pngcheck+隐藏二维码_第7张图片

5、使用Hex to ASCII在线转换工具

https://www.asciitohex.com/

将所有Hex转成ASCII

6、转成ACII后全选发现是625个binary,使用如下脚本画出二维码(第一次做此类题的时候,手动分割NXN的binary,然后粘贴到Excel中,0画黑1不画= =,如果没出来,再1画黑...)

0x003图片隐写之pngcheck+隐藏二维码_第8张图片

Tips:某次比赛,屏蔽各种信号,画出二维码后没有本地二维码解析器,无法解析出flag。百度搜索准备一个本地二维码扫描器

你可能感兴趣的:(CTF之图片隐写)