BJDCTF2020-MISC记录

1.签到

1.得到无类型文件,改后缀为zip,里面还有一个zip,打开显示格式错误

image

2.010查看发现是png,改后缀为png,得到一张二维码

image

3.QR扫码得到flag

image

2.藏藏藏

1.无类型文件,改后缀为rar,打开后得到txt和jpg

image

2.在jpg文件末尾发现zip,手撕,解压,得到一个doxc,打开后有一个二维码

image

3.二维码扫完就是flag

image

3.认真你就输了

1.无类型文件,改后缀为rar,得到一个表格,打开提示有错误,打开后发现xls文件的内容应该是PK的源码

image
image

2.复制下来用010打开,发现文件源码太乱了,感觉应该不是这么做的

image

3.010查看表格,发现其中应该含有一个flag.txt文件,改后缀为zip,在xl-charts中找到flag.txt

image
image

4.你猜我是个啥

1.无类型文件,010查看,改后缀为png,得到二维码

image

2.扫描之后什么都没有

image

3.010打开,提示末尾有多余的data,末尾数据就是flag

image

5.鸡你太美

1.得到两个gif,副本无法正常打开,010打开,发现副本缺少gif的文件头

image

2.补全,flag就在gif上

flag{zhi_yin_you_are_beautiful}

image

6.纳尼

1.改后缀为rar,得到一个txt和一个gif,gif打不开,010查看,很明显是缺文件头

image

2.加上文件头后,发现动图,把所有的字符串总结在一起,用stegsolve查看每一帧

image

3.base64解码,得到flag(注意flag的格式)

image
image

7.just a rar

1.改后缀为rar,得到加密的rar,根据名字,四位数字密码爆破

image

2.得到gif,在属性-详细信息中发现flag

image

8.一叶障目

1.改后缀为rar,打开后得到一张png

image

2.CRC报错,用脚本爆破CRC

#coding=utf-8
import zlib
import struct
#读文件
file = '1.png'
fr = open(file,'rb').read()
fw = open("repaired.png",'wb')
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.write(newpic)
        	fw.close

3.得到的png下方就是flag

image

posted @ 2022-07-12 10:47  CPYQY_orz  阅读(46)  评论(0编辑  收藏  举报