安徽大学生攻防赛WriteUp

admin 2022年11月21日16:55:10评论55 views字数 8961阅读29分52秒阅读模式

EDI

JOIN US ▶▶▶

招新

EDI安全的CTF战队经常参与各大CTF比赛,了解CTF赛事。

欢迎各位师傅加入EDI,大家一起打CTF,一起进步。诚招re crypto pwn misc方向的师傅)有意向的师傅请联系邮箱root@edisec.net、shiyi@edisec.net(带上自己的简历,简历内容包括但不限于就读学校、个人ID、擅长技术方向、历史参与比赛成绩等等。

点击蓝字 ·  关注我们

01

Misc

1


png

安徽大学生攻防赛WriteUp

图片明显短了,改宽高

安徽大学生攻防赛WriteUp

binwalk拿到zip,解压拿到word,word在解压

安徽大学生攻防赛WriteUp

flag{e6d3f1b4e6df8db6632cb9bb06f86332}

2


mount挂载硬盘,然后全部取出来文件

安徽大学生攻防赛WriteUp

gzip文件 用gzip deocode

安徽大学生攻防赛WriteUp

安徽大学生攻防赛WriteUp

CTF{131Ack_3Y3_gA1AxY}

3


取证

editbox

安徽大学生攻防赛WriteUp


flag{4e0fcb08-48bd-4b70-99c3-a6a029c5e105}

02

Re

1


修改eip为flag函数即可

安徽大学生攻防赛WriteUp

flag{i_has_debugger_skill}

2


1.打开ida分析main函数,根据上下文信息写上对应的注释

安徽大学生攻防赛WriteUp

2.看到后面提示win的地方,有输出flag的操作

安徽大学生攻防赛WriteUp

3.将迷宫数组复制出来

安徽大学生攻防赛WriteUp

4.编写脚本将迷宫地图打印出来
map = []data =[map[i*66:i*66+66] for i in range(66)]print(data)usedmap  =  [[0 for i in range(len(data))] for i in range(len(data)) ]flag=""
def DFS(x,y): global flag if x == 64 and y == 65: print(flag) if data[x+1][y] == 0 and usedmap [x+1][y] == 0: usedmap [x][y] = 1 flag += 's' DFS(x+1,y) flag = flag[:-1] usedmap [x][y] = 0 if data[x-1][y] == 0 and usedmap [x-1][y] == 0: usedmap [x][y] = 1 flag += 'w' DFS(x-1,y) flag = flag[:-1] usedmap [x][y] = 0 if data[x][y+1] == 0 and usedmap [x][y+1] == 0: usedmap [x][y] = 1 flag += 'd' DFS(x,y+1) flag = flag[:-1] usedmap [x][y] = 0 if data[x][y-1] == 0 and usedmap [x][y-1] == 0: usedmap [x][y] = 1 flag += 'a' DFS(x,y-1) flag = flag[:-1] usedmap [x][y] = 0y=0x=1try: DFS(x,y)except: pass#ddsdsssddsdsssasssaaassddsdddwdwwdwdwdwdwddwwawawwdwddsdsssddwdwwwwddssssssaasaassdssddsssddsddwddwwdwwwaassasaawwdwwwwwdwdddwwawwddsddddwddddsssddsdsddwdwwdwdwdddsssdsdssssaaawwawaasasssaassddssaasssassasaassdssdsdssaasassassdssdsdssddsddwdwwwdwwdwwddwddsddssssssdsssaasassdssdssasassdddssassssddwwwdwwwwwawwwdwdwwwdwddsdsssdssddwddsssssasasssdsssdsssasasassdsddd

5.走出迷宫的路径输入进去后即可得到flag

安徽大学生攻防赛WriteUp

flag{e844ba73-f7f8-47d1-9706-e01cc8018c7e}

03

cr

1


dpdq-模版题

import gmpy2import libnum
def decrypt(dp,dq,p,q,c): InvQ = gmpy2.invert(q, p) mp = pow(c, dp, p) mq = pow(c, dq, q) m = (((mp-mq)*InvQ) % p)*q+mq print(libnum.n2s(int(m)).decode())p = 21505610427819984064279577043353746817116710224908463198333168361814020516407211211968800263966803231138382884499574672542237337649833223998905513887762124776152001678183007082024585716923974762062032710828284769355472911783142678452912273176853479708132128922278641534594989057553516513666943610300470212678142983916669868309911548100541357093518850709607457700506736745923961132415143936897190572894100588748110807901123394405423554118714377943513165452588889406039206258399649323895269525023253132294219q = 7773714436954193420341301459402666753579133359798356201269174251243571981547443474292351698207027639997745697217632554140068595435066222954621623202293659485241404770815309728346036014380455580496977330986790005393360004563176988983914341852906289811367204791842252713067680198441874815168861464383580469114437586924296835551227896353268046348351917973291553354914159710797058072800101420540047291621417969935889089947785718573862556891057011817914964538001067337785973274383865056338465007873666304637976641423221623903958538214516823265490426304496071066000124195941456833435784149914413087537162720542219383463775630076740950235120392492671821226128557930680548364572838578595986055126829201220613425618274203003828217396557c = 140854419986163667970289059830065805164753398408312186336368834852030465939019604847418475706216729220665968458225777408324204275374111778277745406552799854218774727758306980153782739298950892119458211513858901975204401631137499719197786441955670677780431176532470905184871623052276714964709680401345424653402774840115505253598595283541857129142945339058210087774797271061404495650661205496706212556313570398515907466489891465250129535222094767522278627827611237072132498534044125692307311914407329676437975207983913622745852687158140914143964214565354674328009420930207293589972291175421275993144852631843686489189883215316953872827338922737947932247421978056851931361677104574058460997718236471815708856964984682936537299320109758983113401823195041502518179320871291497080511473810605786781937561891324593249376552461405351856605911178915026338045032053332822172478993836096122352408248997188358070781488363988235500576577496926594992219496618123954903402457892186167558145280162718027380023073233112471736529597298526379704425788025898848152222972730624685604677346513250691295653513396568678917219686768359467528696380971513142855804511552435252965194985014251159206541232769384813504656238214909320063634463098258690241017264152dp = 11401054804220173738946390966847469054334238369992823067319035072750756501244368011179089619165701992197872574866918266365678838813278080086332501861794211868450266968381073257211379925062279004731422929109021255572982450325671135696903795096763619008794157304662238452751396918010274772278930814597548515636806686805938292942300789282469580707954574500733959600628745006643302341953884995400399610367161006079990874005777365689946686059792366865578549834211947045538034732164081604428296143818116588010289dq = 5005106342702887614091605602651249314647071291790155763442850248035060551037977399655768073874967397002378464680946995658854302958299195016451989145734215109621226417280662973546078332282492388645352327056755589477367269672823233092226521946766464819574447615798338274266503404999517062130785332730054190377234362541123781572540890100592008845614805847094166430626331433492418976148939981096294238632487795587450997748398098493106252202191764509647067208530952551767962041074531484768266314787634822932146151967503236984473419266975172414218441923562509951644738705951534439227556158960412814772084748401658438815287188713523065384761891475361706645981974006179660631269595749918919504739791033686390956366460141140875161531121decrypt(dp,dq,p,q,c)#flag{a5f8402b-c731-4ce3-aafa-e95f53ab2694}

2


拿到两串谜语

安徽大学生攻防赛WriteUp

0x十六进制,末尾L长整数,盲猜rsa

试了几下共享素数N不互素,补一下e

from Crypto.Util.number import *import gmpy2
c1 = 20583941427949093493118071293223063783308837041009643876680551821524087252662093439568557886905474555634854756546927922428584601094053445434425745717147956570939681573535969818826584281541017580639950277594303729614847698099425879950773462164863831055555962748506404848953815582343881183674772737458170233681651110641139619703997450780947839241820461492801094048344547931396934489547361070045573924423751563034716234740263956819148181826851386477036473548127667430700858452437718149197802650010125370795330237784416223739354944675303012719397554038417602113070935915914852273388161837200121706730142399558206580438921n1 = 28942041378752873613498682895461704524205753246433830816803802764755339406199529026625736548438988651761234960779282201813559003950104588850553664814874739727692569001949089087858489660813774631424839494419277047985947288084951001823247955228533969098091477001462595147322287156220228019269504415869645732095579747012186666884474786421155504412057515576033691952980559358081379944700970797273925846704958421409191582272282177825099206781119657033602418860281081633682023191412685388390423979405592187035401641329990969889958685482139481129989151917902537497825619496198647499464908559398237025365562582880338345905773c2 = 7227205058970917253988697272348629072390742730442079261849578753481528018734243776906928810426466711340893496456684228915781322418699561381615396497213577612459731019244931946960529198136200125770814185660801019344503988528919155161210054032498490653811789195374068721678191531695543450594060714122907514239407158295416162414682815878753567087081549537449887383514261265616895987906117428228003018537805648300967622300154073730197361122372486381575741009333643822321470837038252958232982771343391969736104839542012120480213479803517978736879018055329258472236889803298431730999776160072273717790635931420082199722637n2 = 18472619386119921098063602750766409564120904078720703944719072416731760051248151325131154100954778056447834009406330428335028872249863046284495061718434971255253361051726134062612606955579310986832613388937626927763316852517062213938962644017873276980782373146902376416049107843120328914450438851217407510795607149055956619000499773971192981608276828988640098563504566796588712879216893620371181362602771841009871176509267913418966578678280447335170106267017712501072595986597204652731859164012966111251650153717654643071183402267794648610132185106594057257258857734796205184320940954506572252327466572125289840437537
e = 65537p = gmpy2.gcd(n1,n2)q = n2 // pphi = (p-1)*(q-1)d = gmpy2.invert(e,phi)print(long_to_bytes(pow(c2,d,n2)))#b'flag{real_man_wear_black_suit}'

3


lcg 题解:
flag是第一个seed,然后用seed = (a*seed +b)%p得到下一个
可以列出两个方程
s3-s2 = a(s2-s1) mod ps3 = a*s2 + b mod p
p = 128987642185762631932220495481391630226043626316907538452726762212389321270926330459165141807985514151s1 = 106251204638652955228263443087141132193772679785945812348606411450231736217554078867269536273823941317s2 = 108567696415488189015128528616460098558795853372868300042216845912719954168424158333151674140021074736s3 = 67151728692480947558775166912293436958127879133219560190637295597591667555742533671408274392843074079
from Crypto.Util.number import *import gmpy2t = gmpy2.invert(s2-s1, p)a = (t*(s3-s2))%pb = (s3 - a*s2 )%pa1 = gmpy2.invert(a,p)s0 = ((s1 - b)*a1 )%pprint(long_to_bytes(s0))#b'flag{9c0ccf89-a555-79dd-e40b-61ca741c9674}'


EDI安全

安徽大学生攻防赛WriteUp

扫二维码|关注我们

一个专注渗透实战经验分享的公众号


原文始发于微信公众号(EDI安全):安徽大学生攻防赛WriteUp

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年11月21日16:55:10
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   安徽大学生攻防赛WriteUphttp://cn-sec.com/archives/1420847.html

发表评论

匿名网友 填写信息