“技能兴鲁”职业技能大赛-网络安全赛项-学生组初赛 Crypto WP

发布时间 2023-11-17 10:41:49作者: Kicky_Mu

babyRSA

查看代码
from gmpy2 import *
from Crypto.Util.number import *
 
flag  = 'flag{I\'m not gonna tell you the FLAG}' # 这个肯定不是FLAG了,不要交这个咯

p = getPrime(2048)
q = getPrime(2048)
m1 = bytes_to_long(bytes(flag.encode()))


e1 = 3247473589
e2 = 3698409173

n = p*q

flag1 = pow(m1,e1,n)
flag2 = pow(m1,e2,n)
print('flag1= '+str(flag1))
print('flag2= '+str(flag2))
print('n= '+str(n))


# flag1= 295658788074157816670393593671184451782123605135184996662528766686642109492132533952160456440919197939935742027629210419312032730004032666912404179229952394343569590488768472800784830058534578639706805456277578757250365834591813481786084959844340418320620440636997732915872346619679993987903742079972676425404864295283955565746004124045155664762158516005326368384488346997494926539295740248007606864906884407198601326915643000764477435205579583836917598642053869541648731754384026407310786288997756775232852732033054591953078116290088267188296560877481534143707414153749140670404213262630122369941889862912426176115220410931992046973925991075473656781794097329513119548617920256625579072719981729556158392454956362838720993254919638177786730004086883044525967823454986241038123671907279715773848673713008902432841449556980494600938989397567019338970200872333713986608537678650318511128703055185979834233315117153115613952940778789222515375743186066883492596068186378372611075958909412662251913621375996518671118244409393829141365207153662416265238312206577474940661548038715230313608405518108581922154335405303862701783678336161505643508831482409054761542959278392940037561736468155509922530420964726953308604138731805543997557197893
# flag2= 219454357017359138238563345020257296433275019950745269658921329153689267055871241202626317639487122341365759606018366576305678949982408366815977617307888894995289951707241009621444691307275542686770303994110416384086739599181934011812163156338859395115724413628620575935425221522079154607411877822646179457455118804970038865452163833416447505142114976758532806787419762250921421272492466133659234602794242531776209324085944417173098820895755851386042954303555790085402616519592065446023510096773546730662074307900123349548340507067971393642039476326402523930789953483843698593104578179169624886357604650615249286150367204109726460230037005175927865466199600272190112483494387929732049738312695796015009178606906549093365261114132002222704510637261038978031857378729856467918978246977163353146981239215886053379980533235786905270211605457443266127512667882149285155542735532327780898540341696557860555884277608448996773250847560675650046440569736010800155992053362696097992699863059686881689842065077997427372972290872427656847223849769329713841670853267584161386494525686204330028142217737052411422895042170169703550774908415280261731967511925122636118468176645781785352430657090024109246103061415446942211482659025722233229083093876
# n= 549785700554963543393222974982211136067042846536450239199968863551137077564447156832697813202963334596948298760762991663065504535035143397250208506445202607659676332816610122258862787906629525548439909792727593939957178783466989816894454522630301104349317697612174888605090061231211194974337772507249418567229560145454791075929946332668360553910328900103264562348881791004831033587660163923517440406942993348972589262051083908075790422096042338651001937740085414301019827335549437397656318095919875053213333008551761167437683250592542156348138055482054331330609375930693247365749085041596578748797801601289693449629548744535914348450016287545136436964138806081283470239420969311905998245715160353982174880912315601876305613349276824998688275587308133069178764001924866079232824850209407236694426779262951463035278887804883917516580169051530590466082511045503107508117656821592538792566264160105940730326929474477787053681516844548383814388361089499629312831727731267796167205124844987064389097138747938870221504684958713047985374714612321540288239995935347905120710583169131356970267386562665138437631517802641426575996558648777831102462652517305151412695166331935115971277205305816897886952646432233312318756155702046584205507027737

考点:共模攻击

EXP

