下载附件发现一个flag.enc和pub.key。猜测是需要通过pub.key去解密flag.enc 得到flag

-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9+7+
/AvKr1rzQczdAgMBAAE=
-----END PUBLIC KEY-----

使用在线工具得到

密钥类型 RSA

密钥强度 256

PN(e) 65537

PN(n) 8693448229604811919066606200349480058890565601720302561721665405 8378322103517

DER格式303c300d06092a864886f70d0101010500032b003028022100c0332c5c64ae47182f6c1c876d42336910545a58f7eefefc0bcaaf5af341ccdd0203010001

发现有e和n 分解一下n

得到p、q

P39 = 304008741604601924494328155975272418463
P39 = 285960468890451637935629440372639283459

计算d

d=81176168860169991027846870170527607562179635470395365333547868786951080991441

使用脚本解密flag.enc

import rsa

e= 65537
n= 86934482296048119190666062003494800588905656017203025617216654058378322103517
p= 285960468890451637935629440372639283459
q= 304008741604601924494328155975272418463
d= 81176168860169991027846870170527607562179635470395365333547868786951080991441

key = rsa.PrivateKey(n,e,d,q,p)         #在pkcs标准中,pkcs#1规定,私钥包含(n,e,d,p,q)

with open("flag.enc","rb") as f:  #以二进制读模式,读取密文
    f = f.read()
    print(rsa.decrypt(f,key))           # f:公钥加密结果  key:私钥

解得flag: