JarvisOJ Crypto

Medium RSA

  1. 使用openssl读取公钥文件
    JarvisOJ Crypto_第1张图片
  2. n不大,直接使用yafu进行因数分解
    JarvisOJ Crypto_第2张图片
  3. 生成私钥
    JarvisOJ Crypto_第3张图片
  4. 解密文件得到flag
    在这里插入图片描述

附:
openssl使用手册
题目文件


BrokenPic

打开后发现缺少文件头,使用winhex补上。
提示中给了图片大小,用文件大小除图片大小即可得到每个像素占用的位数,3148800/(1366*768)≈24。
JarvisOJ Crypto_第4张图片
JarvisOJ Crypto_第5张图片
图片可以看了:

然后可以看到有key,后发现bmp 内的数据变化很规律,可能是块密码,试试 AES,用key 解密一下:

from Crypto.Cipher import AES
key = 'PHRACK-BROKENPIC'
aes = AES.new(key)
 
with open('brokenpic.bmp', 'r') as f:
    data = f.read()
    pic = aes.decrypt(data)
 
with open('t.bmp', 'w') as f:
    f.write(pic)

再加上文件头,可以看到:
JarvisOJ Crypto_第6张图片
扫码即可得到flag

参考
BMP文件格式分析
题目文件
brokenpic.bmp


你可能感兴趣的:(CTF)