e1 = 3247473589
e2 = 3698409173
c1 = 295658788074157816670393593671184451782123605135184996662528766686642109492132533952160456440919197939935742027629210419312032730004032666912404179229952394343569590488768472800784830058534578639706805456277578757250365834591813481786084959844340418320620440636997732915872346619679993987903742079972676425404864295283955565746004124045155664762158516005326368384488346997494926539295740248007606864906884407198601326915643000764477435205579583836917598642053869541648731754384026407310786288997756775232852732033054591953078116290088267188296560877481534143707414153749140670404213262630122369941889862912426176115220410931992046973925991075473656781794097329513119548617920256625579072719981729556158392454956362838720993254919638177786730004086883044525967823454986241038123671907279715773848673713008902432841449556980494600938989397567019338970200872333713986608537678650318511128703055185979834233315117153115613952940778789222515375743186066883492596068186378372611075958909412662251913621375996518671118244409393829141365207153662416265238312206577474940661548038715230313608405518108581922154335405303862701783678336161505643508831482409054761542959278392940037561736468155509922530420964726953308604138731805543997557197893
c2 = 219454357017359138238563345020257296433275019950745269658921329153689267055871241202626317639487122341365759606018366576305678949982408366815977617307888894995289951707241009621444691307275542686770303994110416384086739599181934011812163156338859395115724413628620575935425221522079154607411877822646179457455118804970038865452163833416447505142114976758532806787419762250921421272492466133659234602794242531776209324085944417173098820895755851386042954303555790085402616519592065446023510096773546730662074307900123349548340507067971393642039476326402523930789953483843698593104578179169624886357604650615249286150367204109726460230037005175927865466199600272190112483494387929732049738312695796015009178606906549093365261114132002222704510637261038978031857378729856467918978246977163353146981239215886053379980533235786905270211605457443266127512667882149285155542735532327780898540341696557860555884277608448996773250847560675650046440569736010800155992053362696097992699863059686881689842065077997427372972290872427656847223849769329713841670853267584161386494525686204330028142217737052411422895042170169703550774908415280261731967511925122636118468176645781785352430657090024109246103061415446942211482659025722233229083093876
n = 549785700554963543393222974982211136067042846536450239199968863551137077564447156832697813202963334596948298760762991663065504535035143397250208506445202607659676332816610122258862787906629525548439909792727593939957178783466989816894454522630301104349317697612174888605090061231211194974337772507249418567229560145454791075929946332668360553910328900103264562348881791004831033587660163923517440406942993348972589262051083908075790422096042338651001937740085414301019827335549437397656318095919875053213333008551761167437683250592542156348138055482054331330609375930693247365749085041596578748797801601289693449629548744535914348450016287545136436964138806081283470239420969311905998245715160353982174880912315601876305613349276824998688275587308133069178764001924866079232824850209407236694426779262951463035278887804883917516580169051530590466082511045503107508117656821592538792566264160105940730326929474477787053681516844548383814388361089499629312831727731267796167205124844987064389097138747938870221504684958713047985374714612321540288239995935347905120710583169131356970267386562665138437631517802641426575996558648777831102462652517305151412695166331935115971277205305816897886952646432233312318756155702046584205507027737
# 已知两者n相同,e不同,共模攻击

import gmpy2
from Crypto.Util.number import isPrime, sieve_base as primes, long_to_bytes


