攻防世界 Crypto cr4-poor-rsa

news/2025/3/16 2:02:52/

题目来源:alexctf-2017

0x00 下载附件

1、补全后缀名

修改文件后缀名为.tar
在这里插入图片描述

2、解压文件

解压缩,得到base64编码的flag文件flag.b64和RSA的公钥key.pub
在这里插入图片描述

flag.b64:

Ni45iH4UnXSttNuf0Oy80+G5J7tm8sBJuDNN7qfTIdEKJow4siF2cpSbP/qIWDjSi+w=

key.pub:

-----BEGIN PUBLIC KEY-----
ME0wDQYJKoZIhvcNAQEBBQADPAAwOQIyUqmeJJ7nzzwMv5Y6AJZhdyvJzfbh4/v8
bkSgel4PiURXqfgcOuEyrFaD01soulwyQkMCAwEAAQ==
-----END PUBLIC KEY-----

0x01 读取RSA参数信息

1、首先获取n和e的值

python脚本:

from Crypto.PublicKey import RSAwith open("./key.pub", "rb") as file:key = file.read()print(key)
pub = RSA.importKey(key)
n = pub.n
e = pub.e
print("n = ", n)
print("e = ", e)

运行结果:

n =  833810193564967701912362955539789451139872863794534923259743419423089229206473091408403560311191545764221310666338878019
e =  65537

2、使用factordb.com对n进行分解

在这里插入图片描述
得到p和q:

p = 863653476616376575308866344984576466644942572246900013156919
q = 965445304326998194798282228842484732438457170595999523426901

3、计算d的值

p = 863653476616376575308866344984576466644942572246900013156919
q = 965445304326998194798282228842484732438457170595999523426901
phi_n = (p - 1) * (q - 1)
d = gmpy2.invert(e, phi_n)
print("d = ", d)
d =  521250646663056391768764366517618655312275374668692430321064634566533568373969990465313092928455546989832961905578375473

0x02 解密密文

1、生成私钥

priv = rsa.PrivateKey(n, e, d, p, q)

2、对密文进行解密

首先是base64解码,然后是rsa解密

with open("./flag.b64", "rb") as file:cipher = file.read()
cipher = base64.b64decode(cipher)
flag = rsa.decrypt(cipher, priv).decode()
print(flag)

0x03 得到flag

在这里插入图片描述
ALEXCTF{SMALL_PRIMES_ARE_BAD}
在这里插入图片描述


http://www.ppmy.cn/news/433733.html

相关文章

【i.MX6ULL开发板】MYD-Y6ULX核心板硬件资源分享

米尔电子推出的MYD-Y6ULX 是基于 NXP 公司 i.MX 6UL/6ULL 系列处理器的嵌入式开发板。i.MX6UL 是一个高功效、高性价比的应用处理器系列,采用单个 ARM Cortex-A7 内核,运行速度高达 696MHz。iMX 6ULL 在 iMX 6UL 的基础上精简了安全加密部分,…

预备章节,通过一个具体的范例交互大家使用Vivado

一、学会VIVADO-01-自制一个八进制计数器IP核 1. Xilinx FPGA Vivado集成开发环境 全球知名的可编程逻辑元器件生产厂商美国Xilinx公司,于2012年发布了新一代Vivado集成开发环境,使得新一代FPGA的设计环境和设计方法发生了重大变化。 Xilinx新-代集成开…

VSCODE如何使用代码片段

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、打开命令面板二、修改增加代码片段三、使用代码片段四、编辑关键字说明 前言 vscode中如何添加代码片段,插入代码片段语法主要是JSON语法结构 …

学习笔记 51单片机通用软件延时方法

对于STC51单片机来说,延时函数,想必都不陌生。而用的最多的延时基本都是通过软件方法实现的,但由于STC51不同系列的芯片所采用的指令集不同,各指令执行所用机器周期不同。例如STC12Cx的一个振荡周期一个机器周期,相对S…

还原永恒之蓝下载器PS脚本混淆

注意:以下代码为真实永恒之蓝木马下载器恶意ps代码,请不要在真实机运行、测试以及调试!!! 下面代码取自该病毒设置的计划任务 powershell.exe -nop -ep bypass -e SQBFAFgAIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIABOAGUA…

蓝桥杯单片机学习(三)——动态数码管

一.还是上原理,主要讲动态数码管。 数码管这一块都在图纸的一个地方,真棒。迎面而来最左边的呢,就是Y6C和Y7C,是不是很眼熟。对,和前面的Y4C,Y5C一样,都是由老朋友HC138译码器控制的&#xff0…

mac-python包安装错误 [Errno 1] Operation not permitted: '/var/folders/5n/vbm997m56xg3kw67y6bccn2m0000gn/T

问题信息: [Errno 1] Operation not permitted: /var/folders/5n/vbm997m56xg3kw67y6bccn2m0000gn/T/pip-4tcBsd-uninstall/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy-1.8.0rc1-py2.7.egg-info 这个问题在numpy、scipy以及…

android新建项目报错:Error Could not open proj remapped class cache for 8y6fc

报错提示:不能为(路径下的文件)打开项目重映射缓存类,试着删除该路径下的文件,rebuild还是不行。 解决办法:打开工程目录下的 gradle/wrapper/gradle-wrapper.properties/distributionUrlhttps://services.…