当前位置: 首页 > news >正文

网站建设外出考察报告高德地图有没有vr全景

网站建设外出考察报告,高德地图有没有vr全景,做基因互作的网站,苏州网页终于都结束了#xff0c;这些新生赛太漫长了。不过这个也还是有些难度的#xff0c;好多整不来。抓紧时间整理一下。 week1 第1周基本是古典密码#xff0c;古典和现代最大的区别是古典全靠猜#xff0c;现在都是数学 立正 wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBi…终于都结束了这些新生赛太漫长了。不过这个也还是有些难度的好多整不来。抓紧时间整理一下。 week1 第1周基本是古典密码古典和现代最大的区别是古典全靠猜现在都是数学 立正 wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBiDNUHw8HkapH :jdoi vl vlkw  ~xrb wd nrrT Y: 只给这么一段全靠猜其中:jdoi vl vlkw猜是this is flag于是取反转再凯撒得到 :V Qook at you~  this is flag: EmxhE8tERKAfYAZ6S636dIWuEK46ZK4yRBdNdK4uRKd4 decode it  显然这里的EmxhE8和flag{的ZmxhZ3s差点那就可能是大小写数字偏移并不同分别用 不同的偏移计算得到flag的base64 import string from base64 import * dic string.ascii_uppercasefor a in dic:for d in dic:print(a,d, b64decode((a8td).encode()))a wl hgrfhg 4gNUx4NgQgEUb4NC64NHxZLg636V6CDBiDNUHw8HkapH :jdoi vl vlkw ~xrb wd nrrT Y: a a[::-1] c for v in a:if v in string.ascii_uppercase:c chr(ord(A) (ord(v)-ord(A)-8)%26)elif v in string.ascii_lowercase:c chr(ord(a) (ord(v)-ord(a)-3)%26)elif v in string.digits:c chr(ord(0) (ord(v)-ord(0)-5)%10)else:c v #:Q Look at you~ this is flag: ZmxhZ3tZMFVfTVU1N181dDRuZF91UF9yMWdIdF9uMFd9 decode it #flag{Y0U_MU57_5t4nd_uP_r1gHt_n0W} checkin QZZ|KQbjRRS8QZRQdCYwR4_DoQ7~jyO0t4R4__aQZQ9|Rzk_Q!r#mR90NR4_4NR%ipO0s{R90|SQhHKhRzk^S8Q5JS5|OUQZO}CQfp*dS8P9R8k?QZYthRzk_O0#   带符号的猜base64以上的base85(不过这个需要用python的解)以后厨子可以自动再64,32,16 flag{Th1s_1s_B4s3_3nc0d3} 残缺的md5 苑晴在路边捡到了一张纸条上面有一串字符串KCLWG?K8M9O3?DE?84S9 问号是被污染的部分纸条的背面写着被污染的地方为大写字母还给了这串字符串的md5码值F0AF????B1F463????F7AE???B2AC4E6 请提交完整的md5码值并用flag{}包裹提交 缺仨爆破 import string from hashlib import md5 dic string.ascii_uppercase for a in dic:for b in dic:for c in dic:v fKCLWG{a}K8M9O3{b}DE{c}84S9if md5(v.encode()).hexdigest()[:4] f0af:print(v, md5(v.encode()).hexdigest())#KCLWGXK8M9O3KDED84S9 f0af1443b1f463eafff7aebb8b2ac4e6 #flag{F0AF1443B1F463EAFFF7AEBB8B2AC4E6} 凯撒大帝 都说了是凯撒了随波一键解密 pvkq{mredsrkyxkx}  -- flag{chutihaonan} 进制 16进制转字符略 okk Brainfuck/Ook! Obfuscation/Encoding [splitbrain.org]   OOK解码 熊斐特 通过flag头可知道密文字母是字符表反着的 uozt{zgyzhs xrksvi} flag{atbash cipher} 黑暗之歌 ⠴⡰⡭⡳⠴⡰⡭⡰⡷⡲⡢⡩⡭⡡⠯⡩⡭⡡⡺⡩⡭⡡⠳⡩⡭⡡⡺⡩⡭⡡⡶⡩⡭⡡⡶⡩⡭⡡⡲⡩⡭⡡⡺⡩⡭⡡⠯⡩⡧⡊⡢⡩⡭⡡⠯⡩⡭⡡⡺⡃⡰⠫⡋⡚⡲⡍⡋⡮⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡃⡴⡵⡋⡁⡬⡵⡋⡁⡬⡵⡋⡁⡬⡳⡋⠲⠴⡯⡃⡗⠴⡰⡭⡴⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡩⡭⡡⡺⡩⡭⡡⡺⡩⡭⡡⠳⡩⡧⡊⡢⡩⡭⡡⠯⡩⡧⡊⡢⡃⡴⡵⡋⡚⡱⠫⡋⡚⡱⠫⡋⡚⡲⠵⠲⡺⠰⠽ 显然是盲文网站解密盲文点字加密/解密 - 一个工具箱 - 好用的在线工具都在这里 得到base64 :4pms4pmpwrbima/imazima3imazimavimavimarimazima/igJbima/imazCpKZrMKn4pmvwrbigJbCtuKAluKAluKAlsK24oCW4pmt4pmvwrbigJbimazimazima3igJbima/igJbCtuKZqKZqKZrz0 得到的是音符再用音符解密文本加密为音乐符号,可自设密码|文本在线加密解密工具 ♬♩¶♯♬♭♬♫♫♪♬♯‖♯♬§♬§♯¶‖¶‖‖‖¶‖♭♯¶‖♬♬♭‖♯‖¶♫♫♯  迷雾重重 显然是摩斯密码 ..-. .-.. .- --. ----.-- -- --- .-. ... . ..--.- .. ... ..--.- ...- . .-. -.-- ..--.- ..-. ..- -. -----.- 难言的遗憾 电报码中文  电报码在线翻译国际摩尔斯电码及中文电码 - 千千秀字 000111310008133175592422205314327609650071810649 小兔子可爱捏 带密码的加盐类 U2FsdGVkX1/lKCKZm7Nw9xHLMrKHsbGQuFJU5QeUdASq3Ulcrcv9 puzzleSolver [*] FBE执行完毕, 明文如下: Rc4Decrypt: b\xe8s\xa1\x1b\xea\xd2\xeb\x84\x0f\xaco\xe0iI!\x14\xf9\xe5[\xc4\xbe\xfd RabbitDecrypt: bflag{i_love_technology} Rabbit2Decrypt: bAu,\x16\x0c\xcbz\xd6H}\xe6\x86\xec\xe2\xe1\xc7\xad\xf4\xe7\x87d\xce 电信诈骗 #你好我是秦始皇我并没有死我得到了长生不老药但是药效有副作用现在才醒。我刚花了一年在互联网上了解现在的时代现在我要利用我地宫第四行第七列的无敌兵马俑军队卷土重来但是我需要启动资金vivo50作为启动资金待我横扫天下封你为大将军赏你黄金万两050f000a7e407151537802540b747176075178027552756d0256726262627c 从给出的提示应该是rot47 然后xor 50 a bytes.fromhex(050f000a7e407151537802540b747176075178027552756d0256726262627c) b xor(b2, a) #xor 50 #rot47 flag{Cr42y_7hursd4y_v1v0_5o!!!} what is m 只用了bytes_to_long再用long_to_bytes回去就行了 from Crypto.Util.number import bytes_to_long from secret import flagm bytes_to_long(flag) print(m ,m)# m 7130439814057451234695775379926130082900059400844397142290673193355771803771881034799138892855846752495222756063903171606896511750369873549037743921052936152710997094795530508070507702804861 really_ez_rsa rsa入门 from Crypto.Util.number import getPrime, bytes_to_longe 65537 m bp getPrime(128) q getPrime(128) n p * q m bytes_to_long(m) c pow(m, e, n)print(p , p) print(q , q) print(c , c) print(e , e)p 217873395548207236847876059475581824463 q 185617189161086060278518214521453878483 c 6170206647205994850964798055359827998224330552323068751708721001188295410644 e 65537 long_to_bytes(int(pow(c,inverse_mod(e,(p-1)*(q-1)),p*q))) week2 XOR RSA给了p xor q 常规爆破题 n 20810298530643139779725379335557687960281905096107101411585220918672653323875234344540342801651123667553812866458790076971583539529404583369246005781146655852295475940942005806084842620601383912513102861245275690036363402134681262533947475193408594967684453091957401932685922178406769578067946779033282889429596341714417295489842047781388337010440309434639274398589029236213499110100040841426995862849012466514170374143655264739023758914247116354182164550612494432327931655944868705959874670536031052370968354394583880324756639698871918124498442308334232127034553164826483441746719644515097123067550594588348951855987 c 15294238831055894095745317706739204020319929545635634316996804750424242996533741450795483290384329104330090410419090776738963732127756947425265305276394058773237118310164375814515488333015347737716139073947021972607133348357843542310589577847859875065651579863803460777883480006078771792286205582765870786584904810922437581419555823588531402681156158991972023042592179567351862630979979989132957073962160946903567157184627177910380657091234027709595863061642453096671316307805667922247180282486325569430449985678954185611299166777141304330040782500340791721548519463552822293017606441987565074653579432972931432057376 e 65537 #p⊕q gift 66138689143868607947630785415331461127626263390302506173955100963855136134289233949354345883327245336547595357625259526618623795152771487180400409991587378085305813144661971099363267511657121911410275002816755637490837422852032755234403225128695875574749525003296342076268760708900752562579555935703659615570PR.x PolynomialRing(Zmod(N)) ok False def pq_xor(tp,tq,idx):global ok if ok:return if (tp1)*(tq1) N:print(tp)print(tq)ok Truereturn if tp*tqN:return if (tp(2idx))*(tq(2idx))N:return if idx400:try:f tp x rr f.monic().small_roots(X2^400, beta0.4)if rr ! []:print(rr)print(tp)print(p ,f(rr[0]))ok Truereturnexcept:passreturnidx -1b (gift idx)1one 1idx if b0:pq_xor(tp,tq,idx) pq_xor(tpone,tqone,idx) else: #1pq_xor(tpone,tq,idx)pq_xor(tp,tqone,idx)#N.nbits()2048 gift.nbits()1023 p,q的1024位为1 tp 11023 tq 11023 pq_xor(tp,tq,1023)p 170986832479534233007906048950464510414382588164533889416767650420928742690929190093999799507883047422413122991286355305384227808800633111611572663168246588357071419165779511128259447564377245832827901688451015954867004306626552500789867499455455629032408110167560346510245108938981288797349665759162752876911 m pow(c, invert(e, p-1),p) long_to_bytes(m) #flag{7428fbd7-639b-11ee-b51b-64d69af3cb76} ezmath PRNG题先求参 from Crypto.Util.number import * from random import * p getPrime(128) seed randint(2, p - 1)class prng:n pa,b [randint(2, p - 1) for _ in range(2)]def __init__(self,seed):self.state seeddef next(self):self.state (self.state * self.a self.b) % self.nreturn self.statedef main():gen prng(seed)s [seed]s.append(gen.next())s.append(gen.next())s.append(gen.next())s.append(gen.next())s.append(gen.next())s.append(gen.next())f open(output.txt,w)json.dump(s,f)f.close()flag flag{str(gen.next())}return flag main()#prng求参 out [288530505749272642500730917886204398531, 63547143998110685331032679758907988154, 15151206512028268617888756820805603406, 268092204209244869520724955865278855216, 261067075335188593563542448889694952077, 138067838531633886698552659065694918861, 201319433320428898153580935653793106657]P.a,bPolynomialRing(ZZ) F [a*out[i-1]b - out[i] for i in range(1, len(out))] I Ideal(F).groebner_basis() print(I) # 求解参数a b n res[x.constant_coefficient() for x in I] n res[2] a -res[0]%n b -res[1]%n n,a,b 312769358113056565136009929613710078319,40963964079686917005166446559117876093,11856650155037935400579201826386146297next (a*out[-1]b)%n#flag{302184756857257140159769321021979097116} ez_rsa 第1部分n由小因子组成可直接分解第2部分是显然是共模攻击不过这里明显c比较小试着直接开13次成功 # from flag import flag from Crypto.Util.number import getPrime, bytes_to_long from math import prod import libnumwith open(flag.txt,rb) as f:flag f.read().strip()m int.from_bytes(flag[:19],big) m1 int.from_bytes(flag[19:],big)e 65537primes [getPrime(64) for i in range(32)] n prod(primes) c pow(m,e,n) print(c ,c) print(n ,n)p libnum.generate_prime(1024) q libnum.generate_prime(1024) e1 13 e2 15 n1 p * q c1 pow(m1, e1, n1) c2 pow(m1, e2, n1) print(n1 , n1) print(e1 , e1) print(c1 , c1) print(n2 , n1) print(e2 , e2) print(c2 , c2)c 28535916699190273475273097091422420145718978597126134891571109006456944397344856577421369324831702083810238921719657496747722337086131545474384253288151783029981352196506749672783866527948391034258269669654392993063423671431837882584570973320095601407578443348352802850496429240170710269529489900871208384711844617081275862971410246759090936379744946527813691945129059991795202769186014306943707223831130752782380563227353615164053563120572722464543812139164048342504963081408349934180883607554389607335607410546630525512019818062185681153477671373000186961748278118124044645584490544698827467815360888525822167 n 114107341297408283801468814470303963122122556489590451040619457052827864984505912502462030175984161431709841571908269123131659496812467145870607611968843929870716066046232009282431653653484798819370087696248364531531706249180822839879862098012984590503284615395588919199545142177727328844260380842155437987767067800740569616584597507776426572206990858918111272636507821551592564540694671795374831548677720629329358177802890287837056940407030212276399942462042866947423728888561392653713356355778914658317507319575084393752755452971007289968044006561357799908892371839922838486713582082980752194204224263283004373 e 65537 #n可分解 fac [11777892065426651999,9261040693807289549,9356350172425710359,14198042938738648387,10270880245559150279,16651625235320957803,10203735303764112277,10126802520926958821,17075632607344331131,15774106340553595249,16340211116882594287,15616762946597906161,16880270107514803247,10635881647150245973,15622487550947237203,10436802938040427139,13498192768855092449,11502613740816749197,10621161426185076191,13618885037077024279,10986943768724409089,16946507762934111301, 9281508366366115669,11964584391817142269,13428970346605599557,10040612110882504553,9723861249937499279,10100522426677320149,12712357180113548549,14147604789494386003,17088379813205887661,11718181938374860349] phi prod([i-1 for i in fac]) m pow(c, invert(e,phi), n) long_to_bytes(int(m)) #flag{05929ec9778ed739d94ee1a77b742714}n1 21235204662158833223664424963408105101885570855652885953922511758363954474947609854216589644512813634294435585894296340005122907229365513346971631594453999584706013889403572150499529308966742992668850443386284277210686717652643585324255759216699733045642544284406720854291604837774882256435503827543483289606177965628162259184958789025311291796067574924595051311298594432767265114154138693108465671184854794167878031822162731921299518989845784744659944947091213703810190708463199067553747177712259911724424547999547534441790125049383068377243727588278432796727885216967953646999183906479537750330738956233695342750567 e1 13 c1 5640630966585093229374938575158853304507369792931959909038819773057666482368490365383634362421839045569190487785222799103423460816096797210546343809620912249021763787314569982909943181390882015170344954037813745251119237402775124991005154299085147091159741067430623420349690886728161235034687649593258746455165172528681627568611599473627285223154284756417744280966157271904828156564067870877521824545300153084830020169048653830385763172792698591998191641849931039720453035065355411394516308865955772746815765864888631258825704788352584540380169938419618543124830541663995097651872542381 n2 21235204662158833223664424963408105101885570855652885953922511758363954474947609854216589644512813634294435585894296340005122907229365513346971631594453999584706013889403572150499529308966742992668850443386284277210686717652643585324255759216699733045642544284406720854291604837774882256435503827543483289606177965628162259184958789025311291796067574924595051311298594432767265114154138693108465671184854794167878031822162731921299518989845784744659944947091213703810190708463199067553747177712259911724424547999547534441790125049383068377243727588278432796727885216967953646999183906479537750330738956233695342750567 e2 15 c2 5481001445755770090420425478456880914921441486935672376394423326451811448703288166341447356603281843336826624725965666634194700496514262129376916108926167953996689011980280761368893884042609095616407660087448963015169181749124738976578495911295096014725354350167650232970262765851074146687931181216305972147994236689422572940877763047930111954798962097847426932730342258169023809341164876019161104439561164839132092594444017039073155506935768658830659965630065643619399324102814118128802834719820426253836317043818687888302054465994498115387703382090351794495827905499417861507007863378916334790750453883661675063377#设后部分也是19字节长 19*8*13 1976 2048 iroot(c1,13) #(mpz(1142337509697915945204216120802149852473537661), True) m iroot(c1,13)[0] long_to_bytes(m) b39d94ee1a77b742714} #39d94ee1a77b742714}e? e和phi有公因子2先解出e//2的m再开根号 p 70724362259337647663584082414795381346569735601816096923682814277857463878289 q 114427188167532721707398034034072867253267857672869034942206947096293901917007 e 1314 c 4308122681135507736058122041934864039713319497673888928736468819190185301630702240416683093700232966794026900978699666246019059398861283337865339404916304m2 pow(c, invert(e//2, (p-1)*(q-1)), p*q) m2 mpz(1775318360179864378624277748331165796280824461853426513283863916662928311120204842695157660663163224199957292247552592476585297161)iroot(m2,2) (mpz(42134526936704349079532070253042512071437224483290059738614559869), True)m iroot(m2,2)[0]long_to_bytes(m) bflag{This_e_is_real_or_not} factorizing_n 分解n的时候发现n是p**5直接解 n 226515252384227990547287743140613580056836242860947832749754689048997071950972581790210817523352001702907675581567498443649554801433663166425134375454937126656357069687274036935331269594383360450823787099121079436459236734336130768046337169817940540921822023269188752420603975467384377614321048859304185067329741055517464271746238143742661897809442359331215501438861121047081117632626097939097519866099140569819965948998542652908170134545593659233229897003698175558888336706474178958535138595687148003367152624421106553412886263257022809480187410133186189435436294593588009551451899398811758511878324326255293307347560753524372663257044426744744426759970254203341706284024734042826158828749144322843934985927079504722440497388146240627249465363931951790326885478025237643 c 52409805591744226507807531465616894934028463651864630447934395956954575834603756391651746535033902964658694070544877880970130028487381287088425209448038533705903737694267359561133766799228825599943891152463160326583722749586721691729062524310148743637505134465210906856660867852927837112666513674858029892207902196213784902541173835447263733760225682942461048573387925463479672527491229113710629340960375692432470493054415657845868577650170648157402682163577152288432313996310562452677399267755695644659367792066311336521698894993982901657735586844358679888210537898629281625526455444811591386493005341435516094660429968084363084301878446471676122069724608083578102382181382107225473535696274374370868301830807644939881080301668756603163431000745972823980427048672732291 e 65537fac [11776588228599764849559519654482976956833367474471407292255776713760090338489966385328569279135095351660161277221351884258247731394014018172166064062551483,11776588228599764849559519654482976956833367474471407292255776713760090338489966385328569279135095351660161277221351884258247731394014018172166064062551483,11776588228599764849559519654482976956833367474471407292255776713760090338489966385328569279135095351660161277221351884258247731394014018172166064062551483,11776588228599764849559519654482976956833367474471407292255776713760090338489966385328569279135095351660161277221351884258247731394014018172166064062551483,11776588228599764849559519654482976956833367474471407292255776713760090338489966385328569279135095351660161277221351884258247731394014018172166064062551483] from math import prod phi fac[0]**4*(fac[0]-1) m pow(c, invert(e,phi), n) long_to_bytes(int(m)) #flag{1f95f530f85b940db810fc917607ee22} 哈希猫 给了一堆hash值一个个爆破 import hashlib from secret import flagassert flag[:5] flag{ assert flag[-1:] } flag flag[5:-1] assert len(flag) 43print(hashlib.sha512(flag[0:2].encode()).hexdigest()) print(hashlib.md5(flag[2:5].encode()).hexdigest()) print(hashlib.sha512(flag[5:7].encode()).hexdigest()) print(hashlib.md5(flag[7:10].encode()).hexdigest()) print(hashlib.sha384(flag[10:12].encode()).hexdigest()) print(hashlib.sha384(flag[12:14].encode()).hexdigest()) print(hashlib.sha256(flag[14:16].encode()).hexdigest()) print(hashlib.sha256(flag[16:18].encode()).hexdigest()) print(hashlib.sha384(flag[18:20].encode()).hexdigest()) print(hashlib.sha224(flag[20:22].encode()).hexdigest()) print(hashlib.sha224(flag[22:24].encode()).hexdigest()) print(hashlib.sha1(flag[24:27].encode()).hexdigest()) print(hashlib.md5(flag[27:30].encode()).hexdigest()) print(hashlib.md5(flag[30:33].encode()).hexdigest()) print(hashlib.sha512(flag[33:35].encode()).hexdigest()) print(hashlib.sha384(flag[35:37].encode()).hexdigest()) print(hashlib.sha384(flag[37:39].encode()).hexdigest()) print(hashlib.sha256(flag[39:41].encode()).hexdigest()) print(hashlib.md5(flag[41:43].encode()).hexdigest()) hv [f3dc242bd42a8cbb4cc0f0f5d770f54b5e0f5473bef389ec8d0f6fed7d5532ce1a5bad31f9121b07c10f925099887ba335b079a546db2bf9e8cb40186abca8b5,2ccdb2015049d76ccefcc9bc9df1bfe9,092ca0da5f25c595eae6cc725dc12ae75889a639d205733223cb9cfaeaa702a521971e57f768079b03d53c8f092bb2c597cc3adb4a98224a144c5d62461beb52,14e940d7e2b82dbbe27a08813b7cbb1d,5bf9859e59e1c81748f63e0ce663f76f5c494b37da01de2c375a851eac00053fd550d777dad95bb90e77474ae2fcf89e,f370fe8f432e0de9440ef9c1f98b8b3e6ff4e748e79673bf556361dde9bf99606be041d244e447d4881639969fa541d2,d478e626a6959e31e22a61451c13d639699877b187e44505f89c98b686c6d845,d32a29b4a83ca5eef3e0d1983db8f61e5d2208c876892ff120d790080433a4ba,3e1d845490a0fa282de47c746e3cab40067620722a222634a164582c17672534c36eda6f1cc7c9b3b3e170f9aeaa8ecb,379e9548414e1a56aaf2d1e62b4bdcd8305fc705a31f00da4bb89312,5598556fc00e3641a3a9fa69182e7f6a8107c9148f248b92a51f1a77,446e2787acde609c9908273b1f727422afa691ba,ff186448736f67c8790388b678c682f6,ee0d387df8b1b937ed03a23848d68c53,d8754279bd2410ee9bb0d9c57da0122ff1313a2094e31fa5b6fecc1158c28379465cf9af176e8b974e022081d59300da11af54ea2b7ffefcec99a2d90990060e,34d69a8fd2da685be602c82ca99ebaa6430e52b70a2530066064d3feb6c2c5e236268b3a30d3d68661a7404275196c3d,0f19ad7a3aa8b92ddc3a4828f57b540c3d3e34b9dfee263462e6a83c22d19cbcbf65a86f25e9124e7cf8488622071693,76a8277347f52530e1cf979175a178980b3a180d176165c985d85f7e142f1eed,14ef8abfe3ae0194a39de558fbcfa765]from hashlib import sha512, md5, sha384, sha256, sha224, sha1 import stringsdic string.printable flag #print(hashlib.sha512(flag[0:2].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha512((v1v2).encode()).hexdigest() hv[0]:flag v1v2print(flag)break#print(hashlib.md5(flag[2:5].encode()).hexdigest()) for v1 in dic:for v2 in dic:for v3 in dic:if md5((v1v2v3).encode()).hexdigest() hv[1]:flag v1v2v3print(flag)break#print(hashlib.sha512(flag[5:7].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha512((v1v2).encode()).hexdigest() hv[2]:flag v1v2print(flag)break#print(hashlib.md5(flag[7:10].encode()).hexdigest()) for v1 in dic:for v2 in dic:for v3 in dic:if md5((v1v2v3).encode()).hexdigest() hv[3]:flag v1v2v3print(flag)break#print(hashlib.sha384(flag[10:12].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha384((v1v2).encode()).hexdigest() hv[4]:flag v1v2print(flag)break#YOUvE_cOm3_ #print(hashlib.sha384(flag[12:14].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha384((v1v2).encode()).hexdigest() hv[5]:flag v1v2print(flag)break#print(hashlib.sha256(flag[14:16].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha256((v1v2).encode()).hexdigest() hv[6]:flag v1v2print(flag)break#print(hashlib.sha256(flag[16:18].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha256((v1v2).encode()).hexdigest() hv[7]:flag v1v2print(flag)break#print(hashlib.sha384(flag[18:20].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha384((v1v2).encode()).hexdigest() hv[8]:flag v1v2print(flag)break#print(hashlib.sha224(flag[20:22].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha224((v1v2).encode()).hexdigest() hv[9]:flag v1v2print(flag)break#YOUvE_cOm3_t0_uNDeR57 #print(hashlib.sha224(flag[22:24].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha224((v1v2).encode()).hexdigest() hv[10]:flag v1v2print(flag)break#YOUvE_cOm3_t0_uNDeR574n #print(hashlib.sha1(flag[24:27].encode()).hexdigest()) for v1 in dic:for v2 in dic:for v3 in dic:if sha1((v1v2v3).encode()).hexdigest() hv[11]:flag v1v2v3print(flag)break#print(hashlib.md5(flag[27:30].encode()).hexdigest()) for v1 in dic:for v2 in dic:for v3 in dic:if md5((v1v2v3).encode()).hexdigest() hv[12]:flag v1v2v3print(flag)break#print(hashlib.md5(flag[30:33].encode()).hexdigest()) for v1 in dic:for v2 in dic:for v3 in dic:if md5((v1v2v3).encode()).hexdigest() hv[13]:flag v1v2v3print(flag)break#YOUvE_cOm3_t0_uNDeR574nD_HaSH_28 #print(hashlib.sha512(flag[33:35].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha512((v1v2).encode()).hexdigest() hv[14]:flag v1v2print(flag)break#print(hashlib.sha384(flag[35:37].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha384((v1v2).encode()).hexdigest() hv[15]:flag v1v2print(flag)break#print(hashlib.sha384(flag[37:39].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha384((v1v2).encode()).hexdigest() hv[16]:flag v1v2print(flag)break#print(hashlib.sha256(flag[39:41].encode()).hexdigest()) for v1 in dic:for v2 in dic:if sha256((v1v2).encode()).hexdigest() hv[17]:flag v1v2print(flag)break#print(hashlib.md5(flag[41:43].encode()).hexdigest()) for v1 in dic:for v2 in dic:if md5((v1v2).encode()).hexdigest() hv[18]:flag v1v2print(flag)break#YOUvE_cOm3_t0_uNDeR574nD_HaSH_281e8c4Db35bweek3 Classical Master 未完成 e3 给了N,e,c并且N由3个因子组成每个都是一个M进制数。 from Crypto.Util.number import * import random from secret import flagM 2**54 k 6def gen_prime(M, k):while True:prime sum([random.getrandbits(16) * M**i for i in range(k)])if isPrime(prime) and (prime-1) % 3 0:return primep, q, r [gen_prime(M, k) for i in range(3)] N p * q * r e 3 m bytes_to_long(flag) c pow(m, e, N) print(fN {N}) print(fc {c})对于M进制可以直接用sage来分解 e 3 N 3298593732762513945346583663585189774036688951059270517149719979434109398447628726951796006700754759352430339647168415338320547665794785951232342902233013221132246450312038122695046634624323814318286314664160113738299465643128504110932989263063331290006313 c 869489491924953293290699796392271834401780578884556874640489836779925847562085802848542382525324081900560761299059365684697233025590164192409062717942292142906458498707677300694595072310705415037345581289469698221468377159605973403471463296806900975548438 M 2**54 k 6poly sum(e * x^i for i,e in enumerate(Integer(N).digits(M))) #不要设置x (pp,_),(pq,_),(pr,_) poly.factor_list()#p,q,r 103574226729554375480512668967949133854292403117507474988278388756193462602107352821951, 47963432552002818180880760250824590058982930733941748241661938238195705638187268342813, 663998156522471100999941798165706402858681862228017448075268472245282758965006970051然后是这个3的问题因为每个因子-1都含因子3所以用AMM算法对每个因子取3次方根再求CRT #与e都有公因子,求CRT res [] for v in [p,q,r]:P.x Zmod(v)[]f x^e - cf f.monic()res.append(f.roots())from itertools import product from Crypto.Util.number import long_to_bytesp,q,r int(p),int(q),int(r) for i,j,k in product(*res):m CRT_list([int(i[0]), int(j[0]), int(k[0])],[p,q,r])flag long_to_bytes(int(m))print(flag)if bflag in flag:print(flag)break #flag{e1b7d2c2-e265-11eb-b693-98fa9b5bc5fe} 撤退 flag分两部分分别加密。 from Crypto.Util.number import *flag ******* p getPrime(1024) q getPrime(1024) n p * qhb len(flag)//2 hb1 bytes_to_long(flag[:hb]) hb2 bytes_to_long(flag[hb:]) D 117 x ******* y ******* assert x**2 - D * y**2 1 enc1 pow(334 * n ** 2 1, hb1, n ** 3) enc2 pow(y * n 1, hb2, n ** 3) print(n) print(enc1) print(enc2)第1部分因为模是n**3所以展开式子后所有**3以上的项全部为0所以得到下式,由于显然hb1比n要小,所以可以将结果直接除得到hb1 enc hb1*334*n**2 1 mod n**3 n 22970461944771505344360312103272646796516672838005008112295760406393062653512719537671401409823031480497512491850701737384621917068068328814717390355072928714618936469722031401433712342846780800586803218279291870162605299119904016959036663767093191710796830156169925350938267584422752300171293262391805105435418210827517225439398971437884496416502510866914857269951072184669675339439115587325754431761172634305242650221404868035624879538862880516438147301289746375407945908866907822940285764276956194031840381838253923392794376568293056359058519233175242523219646628321609305890926063856400793680641992567798104042179 c1 26380574883568223071748995929433720836641856899148821439556557592284999544802260386919172895274884666117488851000353221957579311943624258651646692068406462392980585841604755021251430357273933800209194484692955106014890051223465745443628784077844452303995642424661442978294757109040081050794398646640530714904683097650259060507908334791761124660725589404056356987726993518057050112725483482660202442987346646160168856264312557595890710521723067518303906942469282527855551751244126251698491010628369012024332666619702895796133780038584346428759785302542637171018926824843416176876077558936427399803328577151066597396550597352625005028261156114571696860700477410270949916316951150072218466374341394892405947793726872954497972795793421222424616005278493704125169150432275472846871295341469911428057621028515874978272004775903906188556908968810828510069826724631700523623584802605889173266453916347583720706846630531082266742377818663000322817114065116737931523412220137972079139507877669106470150742546914051556747087768279286696519700220233815812834114117581332234344024169109786527295900675653245014343393093832478814567179131966404207553408747774003319241150221488231674711614902743345516888975702483348011349617017294004761259419165663633915672647187482242462163420462987034240805524991 c2 21190674872507845600786632640969893237129139877891071648594239906632201421611954626926407751780936578853046780585253060958265549804784845192757301417173404074965693840282568701968464564320290763073618132775799910356101999797720378313304899173154753858674284071499775857913937184713024788245068426198878834805943703426673512761178072458895973672088230653246356764681418231485563287856188079274727706554037799748595877069143254516390328019381867648697880975670688337068196993846986940286056873616919629721264139576692806770826129279380704466982862393203486037890448173834315360975464927583664991534571518159777852793416869350127023692816051992183670690315184731534611966603509867722931839839084915943647295195314171688904055674915382434841320612108023531722571519492067471405656160804893645713608592561788743509876384862097871840094582513721456962354498561006793609200187065931433827465455037397503619844768415369973322759940610358415184510344945559838007474725413347675347453443583610217539704055467297318282309867987435252614428856515259899385689971172417660178761139941056839133998928898528744331662995956041897599276732929020537698559927654297185422925737241274711904687894411308774527520523946951208805307060323875839353707549772052299847176824964552693112658495961070555882583739017417359463576705453026824255338859618053086622031941#enc1 hb1*334*n^2 1 mod n^3 hb1 (c1 - 1)//334//n**2 long_to_bytes(hb1) #bflag{6c6eb27a-061b-ba同样的方法得到hb2*y 这个y是佩尔方程的一个解.虽然佩尔方程有无数解,但一般这里就用其一也就够了. hb2 (c2%n**2-1)//ndef solve_pell(N, numTry 100):cf continued_fraction(sqrt(N)) for i in range(numTry):denom cf.denominator(i)numer cf.numerator(i) if numer^2 - N * denom^2 1:return numer, denom return None, Nonedef gen_pell(D):x, y solve_pell(D)xs [x]ys [y]while True:yield xs[-1], ys[-1]x_i xs[0] * xs[-1] D * ys[0] * ys[-1]y_i xs[0] * ys[-1] ys[0] * xs[-1]xs.append(x_i)ys.append(y_i)for (x,y) in gen_pell(117):if hb2%y 0:print(y,long_to_bytes(int(hb2//y)))if y0x10000000:break # flag{6c6eb27a-061b-baf4-4cae26-5a609588ce}好好好 给了e,dp,n,c和一个残缺的表 #***EGK*MAPZ**3TISLXYHW*B4*R*6CQV e65537 dp89183181604123417010894108474901628410408206538085478807758137668201829058797702838603939730356798163745078443656032825128645105954284119126609502005130005399692420386460970318283171848176434285488698019425286328269756591931253074416895028845240978211030365697435579850343911269163064228581083838914477473793 n17133884272385326910236146208723169235592379139078245324256146697759098524213354087333170410075813764497353656874360657828668202585141557095326829141561993608634568037533128091918704136052835609732443342167341276983343070200953604216445186924411131823487594273213380078485528148801722039459601896275130691200206027353715109606722659553700867073796386669768748305283547862565020499794358571741903375812063001390288166187510171105241363677243530996160649133253643422391688399573703498726489248479978887237752214015456924632092625018668632234215462091314384917176427670194819828555385014264912614752917792278216214856001 c7297673446200396117470312266735704951424121735299327785232249350567349180167473433806232931862684106388722088953786183522191592452252650217579986150373463901393038386627370305688040315665037164819432754099421229466379901436696822022518438390977543864543590936753547325597766614648063328562516667604171990354928485383191174966274941678597887943784661684719053108281896697098991347034225406718530599672101743303723470910913422462764406680309933367328977341637394665138995676573466380198978810546689819954949832833954061771415463198737542769848298258925680570823701939997224167603657418270886620562332895947413332492672从外形上猜测为base32变表,这个是需要爆破的表,差9个字节,规模不大. 在已知dp的情况下 e*dp 1 mod p-1 e*dp 1 k*(p-1) 这里ke直接爆破 for i in range(2, e):if (e*dp - 1)%i 0:p (e*dp-1)//i 1if gcd(p,n) ! 1:print(p)breakq n//p m long_to_bytes(pow(c,invert(e,(p-1)*(q-1)), n)) m m.decode() #b7U25DUJJ7USYATEN5SREOFFG5NY57FPS77U5DFPY54JEG3NYKWSYA3YD5CXYTTNW53QS 对于结果可以很容易看到是base32结合前边的码表,确认为base32变表爆破 tmp ***EGK*MAPZ**3TISLXYHW*B4*R*6CQV tab ABCDEFGHIJKLMNOPQRSTUVWXYZ234567 last for i in tab:if i not in tmp:last i #DFJNOU257 import itertools for v in itertools.permutations(last, 9):ncode v[0]v[1]v[2]EGKv[3]MAPZv[4]v[5]3TISLXYHWv[6]B4v[7]Rv[8]6CQVtran str.maketrans(ncode,tab)flag m.translate(tran)if bflag in b32decode(flag):print(b32decode(flag))#flag{fa48a440-d0ff-0c2a-366243-a46b7e7853} easyrsa 给了n1,n2,c和两个leak,c是由n1加密来的,n1的因子p1是由n2加密的leak2,leak1是n2两个因子的和去掉400位. from Crypto.Util.number import * from flag import flagp1 getPrime(512) q1 getPrime(512) n1 p1 * q1e 65537p2 getPrime(1024) q2 getPrime(1024) n2 p2 * q2leak1 (p2q2) 400 leak2 (p1 ((1 350) - 1)) 5enc pow(leak2,e,n2) c pow(bytes_to_long(flag),e,n1) f open(foutput.txt,w) f.write(fn1 {n1}\n) f.write(fn2 {n2}\n) f.write(fleak1 {leak1}\n) f.write(fenc {enc}\n) f.write(fc {c}) f.close()由于已知和,可以直接用算子q2 leak1-p2 ;n2p2*(leak1-p2) 求出 n1 105813626754830369767796578799226643889033227412658130226893708851110720416468059965713264658478299377654212587044247669928410442281831382577490105352633718272894531572352233211881056495752193201866649055622358234888531194346296702453105176147272971386928767457928148705433435309063146652094354833396307613911 n2 20369481027961668058257949652346266097405331865071244844827896944882851755421021125005038786750268341013032202394581223828526073179263634639721089663050687773353438686984875196973012077948955566738301337866191557952973517042420660699281973702694965572488938789954679350791243570953680441483360036599350550534192027759384675611155970913348616382186229565994100357427843446265863186624731991521034305958565644266001622849342042747046352413268149901263629515623929619659379883036239511300563910486156582808698915297257307692017642458823600500445082987244477251123335410633989767118317681371314078169733374888688620813839 leak1 110733171993470709195465104383246525062178362778220972191726705114514369848757940664883819735824778128179586221599072975207093223575285541338555960658178287486722693023393688158120847028382 enc 3724360314735337348015983350518926695244720487101059718828225257324872465291143851090607580822961202894850524395217010317254775500983396154162166500198523991652838543842978138662752717532358799622372813160573374563924704242911344052149200174619645796187521459916955545794017698320367273671936314947729523150627463505338870024421481261166504454532278895870561732979282672259730923724762173494886613682487373643406390205027508946750313076817576295795818790961232101069994823561840743308871216879655652136743807002025483269687509388947008928281179566366429525183899914275273098400627187051739816901887290337980735995613 c 38127787578353827234498259231834082660893046004292279030517959465543348558091033172704284501791369355347078715874056471582324178524957666710131669794646539355849074198396968523041568909435662208846480656877184197877122598569708545477705274221697660270808685794034776172296500330563270867517390911486555286886#书籍 pq前400位分解 RF RealField(2048) #2048位精度实数 X polygen(RF) f X*((leak1400)-X) -n2 P_high int(f.roots()[1][0]) #P_high (P410)410 #未知部分400位,但会有进位影响 PR.x PolynomialRing(Zmod(n2)) f1 x P_high x0 f1.small_roots(X2^410, beta0.4)[0] P f1(x0) print(n2%P) p2 151399048655298148018688323609718705920605086712318698086250277971491481779504840614471253946764630599745412866850500656954922361816231030123945084396794404269982437117950486373905356265950808460057643971210951709676705550508291196476405125057071271317182732652055355984683359771176148502822187125614565868259 q2 n2//p2 leak2 pow(enc,inverse_mod(e, (p2-1)*(q2-1)),n2) #leak2 22334810767801800995021872014176778873829048161801414909315794486047873481911273730826962574216771288781得到的leak2是p1的低250位,最后差5位爆破 #已知p低位250 for i in range(15):P.x PolynomialRing(Zmod(n1))f x*2^350 (leak25) i a f.monic().small_roots(X2^165, beta0.4)if a ! []:print(a)p1 int(f(a[0]))breakp1 11239391699442192016394616757221620834717629054697859972076207292592548525033647125013001671320452447403380966370885392089905799108483165855335320142731687 q1 n1//p1 flag pow(c, inverse_mod(e, (p1-1)*(q1-1)),n1) long_to_bytes(int(flag)) #flag{9995eae8acaac286c7b72e50e5258dc3} ECC 这是个LCGECC的题,LCG给了3个值,往前数60个是ECC的模. from Crypto.Util.number import bytes_to_long ,getPrime from random import randint from secret import flag , p, A, B class LCG:def __init__(self, seed, multiplier, increment, modulus):self.state seedself.multiplier multiplierself.increment incrementself.modulus modulusdef round(self):self.state (self.state * self.multiplier self.increment) % self.modulusreturn self.stateLcG LCG(p, A, B, getPrime(300)) hint [] rounds randint(9,999) for i in range(rounds):hint.append(LcG.round())print(N , LcG.modulus) print(hint , hint[rounds-3:]) print(rounds ,rounds)m bytes_to_long(flag) E EllipticCurve(GF(p),[A,B]) P E.random_point() Q m*Pprint (P:,P) print (Q:,Q)先利用3个值求出LCG的参数用groebner基,再向前用矩阵快速幂求出p N 1622996210275495524415546207165111555461818617760928404877658588675495944260654951864283379 hint [713639579049060812852333231550562069742588135637306914756167956397882885703208543969455666, 1412425807767988172193658731165227963492352540089638244974790464316609610824614257502352192, 903815200254202468724285503874489144090795387999581087079208549575693265029736671535102206] rounds 63# P:(7481989061375947278244526545749845482078382398176888016051779076876133332062 : 57031893761619747497472816866393779317793294007089207619093276377523439028275 : 1) # Q:(79841674941577756246978777606456268236393494145560479454284566061677742019041 : 87857173094842296317733623233803453998634160281458363114524499136715249901460 : 1)#LCG 3点求参 c1,c2,c3 hint P.a,bPolynomialRing(Zmod(N)) f1 a*c1b - c2 f2 a*c2b - c3 F [f1,f2] ideal Ideal(F) I ideal.groebner_basis() print(I) # 求解参数a b n res[x.constant_coefficient() for x in I] a -res[0]%N b -res[1]%N# |a 0|^61 # (p,1) * |b 1| (c1,1) M matrix(GF(N), [[a,0],[b,1]]) C vector(GF(N), [c1,1]) v (M^61).solve_left(C) p v[0] p 91720173941422125335466921700213991383508377854521057423162397714341988797837最后这一步给了提示 E.order() p  所以用smart方法 E EllipticCurve(GF(p),[a,b]) P E(7481989061375947278244526545749845482078382398176888016051779076876133332062 , 57031893761619747497472816866393779317793294007089207619093276377523439028275) Q E(79841674941577756246978777606456268236393494145560479454284566061677742019041 , 87857173094842296317733623233803453998634160281458363114524499136715249901460) #smartattack #E.order() 91720173941422125335466921700213991383508377854521057423162397714341988797837 p m SmartAttack(P,Q) #706900059474724368227785304595240799804416697714111300227783044841951101 long_to_bytes(m) bflag{7HAtS_e4SyeST_3Cc_EfcT9O}
http://www.hkea.cn/news/14338104/

