buuctf-rsa

下载附件后给了两个文件,一个flag.enc,一个pub.key(感受更像密码学的题!)php

用记事本打开pub.key发现有段base64的编码,解码后仍是意义不明,但能够发现python

 

这种形式很像.pem的格式(PEM是OpenSSL和许多其余ssl工具的标准格式,OpenSSL使用PEM文件格式存储证书和密钥)工具

将pub.key后缀改成.pem,和flag.enc一块儿放入kali中,接下来编码

①使用openssl命令spa

openssl rsa -pubin -text -modulus -in warmup -in pub.pem

获得code

 

②其中的Moudulus即为n,e为65537,而后求解p和qblog

  有如下三种方法:ip

  1). 使用在线工具http://www.factordb.com ssl

  2). 使用yafu工具(需下载)get

  3). 使用python模块(需安装, pip3 install factordb-pycli)

from factordb.factordb import FactorDB
factor=FactorDB(N)
factor.connect()
factor_list=factor.get_factor_list()
#factor_list即为分解出的质数集合的表

③使用rsatool得出私钥,使用命令

python rsatool.py -o private.pem -e 65537 -p 285960468890451637935629440372639283459 -q 304008741604601924494328155975272418463

会发现文件中多出一个private.pem文件

④把private.pem和flag.enc放在同一文件夹中,使用命令

openssl rsautl -decrypt -in flag.enc -inkey private.pem

 

 得出最终的flag!!!

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息