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