ctf-ichunqiu-misc

1.ReCreators

下载文件,解压可获得一个无后缀的文件,放入binwalk中检查时镜像文件,加载后可获得里面的MP4文件,放入weinhex中观察,发现一串16进制数,

对其做2次hex解码,获得后面带等号的字符串,在做base解密,边做边观察便尝试,发现经过三次base32和两次base64后再次得到一串16进制数,再做hex解码后又获得后面带等号的字符串,再依次做base32解码,两次base64解码即可得到答案

2.CryMisc

下载文件解压发现得到一个zip文件和一个py文件,打开py文件阅读,可知py文件和另外一个压缩包文件用默认密码压缩,找不到密码,打开zip文件发现里面有一个与外面jiami.py有些像的文件,使用明文攻击破解zip,获得里面的gogogo.zip文件,再解压,又得到一个py文件和两个encrypt文件,打开py文件阅读,我们得知RSA.encrypt里放的是对keyRSA加密后的结果,AES.encryt里放的时对密文用key做aes加密的结果,依次解密获得key和密文

from Crypto.Cipher import AES
import gmpy2
import math
n=0x48D6B5DAB6617F21B39AB2F7B14969A7337247CABB417B900AE1D986DB47D971
p=177334994338425644535647498913444186659
q=185783328357334813222812664416930395483
e=65537
d=int(gmpy2.invert(e,(p-1)*(q-1)))
with open('RSA.encrypt','rb') as f:
    s=f.read()
    keymiwen=long(s.encode('hex'),16)
    keymingwenint=pow(keymiwen,d,n)
    key=hex(keymingwenint)
    key=key[2:len(key)-1].decode("hex")
print key
with open('AES.encryt','rb') as fi:
    s=fi.read()
    obj=AES.new(key,AES.MODE_ECB)
    str1=obj.decrypt(s)
    file1=open("1","wb")
    file1.write(str1)
    file1.close()

输出发现是一堆乱码,输入到文件里,用winhex发现,加后缀zip后解密,再次得到一个py文件,两个无后缀文件,打开py阅读,解密,得到flag.jpg

# -*- coding:utf8 -*-
from base64 import *
s=[]
with open('first','rb') as f:
    s.append(b16encode(f.read()))
with open('second','rb') as f:
    s.append(b16encode(f.read()))
s=map(''.join,zip(*s))
with open('flag.jpg','wb') as f:
    f.write(b16decode(''.join(s)))

猜你喜欢

转载自blog.csdn.net/zhang14916/article/details/81191567