0%

BJDCTF2020-Misc

藏藏藏

binwalk嗦一下,看到有zip结尾标志

image-20220324084239521

在010中搜索PK(或者504B0304)

image-20220324084421544

看到在jpg图片的结尾后边紧跟着一个压缩包,将其分离出来后得到一个二维码,扫描得到flag

image-20220324084525585

鸡你太美

对第二张的gif添加文件头即可

image-20220324085556845

套上flag{}包裹

image-20220324085630293

纳尼

同样的先添加文件头

image-20220324085925214

依据最后一帧猜测是base64image-20220324085944357

四帧拼起来得到flag

image-20220324090318094

认真你就输了

点开题目,发现说flag在表下,但是我将表缩小之后还是没看到什么信息

image-20220324090946274

放binwalk里嗦一下,然后在此目录下发现flag.txt,其中就是flag

image-20220324091023175

just_a_rar

四位数字密码爆破得到2016

image-20220324091324957

打开图片在exif信息中找到flag

image-20220324091355955

一叶障目

在kali中打开图片发现CRC报错

image-20220324091915471

在网上找pngcrc修复脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#coding=utf-8
import zlib
import struct
#读文件
file = '1.png' #注意,1.png图片要和脚本在同一个文件夹下哦~
fr = open(file,'rb').read()
data = bytearray(fr[12:29])
crc32key = eval(str(fr[29:33]).replace('\\x','').replace("b'",'0x').replace("'",''))
#crc32key = 0xCBD6DF8A #补上0x,copy hex value
#data = bytearray(b'\x49\x48\x44\x52\x00\x00\x01\xF4\x00\x00\x01\xF1\x08\x06\x00\x00\x00') #hex下copy grep hex
n = 4095 #理论上0xffffffff,但考虑到屏幕实际,0x0fff就差不多了
for w in range(n):#高和宽一起爆破
width = bytearray(struct.pack('>i', w))#q为8字节,i为4字节,h为2字节
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]
#print(data)
crc32result = zlib.crc32(data)
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

运行后得到新图片,看到flag

image-20220324094305463

你猜我是个啥

flag就在底下,没什么好说的。。

image-20220324094631410

-------------本文结束感谢您的阅读-------------