BUU-REVERSE-rsa

## BUU REVERSE rsa
1.
打开后发现了这两个文件
在这里插入图片描述

不用多说flag.enc 文件应该是加密后的东西 那么我们就直接先看pub.key里面的东西

1
2
3
4
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAMAzLFxkrkcYL2wch21CM2kQVFpY9+7+
/AvKr1rzQczdAgMBAAE=
-----END PUBLIC KEY-----

2
猜测应该是RSA算法的一个公钥 RSA公私钥分解

在这里插入图片描述
公钥指数及模数信息:
key长度: 256
模数:C0332C5C64AE47182F6C1C876D42336910545A58F7EEFE
FC0 BCAAF5AF341CCDD
指数:65537 (0x10001)
获取到:
e = 65537
n=869344822960481191906660620034948005889056560172030256
17216654058378322103517(模数转换为十进制)

通过n分析pq
3
通过n解析p,q
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463

还可以利用yafu分析出来pqyafu分析
4.
得到pq之后 我们就可以利用脚本来解密

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import gmpy2
import rsa

e = 65537
n = 86934482296048119190666062003494800588905656017203025617216654058378322103517
p = 285960468890451637935629440372639283459
q = 304008741604601924494328155975272418463

phin = (q-1)*(p-1)
d = gmpy2.invert(e, phin)

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

with open("C:\\Users\\10245\\Desktop\\output\\flag.enc", "rb+") as f:
f = f.read()
print(rsa.decrypt(f, key))

最后得到flag{decrypt_256}

总结

这是第一次遇见这样的题目 觉得有些特别 并且学到了很多东西
更深入地了解了RSA算法
也学习了yafu工具的使用 利用rsa模块和gmpy2模块对RSA进行解密
以下是值得一看的文章
RSA算法的深入了解
BUU-RE-RSA
python下RSA 加密/解密,签名/验证
RSA学习档案

RSA攻击方法总结

Prev:
ISCC2021 MISC wp
Next:
Python学习记录7-----EasyGui中一些好玩的地方3
catalog
catalog