0%

BUUCTF 每日打卡 2021-4-12

BUUCTF 每日打卡 2021-4-12

引言

周一整天都想睡 上周末的任务还没完成 哎。。。

RSA5

附件给了 e = 65537 和一串的 n 和 c 猜想是广播攻击 但是这个 e..... 是不是有点大? 参考 ctfwiki 的广播攻击 在这里插入图片描述 其中有一个条件:n 要互素 我寻思出题人不会蠢到给个漏洞吧 然后忽略了这个条件,直接莽 用 sagemath 封装好的 CRT(中国剩余定理),算出 \(m^{e}\)在这里插入图片描述 然后一开根: 在这里插入图片描述 结果: 在这里插入图片描述 我人傻了 开出来不是整数(我囸) 看了别人的解法,才知道其中有两个 n 是不互素的(啊这) 这波是聪明反被聪明误 代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
from Crypto.Util.number import *
import gmpy2

e = 65537
list_n = []
list_c = []
with open('1.txt', 'r') as f:
l = f.readlines()
for line in l:
if line[0] == 'n':
list_n.append(int(line.replace('\n', '').replace(' ', '')[2:]))
elif line[0] == 'c':
list_c.append(int(line.replace('\n', '').replace(' ', '')[2:]))
print(list_n)
print(list_c)
for i in range(len(list_n)):
for j in range(i+1, len(list_n)):
if gmpy2.gcd(list_n[i], list_n[j]) != 1:
p = gmpy2.gcd(list_n[i], list_n[j])
k_p, k_q = i, j
print(i, j)

n = list_n[k_p]
q = n//p
print(p, q)
c = list_c[k_p]
phi = (p-1)*(q-1)
d = inverse(e, phi)
m = pow(c, d, n)
print(long_to_bytes(m))
结果:flag{abdcbe5fd94e23b3de429223ab9c2fdf}

传感器

之前吐槽过 见我 2021-4-1的博客

结语

又还有一堆事没干 感觉开始滚雪球了啊 希望继续坚持

欢迎关注我的其它发布渠道

-------- 本文结束 感谢阅读 --------