def egcd(a, b):
    if b == 0:
        return a, 0;
    else:
        x, y = egcd(b, a % b)
        return y, x - (a // b) * y  # 扩展欧几里得算法


s = egcd(e1, e2)
s1 = s[0]
s2 = s[1]
print(s[0], s[1])
m = gmpy2.powmod(c1, s1, n) * gmpy2.powmod(c2, s2, n) % n

print(long_to_bytes(m))
#flag{baby_r3a_sierting_2023}

EasyRSA

关注微信公众号“中学生CTF”,回复“开始游戏”
按要求回复相关内容分别获取公钥  密文 提示 私钥

公钥

-----BEGIN RSA PUBLIC KEY-----MIGJAoGBAKOSX8AR8/CsqasPfC7VL5aJzic8W9KFI1920SHhEhmcWd7yp5Dl9UfXgzLHIIZJExd7D1CwIxAMHANHV6qF/7FEedwEMHusBxbAWsjXQUGFeEMmzo+SUVbbRnDSw/jZwCNoofQfukVO7+5CBzV5S/N5WDTk+8bvwfrDDA9AHdW5AgMBAAE=-----END RSA PUBLIC KEY-----

密文

QhS9n7TkavmU8E4CFa872ZzqIq/NG/agtCkxQBzB0/E1PDZRv6otOYxBLsxwd/7h0fPkYYMCpPt4nXqYBGQ/n8/F3q3spV94+IFs7+CjyybUvAQg8MXLgSTzVt+ua0Ub0/et5/7Q1xAcgzT3/jWHwjklEAykdpSYMAqv5PQrhT4=

提示

回答个问题吧,回答正确了就给你提示。
求小于100的所有正整数中,与10互质的数有多少个?

私钥

-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCjkl/AEfPwrKmrD3wu1S+Wic4nPFvShSNfdtEh4RIZnFne8qeQ5fVH14MyxyCGSRMXew9QsCMQDBwDR1eqhf+xRHncBDB7rAcWwFrI10FBhXhDJs6PklFW20Zw0sP42cAjaKH0H7pFTu/uQgc1eUvzeVg05PvG78H6wwwPQB3VuQIDAQABAoGADZ61jFeyWTr3UcATVg74TG+jE89J0gi1/k/1b/2+tRU4woCwBTewqc+/I+5Cvgu9pDnh95UDBmYLuxYorZFEzgrSa3rZ5y7OFQZl9nXapt2LttBXoQaWf3jtyslsGmfNi/VuNgKaiiVwINhVG8NeIFzzAB3AqNDitHlKDalkKZECQQDN1lZKV8bximZNDVL9CajmdE6f3DobYgGNvOXsOS4Qkzx+/3LvAbqSiiiel5V08pBIG18DRIpxBRN57z8fbJxlAkEAy28zeeMeb3ZFL7/iyosQ8RWrz3/BxlUtREh9GSplRa7EJtjm852IQCk98lg2HR++tuugmdtVAS0lxd/UVDXMxQJAFaVwtai9dzFCyN+Z1pppdLLOgek7Ax4vY6R12X255mxVdFWQ1Kmt4TM+Sk9OnFnV6n9WYpWWqYQLJEuQq9FUMQJAe6Vt+yJhCEwxRxFw7bxSosWSNL8o7rwslDke1+HdxdmwXRAuZ1mTS7QFc7vLwC3gQ9u5NGqMIvfm4nrl2f0NJQJAJrOQDrZX/KpYAnFmW8IGXxkcJrtdB2Xi9VN1WdC9r4QGz28X5ScH0o9mcYVxaDxzNU7A9DPiRL28fAltiGdJLg==
-----END RSA PRIVATE KEY-----

EXP

from Crypto.PublicKey.RSA import *
from Crypto.Util.number import *
import base64

public_key = import_key(open("public.key",'r').read())
private_key = import_key(open("private.key",'r').read())

n = public_key.n
e = public_key.e
d= private_key.d
print(n)
print(e)
print(d)
#114864005600760124838174934732628945771197525122577449698180987907555509977220273809012289162440034753668860191597948487281937550290955666534978238528737698867225755114183434424049013863339206741345416420486014167422554873961537017311941003144357959859755664375427985133288233616542634414959239033111688631737
#65537
#9564259556637441464240362220363400172016187719820943024596390603957007765776447414068084623333922359137143446687367515984825872590105514019277297521267703827548523495448118280175047000329349517690519761635586269753143571880892429512325066602573013334276333137196243465703673185061627918861278124492072429969

c = "QhS9n7TkavmU8E4CFa872ZzqIq/NG/agtCkxQBzB0/E1PDZRv6otOYxBLsxwd/7h0fPkYYMCpPt4nXqYBGQ/n8/F3q3spV94+IFs7+CjyybUvAQg8MXLgSTzVt+ua0Ub0/et5/7Q1xAcgzT3/jWHwjklEAykdpSYMAqv5PQrhT4="
c = bytes_to_long(base64.b64decode(c))

m = pow(c,d,n)
print(long_to_bytes(m))
# flag{c2915ff0a0ca8ffd50af20cd27682ff2}

ezPython

查看代码
 import time
from tqdm import tqdm
from qsnctf import *

flag = "flag{}"
flag = caesar_encrypt(flag, 8)
for i in tqdm(range(21)):
    flag = string_reverse(flag)
flag = atbash_cipher(flag)
for i in tqdm(range(20)):
    flag = base64_encode(flag)
flag = base100_encode(flag)
print(flag)

# flag = "emoji emoji"
""" ?????????????????????????????????????????????????? ??????????????????????????? 
??????????????????????????????????????????????????   ???????????????????????????  
??????????????????????????????????????????????????  ??????????????????????????? 
?????????????????????????????????????????????????????????????????????????????  
??????????????????????????????????????????????????  ??????????????????????????? 
??????????????????????????????????????????????????   ???????????????????????????
??????????????????????????????????????????????????  ??????????????????????????? 
??????????????????????????????????????????????????   ???????????????????????????  
??????????????????????????????????????????????????    ???????????????????????????
?????????????????????????????????????????????????????????????????????????????  
????????????????????????????????????????????????????????????????????????????? 
?????????????????????????????????????????????????? ??????????????????????????? 
?????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????  ???????????????????????????  
?????????????????????????????????????????????????? ???????????????????????????  
??????????????????????????????????????????????????  ??????????????????????????? 
?????????????????????????????????????????????????? ???????????????????????????
?????????????????????????????????????????????????? ???????????????????????????
?????????????????????????????????????????????????? ???????????????????????????  
??????????????????????????????????????????????????   ???????????????????????????
?????????????????????????????????????????????????? ??????????????????????????? 
??????????????????????????????????????????????????   ???????????????????????????
?????????????????????????????????????????????????? ???????????????????????????  
??????????????????????????????????????????????????  ???????????????????????????
??????????????????????????????????????????????????  ???????????????????????????
??????????????????????????????????????????????????    ???????????????????????????
?????????????????????????????????????????????????? ??????????????????????????? 
??????????????????????????????????????????????????   ???????????????????????????  
??????????????????????????????????????????????????    ???????????????????????????
?????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????? ???????????????????????????  
??????????????????????????????????????????????????    ???????????????????????????
??????????????????????????????????????????????????????????????????????????? """

按加密顺序反解即可,需要注意的是base100表情符号之间的空格要去掉

EXP

# -*- coding: utf-8 -*-
from tqdm import tqdm
from qsnctf import *

flag = "????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????"


#Base100解码
flag = base100_decode(flag)

#20次Base64解码
for i in tqdm(range(20)):
    flag = base64_decode(flag)

#阿特巴什密码解密
flag = atbash_cipher(flag)

#21次字符串反转
for i in tqdm(range(21)):
    flag = string_reverse(flag)

#凯撒密码解密,偏移量为8
flag = caesar_decrypt(flag, 8)

print(flag)
#flag{dea8a56c1dcf73ae7fa75c52af41bb70}

N and n

查看代码
 from Crypto.Util.number import *
import gmpy2

flag = b'xxx'
part1 = flag[:len(flag)//2]
part2 = flag[len(flag)//2:]
P = getPrime(1024)
Q = getPrime(1024)
N = P * Q
E = 65537
lcm = gmpy2.lcm(P-1, Q-1)
e1 = gmpy2.invert(getPrime(729), lcm)
e2 = gmpy2.invert(getPrime(729), lcm)
m = bytes_to_long(part1)
C = pow(m, E, N)

print(f'e1 = {e1}')
print(f'e2 = {e2}')
print(f'C = {C}')
print(f'N = {N}')

p = getPrime(2048)
q = getPrime(2048)
n = p * q
d = getPrime(2048)
e = gmpy2.invert(d, (p * p - 1) * (q * q - 1))
c = pow(bytes_to_long(part2),e,n)
print(f"e = {e}")
print(f"c = {c}")
print(f"n = {n}")

'''
e1 = 6782830682230611892084175893995043755623450171130631139250814602452836410932481493209925839414493072446570097572921721560056963314211148834567825979410196067533609339954325440284367117897127238641398908902696308109917225523901632458380925510517775783868643648356134858145600669382521666362737188742144325523512588157232342293570634035652649445253400156551025152962072745747445128287133526360740783991628418816716755623721512647940638074583741576763841775870753051303810250872868143593623277717239627310768357298460604761267661552551655957927428276127907943998267780474909778188402303623762690857740249960456774790057
e2 = 2103214336317997856589077219522416472126303166911734317206694246467268219995764970161228565888078478437417364428737223600541742231616538055544730871259451853602822824030730446037149215814151937007759784461240091013861699020393748068407644808847481103765151973619978574286131278626194949671002389644717742113710424421427515044238228547483630350104322094022063329900043953074144455813752895850411680204776639620697612634932069006593739621658746752068562661835048227282976669707149561909183948452229624114003615085530216638127958237779537381755038387944189598715581703073251023985468629411284347709891083474234876217463
C = 29989464921369023556682797868010016761018920329572945071155900694105273355964587007056986267712321773704235790532528354216923933793097271606770062213705165659395515866861504389622774632727796989109881498337975935953211195543145705126576701050921790651344138412223208506167505671199878150807990122800243557999848684393902248880601469831139694292727905631653021260642914026110749040895120735190773734221354234102719240917477878117340342682396785253367077886829396722805689079044627803038192815819268299096723702651032328877700961625008336392915779555073331746659247259680693531225729446517842360145219661338579799576558
N = 30344300732028581232055573105267124359676188143150900167627553124815567866404397432618233963414140210742264633672189858251955823399837706447362136668421589160230997509307799044768633993451916070777658566053448924598053107182517067411689272508341060006607406671139418906121846321917188581384347220115835524818729646138538805397174148412625308825976478229354595231559952075478573137303317127264083147914620219710706789060326244876382524823370726774783578934340406201760636614424268881611139037722190200706902280712973313045676140513487706619995064309929439932176799828094975671497855556312196872661906398504926989682483
e = 299742004862647001956313120212789574846580220823019898357792625504178411714797094742432220851214080697312929100795881061754804067011066316407767459562109544884325934987539239861070418621447111093384013351477684377198341027898504996993593283522838272857329217507275894840277894087904595190160194511978382517367710210686608995602714780005450539330715470056742064042206153672425362533446859048923068749681843218896929215564488280011450180418975217192154388297131854037285601204641315928728064065304223386593308998171792136113396426653699567707675838292526904189649118232094386995015436190372800414449432499422121184507296113393960935243786261895033570509606345209363596478499929774934469773180406690091187100398142619942900506959798908476235527337658505697642546150130061396487901956233214920407126566742159502020936536102917887602433208819189094143202883705424044449702123000696909084455782204447010924860970874738632469322937536658587288795299893333604630770500062873462999648761323377136099352157869839874240047601711751117191788451204663149112399751636505123892586635002009146630554168009325095964088948381302377160571209753641851547586086873112029280568971051001188617418651169235174090191703598083547611960978741863850616433263009976666609668535251515828817752896001889209178886059547569894616006038953764625172390993903264458258177870227410638829192618453676849376407446542593464461363622931772907815255954081688800997429274829215857042728871715036568727537618708814278187475175445085765782432533976143942716189575103855683395694832855726053336953735763741373335952612979908944501059234949083627802270461031980382156408726205210854884917749230264947939710324129260944905762085727485969049441097952735976295710871516976985865549318708942751416482271454250791949807080875692537392184605862254771134466225346692451821722506385446147370548767344376192640024822285511915833028610576811425847988096411847042081445063639035379481001149253846725342523772332728219803605916063700830046907196875382999881830571672177374985624241574089434376468760007094988366233326668044929011742179533386718697976595104507037505540811648287104846603486989691127711050916093950525301636944418121491192837338728578578330392782556349149954539883490468195279215271284541239787166817777355721489582824730761639598958998623312024938112967900492630170624380269694407585239618920757230271109189336570404961491906293460873344066516775823246298215432838113623662329545676928716855813667142568884689
c = 126695602720287888676696559539723856104067880497647910249667466893383255209045508458853397118652154927531942978073740450713169724992849585395980530995616033417536181504956346153802206636341529342379554700812003676995067291620365422490729240182771628157839856497982161939850099419818846168892124000934230938596843008515097940267452003035829575993632190810983916075770086955915299960458326215544353491716475416507979327966205005560687748553292934357925494272906793366830635665955254360832729599330402509893842443992566513483714382646025195961137009000018753983651046339079082240599803110561923185022718826369932953293392042843316783280269536972413964168113045731922548355553310815705462142367484991077862467325614074446691792390594414839402047022568848720013674657754350468599049824440676054373139693146540866117364152197587588957272239652412704757261350214302868926397274366692066128442089847092896219437033747372413635564005759528955854210845606433051956506324333881982679048116436237358902439216062577682934439187221817783476381404025207390125422670463968924533866239220945599943424853960721952593755424063509284740828904466959593982825341965617094231864134504669071102977784540127151904413578177761848793566690223185451889990820402
n = 859565655364744504691128999173163629390646814643060535547080894876016015739755448061478525059968284125179725990710325321893406147631932546407240817403077573269303336968136350915335129516055615375854960217610941327794523495841406247731161064324407758961532167363890807327195033732279449216861117755979815380858624730326007741056071800878183909447988835586091073740707308565512311924433072879024119766899755012553349626636468493851062542303298661624120541942178182347374045947609043216734445638877776294108043514178865246029735264509336247861885730840387655988039742469139971460741869400259399992998520698159168380993790528772660805213735331660411376032794407414712321416964946987284847501890015182686215583876281440889392100599628100990699849428461136706052752442644724202914118196513060602262180109347482361752489574671269844731950856639343609901971646601035980653387918471588092168412636621698349007474550692258931250093394500150330222620648922922629823659927849987286747846800518750174996915977804476772593787465161038218032247260333768345962898351749721089493153901951125423616164946743757205492717572128978767398876091279363699959624457451368185973411191832200498560071743826896179527897577648387335153453732357692561765479438357
'''

分析:flag分为了两段

part1:扩展维纳攻击  参考:https://blog.csdn.net/jcbx_/article/details/109306542

part2:连分数  参考:https://nitaj.users.lmno.cnrs.fr/Generalized_attack_on_RSA_schemesfinal.pdf

直接套脚本秒

part1:

#sage#
import gmpy2

e1 = 6782830682230611892084175893995043755623450171130631139250814602452836410932481493209925839414493072446570097572921721560056963314211148834567825979410196067533609339954325440284367117897127238641398908902696308109917225523901632458380925510517775783868643648356134858145600669382521666362737188742144325523512588157232342293570634035652649445253400156551025152962072745747445128287133526360740783991628418816716755623721512647940638074583741576763841775870753051303810250872868143593623277717239627310768357298460604761267661552551655957927428276127907943998267780474909778188402303623762690857740249960456774790057
e2 = 2103214336317997856589077219522416472126303166911734317206694246467268219995764970161228565888078478437417364428737223600541742231616538055544730871259451853602822824030730446037149215814151937007759784461240091013861699020393748068407644808847481103765151973619978574286131278626194949671002389644717742113710424421427515044238228547483630350104322094022063329900043953074144455813752895850411680204776639620697612634932069006593739621658746752068562661835048227282976669707149561909183948452229624114003615085530216638127958237779537381755038387944189598715581703073251023985468629411284347709891083474234876217463
C = 29989464921369023556682797868010016761018920329572945071155900694105273355964587007056986267712321773704235790532528354216923933793097271606770062213705165659395515866861504389622774632727796989109881498337975935953211195543145705126576701050921790651344138412223208506167505671199878150807990122800243557999848684393902248880601469831139694292727905631653021260642914026110749040895120735190773734221354234102719240917477878117340342682396785253367077886829396722805689079044627803038192815819268299096723702651032328877700961625008336392915779555073331746659247259680693531225729446517842360145219661338579799576558
N = 30344300732028581232055573105267124359676188143150900167627553124815567866404397432618233963414140210742264633672189858251955823399837706447362136668421589160230997509307799044768633993451916070777658566053448924598053107182517067411689272508341060006607406671139418906121846321917188581384347220115835524818729646138538805397174148412625308825976478229354595231559952075478573137303317127264083147914620219710706789060326244876382524823370726774783578934340406201760636614424268881611139037722190200706902280712973313045676140513487706619995064309929439932176799828094975671497855556312196872661906398504926989682483

M1 = N^(0.5)
alpha = 0.356           # 729 / 2048
M2 = N^(1 + alpha)
D = diagonal_matrix(ZZ,[N,M1,M2,1])
M = matrix(ZZ,[[1,-N,0,N**2],[0,e1,-e1,-e1*N],[0,0,e2,-e2*N],[0,0,0,e1*e2]])*D
L = M.LLL()
t = vector(ZZ,L[0])
x = t * M^(-1)
phi = int(x[1]/x[0]*e1)
d = gmpy2.invert(65537,phi)
m = pow(C,d,N)
print(m)
#2284117282070499256116682860908548989816223287
from Crypto.Util.number import *
m = 2284117282070499256116682860908548989816223287
flag1 = long_to_bytes(m)
print(flag1)
#flag{238a162f235967

part2:

#sage#
e = 299742004862647001956313120212789574846580220823019898357792625504178411714797094742432220851214080697312929100795881061754804067011066316407767459562109544884325934987539239861070418621447111093384013351477684377198341027898504996993593283522838272857329217507275894840277894087904595190160194511978382517367710210686608995602714780005450539330715470056742064042206153672425362533446859048923068749681843218896929215564488280011450180418975217192154388297131854037285601204641315928728064065304223386593308998171792136113396426653699567707675838292526904189649118232094386995015436190372800414449432499422121184507296113393960935243786261895033570509606345209363596478499929774934469773180406690091187100398142619942900506959798908476235527337658505697642546150130061396487901956233214920407126566742159502020936536102917887602433208819189094143202883705424044449702123000696909084455782204447010924860970874738632469322937536658587288795299893333604630770500062873462999648761323377136099352157869839874240047601711751117191788451204663149112399751636505123892586635002009146630554168009325095964088948381302377160571209753641851547586086873112029280568971051001188617418651169235174090191703598083547611960978741863850616433263009976666609668535251515828817752896001889209178886059547569894616006038953764625172390993903264458258177870227410638829192618453676849376407446542593464461363622931772907815255954081688800997429274829215857042728871715036568727537618708814278187475175445085765782432533976143942716189575103855683395694832855726053336953735763741373335952612979908944501059234949083627802270461031980382156408726205210854884917749230264947939710324129260944905762085727485969049441097952735976295710871516976985865549318708942751416482271454250791949807080875692537392184605862254771134466225346692451821722506385446147370548767344376192640024822285511915833028610576811425847988096411847042081445063639035379481001149253846725342523772332728219803605916063700830046907196875382999881830571672177374985624241574089434376468760007094988366233326668044929011742179533386718697976595104507037505540811648287104846603486989691127711050916093950525301636944418121491192837338728578578330392782556349149954539883490468195279215271284541239787166817777355721489582824730761639598958998623312024938112967900492630170624380269694407585239618920757230271109189336570404961491906293460873344066516775823246298215432838113623662329545676928716855813667142568884689
c = 126695602720287888676696559539723856104067880497647910249667466893383255209045508458853397118652154927531942978073740450713169724992849585395980530995616033417536181504956346153802206636341529342379554700812003676995067291620365422490729240182771628157839856497982161939850099419818846168892124000934230938596843008515097940267452003035829575993632190810983916075770086955915299960458326215544353491716475416507979327966205005560687748553292934357925494272906793366830635665955254360832729599330402509893842443992566513483714382646025195961137009000018753983651046339079082240599803110561923185022718826369932953293392042843316783280269536972413964168113045731922548355553310815705462142367484991077862467325614074446691792390594414839402047022568848720013674657754350468599049824440676054373139693146540866117364152197587588957272239652412704757261350214302868926397274366692066128442089847092896219437033747372413635564005759528955854210845606433051956506324333881982679048116436237358902439216062577682934439187221817783476381404025207390125422670463968924533866239220945599943424853960721952593755424063509284740828904466959593982825341965617094231864134504669071102977784540127151904413578177761848793566690223185451889990820402
n = 859565655364744504691128999173163629390646814643060535547080894876016015739755448061478525059968284125179725990710325321893406147631932546407240817403077573269303336968136350915335129516055615375854960217610941327794523495841406247731161064324407758961532167363890807327195033732279449216861117755979815380858624730326007741056071800878183909447988835586091073740707308565512311924433072879024119766899755012553349626636468493851062542303298661624120541942178182347374045947609043216734445638877776294108043514178865246029735264509336247861885730840387655988039742469139971460741869400259399992998520698159168380993790528772660805213735331660411376032794407414712321416964946987284847501890015182686215583876281440889392100599628100990699849428461136706052752442644724202914118196513060602262180109347482361752489574671269844731950856639343609901971646601035980653387918471588092168412636621698349007474550692258931250093394500150330222620648922922629823659927849987286747846800518750174996915977804476772593787465161038218032247260333768345962898351749721089493153901951125423616164946743757205492717572128978767398876091279363699959624457451368185973411191832200498560071743826896179527897577648387335153453732357692561765479438357

def flag2(n,e,c):
    cf = continued_fraction(ZZ(e) / ZZ(int(n^2 -9/4*n +1)))

    i = 1
    while 1:
        k = int(cf.numerator(i))       #取连分数的分子
        d = int(cf.denominator(i))     #取连分数的分母
        #计算kphi
        if (e * d - 1) % k == 0 and int(d).bit_length() == 2048:
            m2 = pow(c,d,n)
            return m2
        else:
            i += 1
flag2 = flag2(n,e,c)
print(flag2)
from Crypto.Util.number import *
m2 = 2212338054092385759385936055269101017281094525
flag2 = long_to_bytes(m2)
print(flag2)
#c4e64d3aa155ac788c}