'2019/11/11'에 해당되는 글 3건

문제에서 제공해주는 파일은 아래와 같다.


captured_a4ff19205b4a6b0a221111296439b9c7


{N : e : c}

{0xfd2066554e7f2005082570ddf50e535f956679bf5611a11eb1734268ffe32eb0f2fc0f105dd117d9d739767f300918a67dd97f52a3985483aca8aa54998a5c475842a16f2a022a3f5c389a70faeaf0500fa2d906537802ee2088a83f068aba828cc24cc83acc74f04b59a0764de7b64c82f469db4fecd71876eb6021090c7981L : 0xa23ac312c144ce829c251457b81d60171161655744b2755af9b2bd6b70923456a02116b54136e848eb19756c89c4c46f229926a48d5ac030415ef40f3ea185446fa15b5b5f11f2ec2f0f971394e285054182d77490dc2e7352d7e9f72ce25793a154939721b6a2fa176087125ee4f0c3fb6ec7a9fdb15510c97bd3783e998719L : 0x593c561db9a04917e6992328d1ecadf22aefe0741e5d9abbbc12d5b6f9485a1f3f1bb7c010b19907fe7bdecb7dbc2d6f5e9b350270002e23bd7ae2b298e06ada5f4caa1f5233f33969075c5c2798a98dd2fd57646ad906797b9e1ce77194791d3d0b097de31f135ba2dc7323deb5c1adabcf625d97a7bd84cdf96417f05269f4L}

{0xcb26469a1b726d964cc0d3c8f2e486860b7252643b3c974857abc04cc93eca7167138e0cc5cbaa39b4c47daa6ccc5d546d6bfd4171f3ed3f1b0bfe30c22010e3376ec551ba46380cfa25495c7b1299ae7b02409523845fc1b3ccba46a19a4f58dd92c330a8a1ccb5f9000fd8d2b526be54528a237bfc34e24e3c59b2dffba473L : 0xb2a434913ffa775d4204165e30f875eecbdd1be46ef437ee4b93822ccd983a53a5860fd81b5c3f7aabe4c4a04c0ff9440729b50e5386db77c396b9f59a1eb8fb6986c1c4a4c3b2da75ae9c84fc589330f597442f526e2303a83ce75b58821a41238c0f2c30065cc44341d742b30605cc651ee57ed42255a34b173bdba31ee567L : 0x99f2c46f900977a329de45c070b8323ba4927a9d09ae28eb72b8d6741eb7929e88f3c619df2f73e7bcb540ca1e342b6644883834ade9e49cfa534a60e60259222ddf4b7465aa5519654aa576c7b27dbfd5d9b7f8ad68ce99373b4cde87fdde3f2209067d8774c8512e75e32a359a555c62e4ac95f9063a14cb15516a5b9121a3L}

..생략..


위와 같은 형태로 {N : e : c}에 해당하는 값들이 여러개 존재하는데 e 값을 상당히 크게 잡아서 winner Attack 공격 가능성이 존재한다.


위의 모든 N:e:c 쌍 중 winner Attack이 먹히는 값이 있는지 브포돌려서 개인키 구하고 복호화하면 된다.


https://github.com/pablocelayes/rsa-wiener-attack


위 소스를 다운받아서 RSAwienerHacker.py 파일을 조금 수정해서 돌려줬다.


solve.py


Created on Dec 14, 2011

  

@author: pablocelayes

