【攻防世界】-时间刺客!
⭕、知识点
图片修改日期时间戳隐写/ASCII编码/脚本编写
一、题目
四张图片

二、解题
1、binwalk、zsteg、outguess,stegsolve都无果
2、查看十六进制搜索关键词无果
3、查看属性发现修改日期有点奇怪,每张都不一样,猜测隐藏信息

4、编写脚本提取时间戳
import os
img_dir = os.listdir('./images')
time_stamp_list = []
flag = ""
for image_name in img_dir:
time_stamp = int(int(int(os.path.getmtime('images/'+image_name)*(10**9)) % (2**64-1)) / (10**9))
str_time_stamp = str(time_stamp)
print(str_time_stamp)
ascii_code = ""
for i in range(len(str_time_stamp)):
ascii_code += str_time_stamp[i]
if int(ascii_code) > 127:
ascii_code = ascii_code[:len(ascii_code) - 1]
flag += chr(int(ascii_code))
ascii_code = ""
ascii_code += str_time_stamp[i]
else:
if i == len(str_time_stamp)-1:
flag += chr(int(ascii_code))
print(flag)
注意:以下是对代码的一些解释
1、getmtime的单位为秒,并且有小数点(保留6位),所有时间戳放大至纳秒级别都小于264,所以为了方便处理,就先把时间戳都放大109倍
2、每次放缩和运算后及时用int()取整
3、由于有的时间戳是负数,所以需要对其取模才能得到正数
吐槽:题目出得很无厘头,官方的wp也很抽象,解出这题的容错率和方法途径都很单一,并不是一道好题,但是思路可以借鉴,并不需要在脚本代码上面死磕
三、答案
flag{T1m3_f1ie5}
四、总结
为图片隐写提供新的思路,修改日期

浙公网安备 33010602011771号