ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

攻防世界-Hidden Write

攻防世界-Hidden Write

⭕、知识点

1、二进制文件分离
2、PNG文件格式及末端隐写
3、盲水印
4、zsteg颜色通道隐写

一、题目

一张图片
image

二、解题

1、题目名称应该就是隐写了什么东西在图片里

2、查看图片属性,没有东西

3、binwalk、foremost没有找到东西

4、zsteg发现有IHDR,说明嵌套了一张图片
image

5、到010里搜索IHDR和IEND,发现各有3个
image
image

说明嵌套了2个图片

6、把第二个IHDR-IEND提取出来并修复好文件头,作为1.png
第三个则作为2.png

7、查看图片大小,不一样,但是图片内容呈现的内容一样,想到盲水印

8、由于1.png的大小比2.png大,假定2为原图,1为被隐写了水印的图,使用盲水印解密(--oldseed采用py2算法:因为py3试了没有东西)
image

image

得到flag的尾部 903ef}

9、回头寻找flag前面的部分
对所有3张图片都使用zsteg,在2.png时发现了flag的首部hxb2018{490fe1033073e985
image

10、拼接起来不对,应该是漏了什么
后来才发现是maomao1.png的IEND后面还跟了一串字符ef4526a41ea,是flag的中部
image

11、拼接首、中、尾得到flag

三、答案

hxb2018{490fe1033073e985ef4526a41ea903ef}

四、总结

不要忘记png最原始的隐写方式:在文件末尾IEND后添加冗余内容

其实这几张嵌套图片都是在前一张图片的末尾进行添加的,而出题人特地挖掉嵌套图片的文件头,使得foremost、binwalk失效

看了别人wp还学了一招,可以使用strings xxx.png,拉到最后,如果看到IEND后面还有其他字符串,就可以快速定位到隐写的内容,通过这种方式找到中部的flag似乎是更好的方法。
image

返回列表