buuctf rsa 解题

下载附件后得到以下文件

 

把pub.key放到linux中OpenSSL解密即可 用到如下命令

 

openssl rsa -inform PEM -in pub.key -pubin -text -out Key1_pub.txt
或者是直接用在线网站解析(http://ctf.ssleye.com/pub_asys.html)
得到如下结果

 

 
可见 e和n都已经出来结果了 利用素数在线分解网站分解n(factordb.com)

 得到p和q 再用脚本跑出d的值 (需要安装gmpy2模块)

import gmpy2
p=3
q=11
e=3
d = gmpy2.invert(e,(q-1)*(p-1))
print (d)

最后的脚本是 (需要安装rsa模块)

import rsa

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

key = rsa.PrivateKey(n,e,d,q,p)        

with open("C:\\Users\\MIKEWYW\\Desktop\\flagenc.txt","rb") as f: 
    f = f.read()
    print(rsa.decrypt(f,key))   

得到flag为

flag{decrypt_256}       

 

 

 

 

 

posted @ 2020-10-02 11:59  C10ud  阅读(172)  评论(0编辑  收藏  举报