「配枪朱丽叶。」

RootのCTF学习笔记。

GUET-CTF2019/BUUCTF-Misc:虚假的压缩包

题目下载

有一个虚假的压缩包.zip一个真实的压缩包.zip
其中虚假的压缩包是伪加密,打开内容如下:

数学题
n = 33
e = 3
解26

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

有n有e,一看就是普通的rsa,梭一哈:

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。
这里就脑洞了(ORZ...,得到压缩密码是:答案是5
解压压缩包,虽然显示是jpg,但是用010editor看文件头很容易分辨出是png
修改图片的高度:
https://s2.ax1x.com/2020/01/07/lcIkcQ.png
提示和5异或:

original = open("亦真亦假",'r').read()
flag = open("flag",'w')
for i in original:
    tmp = int(i,16)^5
    flag.write(hex(tmp)[2:])

运行后得到一大串十六进制,开头是504b0304,HEX→ASCII,保存为zip。
打开后是这样的:
https://s2.ax1x.com/2020/01/07/lcI4gg.png
涉及到一个知识点:doc文件本身也是一种zip。这个很明显是word文档,修改后缀为doc。
打开后全选,颜色替换为深色在结尾可以看到flag。
https://s2.ax1x.com/2020/01/07/lconrd.png