buuctf-rsa


下載附件后給了兩個文件,一個flag.enc,一個pub.key(感覺更像密碼學的題!)

用記事本打開pub.key發現有段base64的編碼,解碼后還是意義不明,但可以發現

 

這種形式很像.pem的格式(PEM是OpenSSL和許多其他ssl工具的標准格式,OpenSSL使用PEM文件格式存儲證書和密鑰)

將pub.key后綴改為.pem,和flag.enc一起放入kali中,接下來

①使用openssl命令

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

得到

 

②其中的Moudulus即為n,e為65537,然后求解p和q

  有以下三種方法:

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

  2). 使用yafu工具(需下載)

  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!!!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM