欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

BUUCTF RSA公钥加签

程序员文章站 2022-05-02 10:39:18
...

得到两个文件:
pub.key
flag.enc

BUUCTF RSA公钥加签

将pub.key的后缀名改为txt,打开得到:
BUUCTF RSA公钥加签

把pub中的内容,进行公钥解析

BUUCTF RSA公钥加签BUUCTF RSA公钥加签
分解N的网站,得到p,q
factordb

BUUCTF RSA公钥加签

再用工具RSA Tool2 by Te!就能获取到 d=81176168860169991027846870170527607562179635470395365333547868786951080991441,
你写脚本也行,我比较喜欢用工具。
RSA Tool2 by Te!
BUUCTF RSA公钥加签

最后上脚本求flag:

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("C:\\Users\\MIKEWYW\\Desktop\\flagenc.txt","rb") as f:  #以二进制读模式,读取密文  
    f = f.read()
    print(rsa.decrypt(f,key))           # f:公钥加密结果  key:私钥

这里需要安装一个rsa的模块(对于python3):
输入pip3 install rsa
BUUCTF RSA公钥加签

得到flag{decrypt_256}

相关标签: RSA加密