Broadcast
粗心的Alice在制作密码的时候,把明文留下来,聪明的你能快速找出来吗?
解法
解压压缩包,得到一堆文件。
打开 task.py,找到密码明文。
#!/usr/bin/env python3
from Crypto.Util import number
from Crypto.PublicKey import RSA
from hashlib import sha256
import json
#from secret import msg
msg = 'Hahaha, Hastad\'s method don\'t work on this. Flag is flag{fa0f8335-ae80-448e-a329-6fb69048aae4}.'
assert len(msg) == 95
Usernames = ['Alice', 'Bob', 'Carol', 'Dan', 'Erin']
N = [ ( number.getPrime(1024) * number.getPrime(1024) ) for _ in range(4) ]
PKs = [ RSA.construct( (N[0], 3) ), RSA.construct( (N[1], 3) ), RSA.construct( (N[2], 5) ), RSA.construct( (N[3], 5) ) ]
for i in range(4):
name = Usernames[i+1]
open(name+'Public.pem', 'wb').write( PKs[i].exportKey('PEM') )
data = {'from': sha256( b'Alice' ).hexdigest(),
'to' : sha256( name.encode() ).hexdigest(),
'msg' : msg
}
data = json.dumps(data, sort_keys=True)
m = number.bytes_to_long( data.encode() )
cipher = pow(m, PKs[i].e, PKs[i].n)
open(name+'Cipher.enc', 'wb').write( number.long_to_bytes(cipher) )
Flag
flag{fa0f8335-ae80-448e-a329-6fb69048aae4}
声明
本博客上发布的所有关于网络攻防技术的文章,仅用于教育和研究目的。所有涉及到的实验操作都在虚拟机或者专门设计的靶机上进行,并且严格遵守了相关法律法规。
博主坚决反对任何形式的非法黑客行为,包括但不限于未经授权的访问、攻击或破坏他人的计算机系统。博主强烈建议每位读者在学习网络攻防技术时,必须遵守法律法规,不得用于任何非法目的。对于因使用这些技术而导致的任何后果,博主不承担任何责任。