WeirdPhoto

210 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

WeirdPhoto by K龙

From 2021强网拟态 在这里插入图片描述下载并解压题目文件,得到一个png图片文件以及zip压缩包。压缩包解压需要密码,密钥估计在图片里。 使用stegsolve打开图片,发现无法读取。使用Windows10自带图片查看,发现图片异常。使用kali打开图片,发现图片无法读取。查看IHDR模块,模块数据域正常。 在这里插入图片描述由于Windows系统在打开图片时会忽略CRC校验,因此猜测CRC校验存在问题。

import struct
import  binascii
import os
 
fi=open('1.png','rb').read()
 
for i in range(10000):
    data=fi[12:16]+struct.pack('>I',i)+fi[20:29]
    crc=binascii.crc32(data)&0xffffffff
    if crc==struct.unpack('>I',fi[29:33])[0]&0xffffffff :
        print(i)

使用python脚本,根据CRC计算图片宽度,得1420。 转十六进制得58C。 在这里插入图片描述使用010editor将png宽度改为58C 在这里插入图片描述保存并得到图片。 请添加图片描述根据右侧字符,疑似存在栅栏加密。

#-*-coding:utf-*-
s = 'TIEWOFTHSAEOUIITNRBCOSHSTSAN'
factors = [fac for fac in range(2, len(s)) if len(s)%fac == 0]
for fac in factors:
    flag = ''
    for i in range(fac):
        flag += s[i::fac]
    print(str(fac)+':'+flag)

在这里插入图片描述长度28,取因数214、47。因数为7时解密得明文。 使用明文解压压缩包,得到一未知格式文件。 在这里插入图片描述使用binwalk命令查看,文件内含大量jpg与zlib数据特征。 在这里插入图片描述使用010editor查看文件,ASCII码疑似md与pdf。文件含175个jpg文件尾,与179个jpg文件头。 在这里插入图片描述在这里插入图片描述在这里插入图片描述比对得pdf文件头被删,补充文件头得pdf文件。 在这里插入图片描述在这里插入图片描述文件内容无异常。 根据wbsteg隐写文件为htm、txt、bmp、pdf。 使用websteg工具,得flag。 在这里插入图片描述