相关文章:

  • 江都网站建设怎样查看网站是否被百度收录
  • 网站开发人员负责方面程序员做网站美工能过关吗
  • 哪些公司做外贸网站好爱站查询工具
  • 廊坊百度快照优化哪家服务好赤峰seo
  • 吴中区住房和城乡建设局网站做网站 内容越多越好
  • 卖东西的网站怎么建设黄埔区建设局网站
  • 免费企业建站模板建设公司和建筑公司有什么区别
  • 怎么制造网站百度推广登录入口
  • 全国村级网站建设sem推广是什么意思
  • 做网站的咋挣钱宁波网站开发公司怎么样
  • 无锡网站建设服务怎么找需要做网站的客户
  • 如何利用NAS做网站西南网架公司
  • 安徽省建设厅网站域名权威发布是鼠头
  • 网站中的幻灯片ie6显示 ie7如何兼容深圳手机网站设计公司
  • 建设微信商城网站wordpress调用产品图片
  • 自主建设公司网站wordpress id连续插件
  • 视频网站做板块栏目重庆网上房地产查询备案价
  • c 网站开发简单实例教程手机网站二级导航菜单
  • 润滑油东莞网站建设哈尔滨建设发展集团有限责任公司
  • 重庆电商网站建设费用成都服务器租赁
  • 单位网站建设自查报告范文关于网站建设的电话销售话术
  • 做企业网站怎么备案flash网站引导页面制作
  • 用DW做的网站生成链接洒长春菩网站建设
  • 成品网站源码68w68游戏wordpress知名博客主体
  • 从化网站建设在网站后台管理系统里产品说明怎么添加图片
  • 深圳建设网站top028哪些网站做的不好
  • 怎么做公司宣传网站wordpress零基础
  • 端口扫描站长工具本土建站工作室
  • 个人网站制作源代码下载传奇手游官方网站
  • 三室一厅二卫装修效果图seo行业岗位有哪些