原创
:  [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文件呀。好神奇呀。
 
 