roger 发表于 2020-4-22 16:56:59

xuenixiang_2018_crypto_rsass

下载压缩包,得到rsa.zip,解压,发现有密码,使用弱口令爆破,密码是password
发现里面有 根据做了那么多rsa的经验来说,两个公钥第一反应是共模攻击.先使用openssl取出两个pubkey的n和e,(也可以使用在线工具取出n和e)http://ctf.ssleye.com/pub_asys.htmln1=17362520124149736059291605717839814089431261833972408175766504894876091272021197374480215582589878198406028065354454242540322618614670160317701698407729515781811530180885334265851364490357884909336085410775168953942120359215038925025305363480538685487988827339463890539279008285241711326041868183805848503077373967082910932422798165242481154593794712639251157856102009630894845049984346776659339380886766804814959778048440996937820138560802077375885700500737699904011032451007341777160586467318264288370080315519305800247682611802774996999330812534723806925426052547128371180683265963525581842037399869323246530085399e1=2333n2=17362520124149736059291605717839814089431261833972408175766504894876091272021197374480215582589878198406028065354454242540322618614670160317701698407729515781811530180885334265851364490357884909336085410775168953942120359215038925025305363480538685487988827339463890539279008285241711326041868183805848503077373967082910932422798165242481154593794712639251157856102009630894845049984346776659339380886766804814959778048440996937820138560802077375885700500737699904011032451007341777160586467318264288370080315519305800247682611802774996999330812534723806925426052547128371180683265963525581842037399869323246530085399e2=23333 提取后发现两个公钥的n都是一样的,只有e不一样,就更加确定是共模攻击了. 接下来就是取出密文. 打开密文发现是这样的。
需要先将其base64解码,再转为10进制,才能得到密文m,可使用在线工具是解不开这个base64的。
这里我们使用Python.
先base64解码(这里如果不放到变量里面下一步会报错.):
导入一个libnum库,将hex转为dec:
得到了两个密文:M1 = 11757177168629974661319129065020939259607843855964612407515015619551332717303594939284265148421101106538576564879770344246694669035164564635188309876801896156214909946098869029964618647606449218025915092461416329529723153695631060387903820322776063152970417682658882514448192870115306139048632667164375339647480060498038060662339943872320998391726896418231367745182167642401094985859083528539732718585607300300744481583877075988159078923393794888199752412273065186387778708588318818871255432956112609603017152148063465689319082652284861285738454428311471661017770501362483439955249552527930663707069794266908382237863
M2 = 2364848878397323871885597084235162950454738150033561990125608234733186785294327511676322556989693319543787881108157790541032502889824032246849038028277601291878651138223131738210948288040172974610279550123399373111991951111719314902078119305973622147396199257818150347936553495169543808071509800280778646769553776723985138633331947024508645378935223338224527962766707863670722941767067705851822587652625805245801727869961524972624327839027498877534264770109063202217409037083612774983213841234965045214820133529399280883524064963136158251681946077429913578531311243649928666453318570284124743168193304356485791847813
完整的取出m的代码:
现在已经得到了n, e1, e2, m1, m2 可以开始写共模攻击脚本了。(脚本已打包,gm.py )
得到了:56006392793405146392044030904223674296981372972935018576761589590002462312910860136112925465677030781
先将这个十进制数字转为hex: 得到:666c61677b34623062346338612d383266332d346438302d393032622d3865376135373036663866657d
再将其转为字符:
得到flag:flag{4b0b4c8a-82f3-4d80-902b-8e7a5706f8fe}
平台不让用 - , 就更改一下flag格式(删除-).

得到最终的flag:flag{4b0b4c8a82f34d80902b8e7a5706f8fe}
**** Hidden Message *****

Abuei 发表于 2020-7-25 10:56:48

支持!写得很详细!

AidenChan 发表于 2021-11-12 15:05:42

支持,写得非常详细,又Get了一种思路
页: [1]
查看完整版本: xuenixiang_2018_crypto_rsass