![]()
CTF-RSA-tool 是一款基于python以及sage的小工具,助不熟悉RSA的CTFer在CTF比赛中快速解决RSA相关的 基本题型 。
easy_install gmpy2
如果不行,可以尝试我的安装过程:
> 安装sagemath的以支持更多的算法,提高解题成功率,嫌麻烦也可以不安装
官网:
我的安装过程:
python solve.py -h
python solve.py -g --createpub -N your_modulus -e your_public_exponent -o public.pem
python solve.py -g --dumpkey --key examples/smallfraction.pub
-i需要)python solve.py -g --enc2dec examples/jar/flag.enc
> 非 --input(文本文档自动识别攻击) 的情况下,请至少选择 --private(打印得到的私钥) 或 --decrypt(解密一个加密的文件) 或 --decrypt_int(解密一个十进制数) 中的一个,不然程序不会干什么事,具体参考example.txt
大多数情况下,只用使用 python solve.py -i rsa.txt 指定一个txt文本,txt的内容为你从题目获取的变量,如
用-i指定这个文本文档就行了,这样就不用用命令行去一个个指定参数,弄的终端看着很乱。
这个txt的编写规范参看examples/input_example.txt
每次使用都要找到项目目录很麻烦,可以做个符号链接,链接solve.py到bin目录下,如在我的MACos中
ln -s /Users/3summer/Documents/code/CTF-RSA-tool/solve.py /usr/local/bin/rsa_solve
之后,就能直接在终端输入rsa_solve -i rsa.txt去快速秒简单题了
根据题目给的参数类型,自动判断应该采用哪种攻击方法,并尝试得到私钥或者明文,从而帮助CTFer快速拿到flag或解决其中的RSA考点
首先,识别用户的输入,可以是证书 *pem* 文件,也可以通过命令行参数指定n,e等变量的值,甚至可以通过命令行指定题目所给的txt文件并自动识别里面的变量(见examples)
根据取到的参数类型及数量,选取可能成功的方法并采用一定的优先级逐个尝试。
如常见的题型:给了一个公钥和一个加密的密文,我们需要先分解大整数N,然后得到私钥再去解密。考点在于大整数分解,脚本会挨个尝试下面 已实现的攻击方法 中列举出的关于分解大整数的方法,直到分解成功。
CTFer可以通过命令行选择是输出私钥还是输出解密后的密文,还是一起输出
主要参考ctf-wiki和RsaCtfTool及自己平时遇见的一些题型
开发语言:Python
Star 数:522
该项目属于CTF思路方向的开源资源,代码结构清晰,适合安全研究人员学习参考。项目围绕a little tool help CTFer solve RSA problem展开,提供了可运行的实现,对理解相关安全机制、工具原理与攻防技术具有较高的研究价值。
从技术实现角度看,此类项目的核心在于对底层原理的深入理解与工程化落地。开发者在研究过程中可以结合官方文档与社区讨论,梳理项目的初始化流程、核心模块职责与数据流转,逐步掌握其中的技术细节与设计思路。
1. 下载源码压缩包,解压到本地环境。
2. 根据项目类型准备对应的运行环境与依赖。
3. 按照 README 中的步骤完成配置与部署。
4. 在隔离的测试环境中运行验证,避免影响生产系统。
本资源来源于开源社区,仅供安全研究、技术学习与合法授权范围内的攻防演练使用,请勿用于任何非法或侵害他人权益的用途。使用本项目产生的一切后果由使用者自行承担。
| 资源标题 | CTF-RSA-tool - a little tool help CTFer solve RSA problem |
| 所属分类 | CTF思路 |
| 发布作者 | admin |
| 发布时间 | 2026-10-05 23:41:05 |
| 下载权限 | 免费下载 |
| 附件数量 | 2 个下载链接 |
| 浏览次数 | 78 |
| 讨论数量 | 0 |
| 主题状态 | 正常讨论中 |