原创

: [GUET-CTF2019]虚假的压缩包 1 得到的 flag 请包上 flag{} 提交。

[GUET-CTF2019]虚假的压缩包 1 得到的 flag 请包上 flag{} 提交。

拿到压缩包

在这里插入图片描述
里面还有俩。
这个压缩软件就很神奇。
如果用360压缩,这个虚假的压缩包就可以直接打开。
在这里插入图片描述

但是用winrar ,就会显示加密。这个加密实际上就是一个zip伪加密,也是简单的。
在这里插入图片描述

可能是360压缩把一些错误信息给过滤掉了。像是一些文件头错误,360压缩是直接不给显示错误文件的。但是其它的解压软件是显示但打不开。

这是虚假的压缩包里面的内容。看着像是某个加密算法。估计是RSA。

1
2
3
4
5
6
7
8
数学题
n = 33
e = 3
解26

-------------------------
答案是

这个整数的数量级很小,直接就可以算出来。也不乐意去求p,q了。

1
2
3
4
5
6
7
8
9
c=26
n=33
e=3

c=pow(m,e,n)


m=5

密码是
那么解压密码就是”答案是5

在这里插入图片描述
在这里插入图片描述
调整图像的大小

在这里插入图片描述
和谁做^5操作呢。
在这里插入图片描述

这个就很像。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import base64

f1 = open('C:\\Users\\brighten\\Desktop\\亦真亦假','r')
xor_data = f1.read()
f1.close()
dec_data = ""
for i in xor_data:
tmp = int(i,16) ^ 5
dec_data += hex(tmp)[2:]

print(dec_data)
f2 = open('./data.txt','wb')
f2.write(base64.b16decode(dec_data.upper()))
f2.close()


出现了乱码
在这里插入图片描述
但是这个PK很可以。
保存到zip格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import base64

f1 = open('C:\\Users\\brighten\\Desktop\\亦真亦假','r')
xor_data = f1.read()
f1.close()
dec_data = ""
for i in xor_data:
tmp = int(i,16) ^ 5
dec_data += hex(tmp)[2:]

print(dec_data)
f2 = open('./data.zip','wb')
f2.write(base64.b16decode(dec_data.upper()))
f2.close()


在这里插入图片描述
这个又是word的感觉吧。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import base64

f1 = open('C:\\Users\\brighten\\Desktop\\亦真亦假','r')
xor_data = f1.read()
f1.close()
dec_data = ""
for i in xor_data:
tmp = int(i,16) ^ 5
dec_data += hex(tmp)[2:]

print(dec_data)
f2 = open('./data.dox','wb')
f2.write(base64.b16decode(dec_data.upper()))
f2.close()


在这里插入图片描述
哈哈哈哈,要不是我设置了护眼模式还真的被骗过去了。太坏了。

在这里插入图片描述
做出来的结果如图。



思考:

打开一系列的WPS系列的文件,发现这些全部都是PK头的。
那么这些全部都是zip文件呀。好神奇呀。
在这里插入图片描述
在这里插入图片描述