0%

Ramoor's wp

2025-07-31 20:00By
Artoria
RSA素数分解

Problem: [AFCTF 2018]可怜的RSA

思路

在线解析公钥文件得到e和n
使用factordb分解n得到p和q
直接进行解密会发现不能出flag,这是因为加密过程中使用了OAEP填充

EXP

from Crypto.Util.number import * from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP from base64 import b64decode n = 79832181757332818552764610761349592984614744432279135328398999801627880283610900361281249973175805069916210179560506497075132524902086881120372213626641879468491936860976686933630869673826972619938321951599146744807653301076026577949579618331502776303983485566046485431039541708467141408260220098592761245010678592347501894176269580510459729633673468068467144199744563731826362102608811033400887813754780282628099443490170016087838606998017490456601315802448567772411623826281747245660954245413781519794295336197555688543537992197142258053220453757666537840276416475602759374950715283890232230741542737319569819793988431443 e = 65537 p = 3133337 q = 25478326064937419292200172136399497719081842914528228316455906211693118321971399936004729134841162974144246271486439695786036588117424611881955950996219646807378822278285638261582099108339438949573034101215141156156408742843820048066830863814362379885720395082318462850002901605689761876319151147352730090957556940842144299887394678743607766937828094478336401159449035878306853716216548374273462386508307367713112073004011383418967894930554067582453248981022011922883374442736848045920676341361871231787163441467533076890081721882179369168787287724769642665399992556052144845878600126283968890273067575342061776244939 c = b64decode(open('可怜的RSA/flag.enc', 'rb').read()) d = inverse(e, (p-1)*(q-1)) pk = RSA.construct((n,e,d,p,q)) cipher = PKCS1_OAEP.new(pk) m = cipher.decrypt(c) print(m)

总结

  • 对该题的考点总结
还没有人赞赏,快来当第一个赞赏的人吧!
  
© 著作权归作者所有
加载失败
广告
×
评论区
添加新评论