'''


import ContinuedFractions, Arithmetic, RSAvulnerableKeyGenerator


def hack_RSA(e,n):

    '''

    Finds d knowing (e,n)

    applying the Wiener continued fraction attack

    '''

    frac = ContinuedFractions.rational_to_contfrac(e, n)

    convergents = ContinuedFractions.convergents_from_contfrac(frac)


    for (k,d) in convergents:


        #check if d is actually the key

        if k!=0 and (e*d-1)%k == 0:

            phi = (e*d-1)//k

            s = n - phi + 1

            # check if the equation x^2 - s*x + n = 0

            # has integer roots

            discr = s*s - 4*n

            if(discr>=0):

                t = Arithmetic.is_perfect_square(discr)

                if t!=-1 and (s+t)%2==0:

                    print("Hacked!")

                    return d




if __name__ == "__main__":

    f = open("./capture","r")

    capture_list = f.read().split("\n")

    capture_list.pop(0)

    for i in capture_list:

        tmp = i.replace("{","").replace("}","").replace(" ","").replace("L","").split(":")

        n = int(tmp[0][2:],16)

        e = int(tmp[1][2:],16)

        c = int(tmp[2][2:],16)

        d = hack_RSA(e,n)

        if d!=None:

            print "d = " + str(d)

            print("%x"%pow(c,d,n)).decode("hex")


'Crypto & Network & Etc > Crypto Practice' 카테고리의 다른 글

Seccon CTF 2017 Ps and Qs  (0) 2019.11.12
TokyoWesterns CTF 2018 Revolutional Secure Angou  (0) 2019.11.12
TokyoWesterns CTF 2019 baby_rsa  (0) 2019.11.11
KCTF Operation 1  (0) 2019.11.08
HackZone VII 2019 CTF Legacy  (0) 2019.11.08
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

문제는 다음과 같다.


source.py


flag = 'TWCTF{CENSORED}'

# Public Parameters
N = 36239973541558932215768154398027510542999295460598793991863043974317503405132258743580804101986195705838099875086956063357178601077684772324064096356684008573295186622116931603804539480260180369510754948354952843990891989516977978839158915835381010468654190434058825525303974958222956513586121683284362090515808508044283236502801777575604829177236616682941566165356433922623572630453807517714014758581695760621278985339321003215237271785789328502527807304614754314937458797885837846005142762002103727753034387997014140695908371141458803486809615038309524628617159265412467046813293232560959236865127539835290549091
e = 65537

# Encrypt the flag!
for char in flag:
    print(pow(ord(char), e, N))


enc_flag

9073209977571176486825453267118351996016396235857623493182258724402523182425555398048461088180575997426276026776186441023571190870577545894667546140441145538176352391499376279774875943812941321565506013356240326235158415041323709138860753984228634160552040417002326854872319407516200542564071756611880349380322282130265915072405694912128104078505106072784722670288292878670301302909960910520529391182927036489958388823511447221117040898358990430312656065571576446469592472217394596577973531530126373565564994195530324540432367900449603179849204693929275999798234441199340509474634967526614647348655247823230784374
35639404627961781906461142088755137025298630410895631726441472610366623418342364917283665767957562174282457589855677069495230225819581200731431201665184892116733696486682454477915290834433777530535524437371339472350901843618705506005661289326664321691979577977602624815055003117998229419500683672655441419257356643852257251251761502995787965709527112696847071565558861604427364918548619913860926470431333287513742767137365798593418198144415567391257323940575314966786015734312154108604715446101475223727342693907796501114753375280182345362719422538419079170715967729017805398797931366993519156066479380119809407749
29970742560802286128437550167617662948565107399193467157016675822924072945425459560240723871886060997775695066335935643764351669954293612699598869470877609376021471072760517084396091286414268314025266921431195032977653702514792415001248075629193225762672546597247381460826494613102523960838451955661302078496325094813575402182208938085376338620166447700573430340174738180230002573129580484509212273973043579080949823666844684955818141112680250709742302040557969338361223048029382382856263109719029545309245888995127887228177601466240736947809755549463788679785044683353591671286918635707381665684957867916158256949
9073209977571176486825453267118351996016396235857623493182258724402523182425555398048461088180575997426276026776186441023571190870577545894667546140441145538176352391499376279774875943812941321565506013356240326235158415041323709138860753984228634160552040417002326854872319407516200542564071756611880349380322282130265915072405694912128104078505106072784722670288292878670301302909960910520529391182927036489958388823511447221117040898358990430312656065571576446469592472217394596577973531530126373565564994195530324540432367900449603179849204693929275999798234441199340509474634967526614647348655247823230784374
6505165269355349459207146663366047441688194958375318364558535173856663450712228704199777355430120346472437926308005168084164236777799358193673817242751350551129761039157690169023013004512588912294543463516411036479035366287351595535944141685254682636766525957625559957518566299296096642785180632298737381753096931371353732906806665505797027298156421929506483811881951997420752668734446176972811145325901107674607822548260986050552942913613453978790269275942433813911123981987320096944112043982171977835970320689551870847467672632789230490245769533853283172375637080945198548214252880070232242439832820376020827270
21183213341593498738516444880543177493922005619583805574621036610845469192010328280773548470111009986871538885425478935646973995507100891215474272395863721865526341059719628170496111172777431901923738040338575993679287205000994133882661468882632557617292897597173414257540085862308519556541967532509933234492153275218004343688362709977324491456249463253627826867702931115952768729397718933895218798741394694581409210667757016552534836181469227211377884483066055101186770442079773603153741831446549174996578414814900577286574676828436588641203924556681193171762756103136365796626495419220299745139504044747791030657
35281408092375952281726917090787142632733066563620991872002918692378166030610011447579042180082695834448370457076107980397712190086934090736939295047739108983311280069632388023724537185206135081640708416065752200674950158226541934310820828884784320648574385481184792432883840428832675118865022388604992184306433162856083501724629453140816907588357066877849638057796037811471382243339150192266945556056920084520661254644740550996346916309525106638714564549966779826545146543226245351244347767520267740976227220806375754780018194765576617703742034900612204265907753037602258832036675965585326987121730208904172636707
9101532610704319801229002627568606593118376880231363961793878928022682616808257607109430196313625958134631704058601693308284947736738665470244813934118299151452767791230856972131812540721505259138770769757869844334681886944409230647759469220912955547226599154678486454341028553818030097462570293871670067871193147146142698847930591071625262873141933952857468878191419947394293498446678303058453036476382121602756768748298356860355063204128785975756727271149328857774395653350883235189149487626224203793753774251337959040605167763646680641380742690050113762978662536767158651047697949489504622384197817837009805899
19727343590375254587632064140287699566563861529445468621638884818761861540961749277853179945255843397536566044480303263556254457161104941393645917691400698065333537334779814570503718249229475690196783419679830207498236110734650420609935794287945715103900372168348961901833772377802379479319644431008757815787334189780063235801416793468059424958573205997627164009534531784146324794250969016066689012860836352144213050795110337215547546732047516573017499097151983502940550806452813587410367538308128332213316272151085118366028973986023768617211377151718510089448930252336976332354607451783997638889985033237270143000
19727343590375254587632064140287699566563861529445468621638884818761861540961749277853179945255843397536566044480303263556254457161104941393645917691400698065333537334779814570503718249229475690196783419679830207498236110734650420609935794287945715103900372168348961901833772377802379479319644431008757815787334189780063235801416793468059424958573205997627164009534531784146324794250969016066689012860836352144213050795110337215547546732047516573017499097151983502940550806452813587410367538308128332213316272151085118366028973986023768617211377151718510089448930252336976332354607451783997638889985033237270143000
4445090445035309816967308047543919771789262531454517330433510565884369964378364605126226379819564829968488441058652506153262173239057050014566164621236559886897342588940445365608806667121789509027430166785283629129835559641423222470548437137085092267666689140100996007770120912463378323231522269978350165368055010106191244418791128640304446285109189459476433859526044671708676266353806769784954069238002071785082141503102486267921996976823912847921270611519062660030226965810630623647778242153341864677007897561440886995514761812023703358772010858242587672016375310824639504946900189098924010345259054082842462952
31489402022237845095713161555001836257530006471622299194679768644155916609549158574276114572220392183225055133158459214892388896393994816734758651928499631810524923518775717585896197183719011892736579692280180081227822350261519282412322947820015241944858673902001159393951757302936493328485381201812608014183954031226460217543105912866745071626776230347839783360708720981407649649955548220895829413187995263132828649329317684457074878797275638819579478233856655925392114867070177288400223153091926885999827210039281985405009690948796370190764595673615665288826527052161511322777467493975861282833820882856374851534
12162447081760673920818643554030757796301331887670032400173183950958372037923153779101114518800878662669193327234676755098501994856505925588938588147627222346418579875160828453373675031697330271241666811616528649626590785905375841865930581008555819760506462114408403893584247203331887414856156039545144175164912450208727932613202090824467408538115899554054403698251263868802055049783186220064659756518127744287353679560300160686602645213626430963599368771180591237896905830755596491910302237379297313673792354864377434884060559130006006741703356932449048458603684568158407356416615593652760086365317869765908887325
7614305733781939066447122348803189917373287147568651764965213030749807399485484322047897612051860731714216366150477837361431739543136904485219669180916405411738000788721017772411359501201129068067345416077041593698798902971482702218995094662687418603328550543751730581653237946791319838231000903206634501454848858633475328021270871124103263667264998568239850985283877083399747580436290629850807257257822672682275745341774055095177776018754664274959088627193403505950285396668902896974422056354568588387407148914323680129699728249546517637740465696761867411721105292606132614457797912681190579464754692178074288432
4445090445035309816967308047543919771789262531454517330433510565884369964378364605126226379819564829968488441058652506153262173239057050014566164621236559886897342588940445365608806667121789509027430166785283629129835559641423222470548437137085092267666689140100996007770120912463378323231522269978350165368055010106191244418791128640304446285109189459476433859526044671708676266353806769784954069238002071785082141503102486267921996976823912847921270611519062660030226965810630623647778242153341864677007897561440886995514761812023703358772010858242587672016375310824639504946900189098924010345259054082842462952
17123640712605486455710331503622149566381895546952371114127099144731126664255209549917555867405427059867732972283523645802981139955091908210987774319048157763180620099419426954198298442527633557343921414871801495924365946643742260302222329777691088689490433561268494614133918271392455570351732278861137935534144740792912463367825185307909549573973115626433511890886427014705525168084527676204902364574079608349328609735158096556056534370160007219534807220550313946711950618126886431458992114623708552088071858757603459331590270703529871979587852610846623171550166793798422077258772030354999760223188522132363046991
7614305733781939066447122348803189917373287147568651764965213030749807399485484322047897612051860731714216366150477837361431739543136904485219669180916405411738000788721017772411359501201129068067345416077041593698798902971482702218995094662687418603328550543751730581653237946791319838231000903206634501454848858633475328021270871124103263667264998568239850985283877083399747580436290629850807257257822672682275745341774055095177776018754664274959088627193403505950285396668902896974422056354568588387407148914323680129699728249546517637740465696761867411721105292606132614457797912681190579464754692178074288432
4445090445035309816967308047543919771789262531454517330433510565884369964378364605126226379819564829968488441058652506153262173239057050014566164621236559886897342588940445365608806667121789509027430166785283629129835559641423222470548437137085092267666689140100996007770120912463378323231522269978350165368055010106191244418791128640304446285109189459476433859526044671708676266353806769784954069238002071785082141503102486267921996976823912847921270611519062660030226965810630623647778242153341864677007897561440886995514761812023703358772010858242587672016375310824639504946900189098924010345259054082842462952
20363550882654656735712963147998538133764637873870133611050214874932713869759354432762182489154746956659530792748712009467706322316422789671158849556725585574743014878264003153724533655903940543399055564251373527306367498696880372355974158195209245652047044565961920636169427251288081831523847056680568954082761535975143622487783020431400018132089211820129843634233950617494095939185923688192584293665299930423599277271190380871612729583568891854409495233551826919062929941588416043949225548978630364031281835831744459011897180506462438324390682101572937023619706529875639300879007478466999609188887673123117209214
35281408092375952281726917090787142632733066563620991872002918692378166030610011447579042180082695834448370457076107980397712190086934090736939295047739108983311280069632388023724537185206135081640708416065752200674950158226541934310820828884784320648574385481184792432883840428832675118865022388604992184306433162856083501724629453140816907588357066877849638057796037811471382243339150192266945556056920084520661254644740550996346916309525106638714564549966779826545146543226245351244347767520267740976227220806375754780018194765576617703742034900612204265907753037602258832036675965585326987121730208904172636707
25661750150853878754481240488233682685517882929639728814204202272300466944029751885011417647185955996359405511812784463409308971670683299387591171281003655244009584382686676455602431966589035323543850991548183390364717650691625896510716018736326547862654140089659211608838212532579483772844608519496561750351067818473538036061228592093439093498669900206177604488003600893640301509323953394788450530568965046074374334569239897130350502591930457667645069637013800325558226517891334098213138664593715281493978250742348707920991717528287382299191564243044640233524841905412208103707160260558591951416676959307806215873
4737418197186592391586354472202635752008590916595183972465218893728984408576507219754756034257570062765539718361106275457290914012214818230187592078034620492127916852822584051869220339575175210112415729295137337534016600589496188204746588011191924526335111889982129997219996968394467426912082167640098296817533219415565903060917501772614737710895898803203456338300434543951124098288424726341437663499204600285075025297455076520034553966868158129943277982252596529840140662262808730320101013990956487314997739426728293826606488664708795806275867014436712077975555430580706595074184505085748631037695311359265814207
11240119660150979130437010834353812296017155111309439220183308849078858227855991580629935251160701236908831103145069249874891107420683432062612665536612579632424859570115647906861174185022272424579522026855349536403185750057864269381747030358151291562103266385870512025415554221071516346694005930799310152192570760986978549090327441829191065302181485759112788523209845375063401092061615955074279097798169788747371586081874107564321734493519543850720805645294745402722149032580939364203729403311298491779041445545543686221479651228590917901489455191288730608899488042870032701482338129174915458598330333698339237521
9101532610704319801229002627568606593118376880231363961793878928022682616808257607109430196313625958134631704058601693308284947736738665470244813934118299151452767791230856972131812540721505259138770769757869844334681886944409230647759469220912955547226599154678486454341028553818030097462570293871670067871193147146142698847930591071625262873141933952857468878191419947394293498446678303058453036476382121602756768748298356860355063204128785975756727271149328857774395653350883235189149487626224203793753774251337959040605167763646680641380742690050113762978662536767158651047697949489504622384197817837009805899
31489402022237845095713161555001836257530006471622299194679768644155916609549158574276114572220392183225055133158459214892388896393994816734758651928499631810524923518775717585896197183719011892736579692280180081227822350261519282412322947820015241944858673902001159393951757302936493328485381201812608014183954031226460217543105912866745071626776230347839783360708720981407649649955548220895829413187995263132828649329317684457074878797275638819579478233856655925392114867070177288400223153091926885999827210039281985405009690948796370190764595673615665288826527052161511322777467493975861282833820882856374851534
11240119660150979130437010834353812296017155111309439220183308849078858227855991580629935251160701236908831103145069249874891107420683432062612665536612579632424859570115647906861174185022272424579522026855349536403185750057864269381747030358151291562103266385870512025415554221071516346694005930799310152192570760986978549090327441829191065302181485759112788523209845375063401092061615955074279097798169788747371586081874107564321734493519543850720805645294745402722149032580939364203729403311298491779041445545543686221479651228590917901489455191288730608899488042870032701482338129174915458598330333698339237521
16720704891001160160511604046230034068017443633324944107643953041525029637475359045544222918596906514858175672077005030029646528275973947925424106660603416024101755629235987451663480919716815710453555727545586520911951104742920461376732853160755293429400576680667408992248991205547254368426122415960086723047971053279114784542893495494822477973438479488654683797880988580652670499899163395980039135520914163301462064745612533965959340971637913982554044048195794501437803019655664987668673582368766149289378623999422915164409242126795125100072233351736630846695814184161368800692814633567060875440309395003605294126

암호화를 한글자씩 하고있어서 그냥 브포 돌려주면 된다.


solve.py


#flag = 'TWCTF{CENSORED}'

f = open("C:\Python27\\flag_enc.txt")

flag_list = f.read().split("\n")

print int(flag_list[1])


# Public Parameters

N = 36239973541558932215768154398027510542999295460598793991863043974317503405132258743580804101986195705838099875086956063357178601077684772324064096356684008573295186622116931603804539480260180369510754948354952843990891989516977978839158915835381010468654190434058825525303974958222956513586121683284362090515808508044283236502801777575604829177236616682941566165356433922623572630453807517714014758581695760621278985339321003215237271785789328502527807304614754314937458797885837846005142762002103727753034387997014140695908371141458803486809615038309524628617159265412467046813293232560959236865127539835290549091

e = 65537

flag = ""

# Encrypt the flag!

for i in flag_list:

    for j in range(127):

        if pow(j, e, N)==int(i):

            flag += chr(j)

            print flag

            break


'Crypto & Network & Etc > Crypto Practice' 카테고리의 다른 글

TokyoWesterns CTF 2018 Revolutional Secure Angou  (0) 2019.11.12
Plaid CTF 2015 Strength  (0) 2019.11.11
KCTF Operation 1  (0) 2019.11.08
HackZone VII 2019 CTF Legacy  (0) 2019.11.08
TG:Hack 2019 CTF Josefssons Final Exam  (0) 2019.11.07
블로그 이미지

JeonYoungSin

메모 기록용 공간

,

RSA

2019. 11. 11. 21:57

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.