2.11 [GUET-CTF2019]虚假的压缩包


首先拿到题目,有一个虚假的压缩包和真实的压缩包
很明显虚假的压缩包是伪加密

打开压缩包后发现是解rsa

有n,e,c是个简单的rsa,直接脚本一把梭

1
2
3
4
5
6
7
8
9
10
11
12
13
14
import libnum
from Crypto.Util.number import long_to_bytes

c = 26
n = 33
e = 0x3
q = 11
p = 13

d = libnum.invmod(e, (p - 1) * (q - 1))
m = pow(c, d, n)
print "m的值为:"
print m
#print long_to_bytes(m)

得到m为5,可是提示密码不对,这里有个脑洞要加上key.txt前面的”答案是”才是正确的密码,所以真实的压缩包密码为:答案是5。
解压后通过修改图片高度

发现一个将另一个文件的所以和5进行异或
1
2
3
4
5
6
with open("flag","r") as fp:
r=fp.read()
with open("xor.txt","w") as fp1:
for i in r:
tmp=int(i,16)^5
fp1.write(hex(tmp)[2:])

得到的是以”504b0304”开头的,将他放到winhex里进行转换acii

看到是word类型的压缩包,这里的一个知识点:word本身就是个压缩包。所以把zip后缀改成doc,再将字体颜色换成深色,得到flag。

#
Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×