题目
被潘汉年按时来到上海百老汇大厦(今上海大厦),叩开了袁殊临时下榻处的房门。袁殊说明自己当前身份和处境后,突然话锋一转,问潘汉年:“你到我这里来,恐怕已经被日本特务注意到了。我应该怎么向他们解释呢?”潘汉年说:“你就将计就计在敌伪内部站住脚,取得合法地位。同时搜集敌伪情报向我提供。”“要是岩井要求我将你介绍给他怎么办?”“那我就用胡越明的化名同岩井见面,就说我愿意和你在香港合作搞情报。”时隔不久,潘汉年接到袁殊通知,通知内容为:RSA256.tar.gz,要他在上海虹口区一家日本人开的餐馆里,和岩井会见。 请以暗号形式告知我方人员前往保护潘汉年的安全。(答案为flag{XXX}形式)
给了两个附件fllllllag.txt
,gy.key
分析
根据题目我们知道这是一道RSA
那么gy.key应该就是RSA
的公钥文件
提取一下
openssl rsa -pubin -text -modulus -in warmup -in /home/mangofeng/桌面/gy.key
RSA Public-Key: (256 bit)
Modulus:
00:a9:bd:4c:7a:77:63:37:0a:04:2f:e6:be:c7:dd:
c8:41:60:2d:b9:42:c7:a3:62:d1:b5:d3:72:a4:d0:
89:12:d9
Exponent: 65537 (0x10001)
Modulus=A9BD4C7A7763370A042FE6BEC7DDC841602DB942C7A362D1B5D372A4D08912D9
writing RSA key
-----BEGIN PUBLIC KEY-----
MDwwDQYJKoZIhvcNAQEBBQADKwAwKAIhAKm9THp3YzcKBC/mvsfdyEFgLblCx6Ni
0bXTcqTQiRLZAgMBAAE=
-----END PUBLIC KEY-----
n=0xA9BD4C7A7763370A042FE6BEC7DDC841602DB942C7A362D1B5D372A4D08912D9
print(int(n))
#76775333340223961139427050707840417811156978085146970312315886671546666259161
然后用factordb就直接可以分解出来了,做到这里,感觉几乎和昨天做的题一模一样,很简单.
直接上脚本吧
n=0xA9BD4C7A7763370A042FE6BEC7DDC841602DB942C7A362D1B5D372A4D08912D9
print(int(n))
#76775333340223961139427050707840417811156978085146970312315886671546666259161
p = 273821108020968288372911424519201044333
q = 280385007186315115828483000867559983517
assert(p*q==n)
from gmpy2 import invert
from Crypto.Util.number import long_to_bytes,bytes_to_long
flag = open(r"D:\Mango\攻防世界\RSA256\8eec4a4af1e14eb08648c8fda7660a0f\fllllllag.txt","rb")
flag = bytes_to_long(flag.read())
e=65537
d=invert(e,(p-1)*(q-1))
print(long_to_bytes((pow(flag,d,n))))
#b'\x02c\x8bL\xc2u\x86\xc6\xbe\x00flag{_2o!9_CTF_ECUN_}'
昨天的题还稍微多了一步看xz
文件
ASIS-CTF-Finals-2017-Handicraft_RSA
但这一题最后提交flag的时候很坑,需要把_
全部删除
(无语…)
总结
题太简单了 再去刷一道。