zoukankan      html  css  js  c++  java
  • 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!!!

  • 相关阅读:
    Triangle
    Remove Duplicate Letters
    array 并不会被默认初始化
    Unique Binary Search Trees
    有些障碍的 unique path
    unique paths
    最长增长序列的长度(LIS)
    极其简单的复数类,只是不想再推演一遍复数四则运算
    安卓_11
    安卓_10
  • 原文地址:https://www.cnblogs.com/jane315/p/13175850.html
Copyright © 2011-2022 走看看