[GUET-CTF2019]虚假的压缩包
打开后发现两个压缩包
在虚假的压缩包里发现了key
数学题
n = 33
e = 3
解26
-------------------------
答案是
看网上wp说有伪加密,但360压缩直接解压了,阿巴阿巴…
然后就不会了,百度大法好啊。。。
说是看到n和e,联想到RSA算法
(1)任意选取两个不同的大素数p和q计算乘积
![]()
(2)任意选取一个大整数e,满足
![]()
,整数e用做加密钥(注意:e的选取是很容易的,例如,所有大于p和q的素数都可用)
(3)确定的解密钥d,满足
![]()
,即
![]()
是一个任意的整数;所以,若知道e和
![]()
,则很容易计算出d;
(4)公开整数n和e,秘密保存d ;
(5)将明文m(m<n是一个整数)加密成密文c,加密算法为 [5]
![]()
(6)将密文c解密为明文m,解密算法为
![]()
https://baike.baidu.com/item/RSA%E7%AE%97%E6%B3%95/263310?fromtitle=RSA%E5%85%AC%E9%92%A5%E5%AF%86%E7%A0%81&fromid=409740
借用下大佬的脚本
import gmpy2
p = 3
q = 11
e = 0x3
c = 26
n = 33
s = (p- 1) * (q - 1)
d = gmpy2.invert(e,s)
m = pow(c,d,n)
print pow(c, d, n)
得到答案5,压缩包密码为:答案是5 (希望出题人没事)
得到jpg图片,但是看文件头为png猜测修改图片高度为FA
得到提示^5,
original = open("亦真亦假",'r').read()
flag = open("flag",'w')
for i in original:
tmp = int(i,16)^5
flag.write(hex(tmp)[2:])
查看文件头可知为zip
涉及到一个知识点:doc文件本身也是一种zip。这个很明显是word文档,修改后缀为doc。
![](https://raw.githubusercontent.com/hurttttr/picture/master/img/image-20201216095403929.png)
flag被设置成了白色,全选修改字体颜色即可
flag:flag{th2_7ru8_2iP}