2020新基建决赛-misc-ezPIC
一、概要
1、标题:ezPIC
2、关键字:盲水印、png宽高
3、比赛:2020新基建决赛
4、工具:python、010editor
二、开始
1、题目分析
在此感谢csdn上星辰之门和零食商人两位大佬给出的解题思路。
题目解压后得到pass.png和flag.zip,明显flag.zip的密码在pass.png里面。pass.png经过三板斧分析后有两张打开来一样的图片,就是盲水印了,看了大佬的提示才知道python3和python2下的随机数不一样,导致盲水印出来的结果不一样。然后就简单了。
2、开始解题
第一步:解压后
得到pass.png,flag.zip。flag.zip有密码,且经过010editor发现并不是伪加密(全局加密为0B和文件加密位0B一致,都是奇数),那密码就是在pass.png里面了。
第二步:pass.png
pass.png扔到kali里面,binwalk发现有两张png。foremost后得到两张png。打开来看是一样的,但是文件大小有差别,应该是盲水印隐写。
第三步 盲水印-python3
这里就遇到问题了。使用blind-water-mark这个项目里的bwm.py进行盲水印提取,一致失败,乱码。后来经过大佬指点,原来python2和python3的随机数生成不一样,所以要用python3版本的bwm来处理,项目里有一个bwmforpy3.py。
使用这个来解
python3 bwm-python3.py decode 2.png 1.png 33.png
得到33.png,就是盲水印隐写的内容了。
也就是密码是xj@
第四步 宽高
使用密码解压后,得到一个一半二维码的图片。三板斧后没有发现这张图片有任何隐写藏匿的内容,考虑大概率是宽高问题。
二维码都是方方正正的,就用010editor把宽高改成一样
打开了就是完整的二维码,扫描得到flag。
第五步 get-flag
flag{ujis9krnvhqw}