weirdphoto
压缩包里有一张png图片和压缩包
里面的压缩包有密码,图片全是横纹估计需要调整宽高
于是尝试用脚本进行爆破修改宽高
import binascii
import struct
import sys
file = input("图片地址:")
fr = open(file,'rb').read()
data: bytearray = bytearray(fr[0x0c:0x1d])
crc32key = eval('0x'+str(binascii.b2a_hex(fr[0x1d:0x21]))[2:-1])
#原来的代码: crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
n = 4095
for w in range(n):
width = bytearray(struct.pack('>i', w))
for h in range(n):
height = bytearray(struct.pack('>i', h))
for x in range(4):
data[x+4] = width[x]
data[x+8] = height[x]
crc32result = binascii.crc32(data) & 0xffffffff
if crc32result == crc32key:
print(width,height)
newpic = bytearray(fr)
for x in range(4):
newpic[x+16] = width[x]
newpic[x+20] = height[x]
fw = open(file+'.png','wb')
fw.write(newpic)
fw.close
sys.exit()
修复成功后得到一张照片,右边有英文
当时做到这就卡住了,不知道这串字符是什么
(复盘)
看了wp才知道是栅栏密码,提取出来解码
得到压缩包密码,解码,得到out文件
看到开头00000000后是2D312E,是pdf文件头的一部分
修改开头为25504446
得到pdf后用wbStego对pdf进行隐写提取
得到flag
bluewhale
解压得到一个流量包和一个压缩包,压缩包有密码
wireshark打开流量包,搜索password看有没有密码
搜索得到password
尝试解压发现不是压缩包密码
然而压缩包里的一个txt文件名也叫password
尝试明文攻击
将这段th1sIsThEpassw0rD
添加到txt里压缩成zip
进行发现crc一样,进行明文攻击,得到密码
解压得到一个txt和png,用stegolve查看图片有没有隐写
发现进行data extract,发现是lsb隐写,得到flag
bar
GIF文件,打开全是一帧一帧的黑白灰闪烁
GIFFrame打开保存所有帧到一个文件夹,黑色为1,白色为0,灰色空格,按顺序输入几个
复制到摩斯密码解码
提示code93,搜索找到code93条码规范
条码规范——Code 93_kzhuangood的博客-CSDN博客
每9个一组,黑色为1白色为0
依次照着输入,对照编码表
最后得到一串字符还有校验位
F0C62DB973684DBDA896F9C5F6D962
然后到在线生成条形码网站生成,其会自动去掉校验位
最后其生成的码转成小写即为flag
mirror
图片在kali里binwalk、foremost没有啥结果
图片在kali里打不开,crc错误,所以用脚本进行修复宽高
发现上下颠倒一张相同的图片
拉进010editor,发现结尾有png标识
用脚本进行反转颠倒
data = open('full.png.png', 'rb').read()
data = data[::-1]
data = [data[i:i+16][::-1] for i in range(0, len(data), 16)]
# print(data[0])
print(len(data))
res = b''.join(data)
f = open('flag.png', 'wb')
f.write(res)
f.close()
出来两张一模一样的照片,跑盲水印试试
python bwmforpy3.py decode flag.png.png full.png.png flag.png
可以看到有数字,镜像翻转一下根据hint就得到flag