HSCCTF-2024

MISC

SIGN_IN

直接foremost分离出第二张图片
00000022.jpg
一开始以为这个HAPPY_NEW_YEAR就是flag,套了一下不对。
怀疑jpg隐写,尝试outguess 隐写,隐写在第一个图片里。
outguess -k "HAPPY_NEW_YEAR" -r 00000000.jpg out.txt
image.png
打开后获得flag
HSCCTF{Welcome_to_HSCCTF}

катюша

下载解压后是html格式,用浏览器打开后是喀秋莎歌词。改用记事本打开发现color有规律image.png
提取后将10位以上数字分别改为ABCEDF,然后使用hex解码得到flag
HSCCTF{You_have_received_the_letter_of_Kaqiusha}
image.png

LEARNING_RUSSIAN

下载下来后是一篇俄语小作文。拿谷歌逐句翻译时发现有词汇错误,个别词汇多出一个字符。image.png
使用GPT改错image.png
提取全文重叠字符,得到Я тебя люблю
提交flag
HSCTF{Я_тебя_люблю}

PUZZ&DRAW

下下来的zip报错,尝试了bandizip和winrar的zip修复都没用,只能自己手动修了。
image.png
010模板直接把开头认成了目录区,修改开头将50 4B 01 02改为50 4B 03 04就好了。

解压完成后是一堆png,本来以为要拼图,提前打开了PuzzleSolver,结果只需要24*24按顺序拼好就行了。puzzle6.png
passwd:puzzle123456abc
解压出来的文本套了十层base64,解完以后就是按键精灵脚本。
image.png
在数字前面加上MoveTo就可以运行了
image.png
十分抽象一玩意,这东西只有每个字母落笔的起点和终点,开头还不是常规的HSCCTF,是flag。连蒙带猜蒙了六次后才蒙出来
flag{HSCTF_IS_YYDS!!!}

CRYPTO

FUNNY

image.png
直接运行就出了

REAL_SIGN_IN

广播攻击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
import gmpy2
import libnum
e = 65537

n1 = 13266094979118433615107077438835111371457503704538616496563510289250600197984029767950953071723442381279904747724269706555801425883117040972832035397268347603612025741219452353130266755150965019441092380030226256032720651858600172996344598355816134478110939124633509594465443169697188695226358357129879780253706604232278678465680358018262084198108533077519049507811758423498512565521615931699494491595078723098101084217611204442585182103261006086144344612398896576066999950905966920722348056083426326740287336766359383868804991393096926457607860171709146742941740864780610226463852018204647096292737915760430291250813
c1 = 10454892625278317641789872724686322205927252335791803070937784201169059579634108503308033729970364983743915474860354063759051514315619953792921367621385574749886778911471839079815820922430263016140141364094131496885155882486798302404238523986615316359385759537428069831379320707742928167131988641527992674882901567191207763547432299532710945549959580670112346830919500694014972444803904248586178887470465867991650480024904327432717911313867713120525202669101524778826445503383549733326775312427637839488477432162027468606568090607495541492335140760946449358303999218277269859230888292780234275495274787996001069959971
n2 = 13561524319281645924409429988746244285924512610515302181526524036825687984904507677894611353344735741110533280540372734178963216876945066232927791369207852762146826883906093804958723203309030840804897999205074456325062789110452940484077408580876939074453733126571662068654441714639301799127584606087971553812926212292460761915985786461807649546286330834719746624387850833859250717790492671884734393055454074719585937904232516659582736211933280011591605069686791049628396762690038333975652490908544846890333889140489210242676577675968427325105786641017561929481335597681693818435892140856959673754213600282444761045909
c2 = 3809937396638973793281111150837774607768836561256425490071061814543315217182689579329457784159377040740840790603579270672790822179042079055887400637582022659400594844425891666493759469522229692267103516295923589666151948947533002975509430505778081264268698292606209538047240829756919764958544518311993684790118122163859571923899116815269989298822142104789156965964388346807167061332155392766290531602747731916010774318400533536413925876554324550780136191458776623029231802991319498346243427246484439391940676640693616519788950250194620455331557435567742874072637005171754550020619361150150760807391307377493836703076
n3 = 20819967432768567938753694422911303382713641435728476601586838051751312782014589687874100683447016549893853820399247909653519950995166805072380656652093579604808569443345700131756901813968185726839863492859231569896747987531341038527577030274701158504736611486411122416871876820360598851918276248520018793494992493852386399935919098185299268920688465446256283333918993392163947559470887074488117510961172278330026050882249897526926951246915378841961743261451053094912730850754242934166148766977209435597121171360066632973035097557482087715745940551760350028517912402795353929678770383484462337839762404384487582066453
c3 = 11563829913521314742585136805475993461403465700108053759771484386843765447294825812595747844564874801821547385942939017711043792590427266240133027831461974927558652665067213878683577605892319949704019193752250409813868906421753286690558646631157080887991363101311595921894128110588310204725909211948500421818595333014728114922612870236792445180757918034580210383348205174677492784034863701447097219480133095005954043490631339361280493810083309703940614371501369647446672052159714963350601039281652141446041256158792981347520865671115091097366786582678000769990989485879756562971825181583852052194492966890258786944315
n4 = 19517605474769458566764053169103203900538883167125789442948194023333599294853531273087386563161613748743818343948170765525802041313369094525708034240492038517491037697421019698672940028061489377078569027204940525741751607758706837789276571889269840463242449627036923444536643477208091664006240106337894541529098279162689793633659155131183323675883233214674098857553487390844015483326711766090826364639791072315148015450491509411705543419711632894282105698410629463141048089867016193055384530738113369352506445669521342292860468297676826301170714618519525841753642713267083007541894156522819536935129135488289198694889
c4 = 12720867554077215609167247949706745145667570273372296302246080668969511222297653722462456233088262153562301044885409538816931281414687572296907970004441185871229786306419586839050961363065587925188623309437687878362349712010861419409491068481019724226070296781806932012179356550421791040143093709543578156689726256993615533679238619784087615967419616376736870824897695863732260595608905898821074250285903989668303290834003098691902990265526695777899489911426855957844561961729063644070823142386451495647995297413399808476505524581260464059786283824394788336780567702950051743361294131648282343329587709077103035316720
n5 = 15315765971812428868126611109300419975777573811870059860288938012581131143314666287089472408729190306740351316922426244732585067377217502116440145450875665683575473308102742095244349804293311006664351646952181210686812748912418175736013835669191549110546127830831456068811493086787520032272004231879188572130659936937680177977058975692716116961651093033986073297040678707534300965722868263825444198679243070507413216087205293997006805636338567585815764233374917745809135568855524993022583535608349280044851332779641619210310837108819273508771161881712796235518243572549756276118053736270122787899173695729089911000177
c5 = 1996576325989768324317887012680560370528949194626393664650182754791578697786369958145137743555674312911707989139883926276952465377328602829900403114611234863417183707678398047030046855450074260654432278156903388641948696716193734714839957624359533486844023111115297718398319120718217043728064595217651738180806194912581964346594873253580010279706758241793778842399330631789750327865945625117967957133863637176404309782516880511747771793712203903185512285327103080133567660391921038681393551945607152726063692641742286406772926103324078574181176632321287759066802783643421564667257668981655199672490410258387124896839
n6 = 22501623321194869030526666823514739767749207843970334295553523279818676682652976959807729381646792676134988101065783136759904452189288813040860021497429422935571083993146794186207853146483681094375360774768406629588311381375206331368965836725531623084019451921330442379292718421616088275750226791314378297932358311378533569620671423740598033204639634035814689781736104197321348154999759210532651451336192376531975837284751978609197068573278551236896713762616106051882505752287773203197087939983952212761603430314087275042009367400077728025285967811883773835952547025411853395307325959904214255100115763377527761863243
c6 = 16972901653690784382193404778525843883847230468707217844241233207197480301434902629018088740822889948972102445668033489181324675531537650785766582307112083721410506834279363487814759021815005839906656731069521758605293428928322712895510490968448490116732590950772037788323801838566829526879837783860631971103738986788475652187080935944428662363573097225322630574705977616143315497272754050608117449938161772409924992453640310621899223691851303921323537779068346575997621024660907750345496836548887894110692437965970524341315015139872598871247336564148953981001708145253728789799483753931039894943324458172207408514055
n7 = 20222972180177072345801227937253710431874005900913732040381986459681923475683145372990375296354647420667483866455563976492495863306613645199351725323069254033914660444884681801701527128578914815647228265457580192591405358646605069362025887082090772778349481109768859094222573588734354390770166651349176555216207359309348018342505464249804607873118984688190648392606550835717828160317062604597079101529586592809846608153548090689114431569844519317969076852156023429809918618137153901636552629572816865533796914796916912143735510069871682428043277595493567381686086440480398579063801490541087200975224372047447666853577
c7 = 19248329020030453774384696880312801243022181399316695013193573740699955812434234453445733160128408889312090775734047782876100145988183327884917215679382382881065419870764186721970622248713761494850863082727373673264251951250813933154161422645331713437130381414540777017708015790836797014483890216068812718266206449620134392843370036352310247384624064366465809379383305877737001168693796305842850301708205795174536047495356081533121119809621200677554802850741327026857766466801847093397207492834507197621929666294565502206253758771807936447505283097006026148803103761799795917848061959407655084012166916418019312249784
n8 = 28799545621025859784610107508239196961299975467825740831913751504915874851330462439158635575405356818113410333683180082332165697120427112955103148744439425445183885200419323900649247390987373643732545351428341672132606990651983217136427779727640093677134233750683573339125630816150512829880758197582740742903567508671599670638441690064624970884849155079924261319378412468315205937959638074779010811695132863607314175199659821450983825173738122749043063821539706648079731459596593171608003970504410762959266052601005965264083020025264976022719772719760327913949451765549596654112776579032915566112007668167772800022899
c8 = 1557912453709476966737076991561069916132026563623952214325899450684779611396005511525194425002377424080593548871717093344298154722414402662579348749814362372502553596876087924405512346139642130044966150910684629355033505918013408065432489689359533653824531829749196503353303426506457519870729578421517704788083837871239684468506646791031429111449024396111145925900274462731352865657439734650971847748974665555525054155117163435567228916046859498167502129739768590572170326191362542459346405142436764480239930123323175219488501180973820200030365386979265642090761227134669853119027964377516064450203673169996741108201
n9 = 10724722645304259715795299819065674754042984013786210584506231300619560676108475536395272046569973743641251757746061197828519780315618458377103563062231183483417813026164932742828160245936263717653018746001798106670074713826425538758327538077666818411803556790303118703675214570232032363741244652199877829850941356975349610433270602500949664737614829264570720376982697613497917773407899889472415398738368753150300782201701629840263791099898799223939097237737763305744244520913831151361155926462086252389196548583215275230652627205709362921989235487237437830519479308853639024184940767904019468405024567279269194660457
c9 = 7054636121132343583858699301095750714111235817920115459468707884725018199621185268565462099537583727231123935665880304441155106987655834264363622503952228720525242179508079016631089564472694196928292967592007090527901832440980478605545275893294775905732209796463597105116676363505607644384293210905609044898854823349412282236466031666385339991490559120640881321780940909164095426401350314009757434019464208207922992311335823038396957805698822367795673327054284423260967631762122524511318733561339982590040303505605155884427567432712042870632816967182611225212150848091424300840160529323960243459920269872536666352976
n10 = 16304817901397483417456609341516124523232426780023397228272913044723365389571327797134591736977502692057727416394924310828824378024812777529367342707896494815960255682947685036902235997899886291633609041685897197272675911304941501067794795285949540313990226409651292120126492714998892290044111541098365692731185787360609198921681736777103794430653696698141195954719030883935151980847339939213040373252819145655067286986300641668994700390921458682571619409488233289211738521046085311253119526685912893458131534718050802684180285138809217274273877376347024021056317566312186133916744533463879779997794540361760393219489
c10 = 6039122660803656157700054739064564338439549484695206214016006129508782362229842967602464077735874540107161459041835340990108817139672137870642935613531313583963930144871458733026396223674801557621036949312116639217447114899726858984281194116508244403985568785765273838572470898925521147022021516862658967584135454474355381073026066426450614788381002057980590442338766869104957577338546687759141228942149374485785893539335288536729328218172278370763183603422629799846611737710865681572257803448960656692506773086527389616178693152885260795303008111935277529561576915114165678564997923634906377059491989399467738069641
n11 = 26625591570108917991847624024325819020320989255483608230644879476517915211995542896341416515605576928392317717654695767006784744751962205355107012859426134474074616134986414248054781712130892076462288761672616993287474215271046602443215449210026303978249752825306035097841429567784265656890801589418315449927543660131967365276637662563112328427813183398517944210120851841495001293543971765864382060100600179108814852829473884481867272716907064729991187798328733196676298681328399250356028155411865948758466337763025886685436650643428510593697176416735568250615673642866668416526682341721998481502482877972649018501469
c11 = 20247005397625616228661928392695469647749434533141783786437968083066137357689767280753532605896419173332597529708801946906363780592876111104850302784033136335456683361128603662454728234349563238948801712907903185993561076754164552845510795293521029798357876214260903355702688269527465118808832941386890598851762900876512383557653940846232884627557957652638581022140825373023173482471791720148792301241581919765510220083079365311297081633979398855966991069020584462613981094888736916444009463104235004451765533162593406749138640537670707679905027165914805299755934758172748227146495107002603546338597452964759860431081

n=[n1,n2,n3,n4,n5,n6,n7,n8,n9,n10,n11,]
c=[c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,]

for i in range(len(n)):
for j in range(len(n)):
if(i!=j):
if(gmpy2.gcd(n[i],n[j])!=1): #对不同的n进行 欧几里得算法,以求出最大公约数(p)
print(i,j) #输出对应的n的序号
p = gmpy2.gcd(n[i],n[j])
print("p = ",p)
q = n[i] // p
print("q = ",q)
d = gmpy2.invert(e , (p-1)*(q-1))
print("d = ",d)
m = pow(c[i],d,n[i])
print("m = ",m)

print(libnum.n2s(int(m)))
# HSCCTF{this_1s_yi_zhi_xiao_jiu_li}

SIGN_IN

https://blog.xmcve.com/2023/07/21/%E5%B7%85%E5%B3%B0%E6%9E%81%E5%AE%A22023-Writeup/
Simple_encryption的第一部分一样

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import gmpy2
from Crypto.Util.number import *
c1= 15258813801182767957948809411445530114743580005667897427534365589851124401953952700888032330082278736578651674105204553630115929829327520950316902504433079359916257355896937562916556083469602985115254272625361902512966905366505705193603115063442567259505806926885597909346860116511116593562896739734663097631870026814495999405532329662713707140991693625596972404484374296588505369466138353714461787853643947646268147993568111775200297788443085689323703846485412670213780175163562460311256388185948613714551169278328397181176821021494625532973065606678522088011055084956579073665474553688838705105692370860815836968744
c2= 6812252973072040071827764212287068485224506664962923279994614164374840095630460681859406585838865259535150445414577263383839286602668872146630568583093203237350230531896113453730563536559780725054737930704052263836882704963528437893607940373145674848731274193348770450738356162141551719346994698149112827383011042635625991946491545698464513315705253441372356270248537025391519052228332747340090073726648071921053097612521949040588826684887577900030607964457543549015338544684381220552952995724701579427363382069065679545196826947900332605250858694574423497096207350532949517663416877954484913664168104807510052994343
N= 20807018344486474639307429177279931766730766338068107239915507489300098048895435781756514265069820029246382818970733268271541419058569567895618666922180270584064313671561310704041755422624879418184008100473568396190523033929320245716340019444764233261191278982354931492880877566550189410854395486995604287009460090861952156686772486228583819235930673806632618770875593810617784176409247510465542253043645164164225524491704753384493817563203956665022724674535516870726747405974392352500432805602085261375142216501656342533659731098891481615791354504343987459436489040377662127479793769523359343534307819013289699807101
g1= 13669954919111873554762685722926885077118528999414402163291237939605095249827361266585404348819936899557500751307328088850133462100189908649705354225171362748567332828733792410877365393472368767642223613483944864421225366984013053159643284842823692865975521013400160643858123645513020647367033022539177063702511618272018019345686324322865461583030805528508961559861228807898458344763909703624723082316946660539208262816734999777236686904487167545596412866146192769859422435979617441355968077981338491466670291310491623996943880557071723073298267310617017933994938481600905833829730599911183096116409487608858717083764
p = (gmpy2.gcd(g1-1,N))
q=N//p
def decrypt(c1, c2):
xp = c1 % p
xq = c2 % q
m = (xp*inverse(q, p)*q + xq*inverse(p, q)*p) % N
return m
m = decrypt(c1,c2)
m=long_to_bytes(m)
print(m)
# HSCCTF{Any_restr1ct1ons_all_begins_with_his_own_heart}

STAR_CHASING_DIARY

key.py是Paillier密码,还给了pq,用chatgpt生成一个解密函数
image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
from Crypto.Util.number import *
from random import *

def L(u, n):
return (u - 1) // n

def paillier_decrypt(c, p, q, n):
n_sq = n * n
lambda_n = (p - 1) * (q - 1)
mu = inverse(L(pow(n + 1, lambda_n, n_sq), n), n)
m = L(pow(c, lambda_n, n_sq), n) * mu % n
return long_to_bytes(m)

p = 7828612943367317778189697443061863547768704021648982642807960201410438190347546379219450386530108335470584219657007036386835647156694512102467911388214639
q = 11560196429251786803557082533869761370530605728500211999842201987445533038949033226473164866960007192683170489064961432891988337343103657552186800680461299
n = 90500303393909187644032814999106308917993510706969185754286143880339911149033324457296527524577907915720151312986485020864488500228510118775352140800146688665247844676592819233505117533611718465108287340613759986801626231304195885309622544143588908912018881784947443338176542286764685393158311606626544756061
c = 768905250861905487717845092484035532140840941871031779930259407348955511757335716790249355464829607714399266689960353955065504221985891074636544161678177920296971444880997864168042745264256952808480926755620637239135808617643874771066244234690401223758004286234917537720362007827248701308605961814972773704288547887039586934111562590676930853945316673164146667949991176600280451163710564978897622310650541491271961315592017251211248379608602287809736613530069187936569470129814949302440734244885473716072898519354127964155042421376782226235081303957997587618278341829891036314980185040102049478608445519994654780162

print(paillier_decrypt(c, p, q, n))

得到压缩包密码:HSCCTF{this_is_a_fake_flag}
获得key.png。
key.png
光看马赛克也看不出来什么,先模仿task.py还原一下中间图片

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
from PIL import Image

img = Image.open('enc.jpg')
pixels = list(img.getdata())
enc = [pixel for pixel in pixels]

img = Image.open('key.png')
pixels = list(img.getdata())
png_key = [pixel for pixel in pixels]

for s in range(65536):
enc[s] = enc[s] ^ png_key[s]

image = Image.new('L', (256, 256))
image.putdata(enc)
image.save('flag1.jpg')

flag2.jpg
搜图的时候搜到一个比较像的https://www.cnblogs.com/tiandsp/p/3946775.htmlimage.png
原文中说这是把原图reshape成一维数组,然后再按hilbert曲线进行赋值,生成一副图像。
所以我们也使用这个方法还原图像

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from PIL import Image
import numpy as np
def hilbert_curve(n):
# Base case
if n == 1:
return [(0, 0), (0, 1), (1, 1), (1, 0)]

# Recursive case
t = hilbert_curve(n - 1)
return [(y, x) for x, y in t] + \
[(x, y + 2 ** (n - 1)) for x, y in t] + \
[(x + 2 ** (n - 1), y + 2 ** (n - 1)) for x, y in t] + \
[(2 ** n - y - 1, 2 ** (n - 1) - x - 1) for x, y in t]

# Create a 256x256 array
array = np.empty([256,256], dtype = int)

# Get the Hilbert curve coordinates
curve = hilbert_curve(8)

# Traverse the array according to the Hilbert curve
for i, (x, y) in enumerate(curve):
array[x][y] = i

# Print the array

array=array.flatten()

img = Image.open('flag1.jpg')
pixels = list(img.getdata())
data = [pixel for pixel in pixels]

enc = [0] * 65536
for s in range(65536):
enc[array[s]] = data[s]

image = Image.new('L', (256, 256))
image.putdata(enc)
image.save('flag.jpg')

eee.jpg
HSCCTF{oh!_you_c_yhhhh}

BLOCKCHAIN

BONUS

搭好合约后发现只是简单的整数溢出。
image.png
调用applyCard函数初始化后,向topUp函数传递2**256-114514+1的数值就行了。
唯一问题是我本身windows也有nc,一开始我在windows上nc连接题目,填入地址后一直报错,换成linux就好了。不过也浪费了几个小时时间,希望世界统一UTF-8。
image.png
image.png

REVERSE

NO_PY

python打包,拿 pyinstxtractor 和 uncompyle6 解包和反编译后就可以看到源码了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
from gmssl import sm4
from secret import key, enc
import base64

def pad_pkcs7(data):
"""PKCS#7填充"""
padding_len = 16 - len(data) % 16
padding = bytes([padding_len] * padding_len)
return data + padding


def unpad_pkcs7(padded_data):
"""PKCS#7去填充"""
padding_len = padded_data[-1]
return padded_data[:-padding_len]


class SM4:

def __init__(self):
self.gmsm4 = sm4.CryptSM4()

def encryptSM4(self, encrypt_key, value):
gmsm4 = self.gmsm4
gmsm4.set_key(encrypt_key.encode(), sm4.SM4_ENCRYPT)
padded_value = pad_pkcs7(value.encode())
encrypt_value = gmsm4.crypt_ecb(padded_value)
return base64.b64encode(encrypt_value)


if __name__ == '__main__':
print('请输入你的flag:')
flag = input()
sm4_instance = SM4()
flag_1 = sm4_instance.encryptSM4(key, flag)
if flag_1 != enc:
print('flag错误!!')
else:
print('恭喜你获得flag😊😀')
# okay decompiling .\ezpython.pyc

反编译secret就能看到加密后的flagkey

1
2
3
key = 'Please_Do_not_py'
enc = b'YJ+70VWYioYm3EhF6qdScVXBpCdPm+hCS/HP+Gj421RyxkZbwzni7o2zGG/Mis4Wr6sbXYr4ufnKwQk7vrG8yA=='
# okay decompiling .\PYZ-00.pyz_extracted\secret.pyc

但直接解密还是不行的,gmssl/sm4也被修改了
image.png
还需要把key里面的每个字节都异或102然后正常 SM4 解密就行了。

Web

CHECKIN

https://github.com/maple3142/My-CTF-Challenges/blob/c01234c196a6cf640a4b8714bc46dc42f61b606b/ImaginaryCTF/Round%2028/Filter%20Master/README.md
预期解没打通,用的原文的非预期解。
1=resource=data:,2024<|string.strip_tags|
这个checkin真的是checkin吗,怎么这么难

LOG

直接进/flag就能下载了(?
啊?

OSINT

NICE_RIVER

image.png
好桥

город

image.png
好俄

JAPAN

japan.png
不好日。
识图没出来,不过左边有一个アーラ浜和一个アーラ林道,在アーラ林道周围转转就找到了
image.png

WELCOME_TO_HSCCTF

Welcome_to_hscctf.png
可以隐约看到旁边建筑的电话号码是03338 764,通过电话区号可以锁定LADEBURG附近,然后搜Kosmetik慢慢找就行
image.png

CAR

image.png
好车

BUILDING

image.png
好楼

LAKE

image.png
好湖

FLAG

image.png
旗帜上写着cahkt netep6ypr,谷歌搜索得到位置Saint Petersburg
然后满圣彼得堡找广场
image.png

CITY

image.png
搜市三院和市精神卫生中心,多试几个医院就能找到菏泽市第三人民医院
拍摄点位于米漾米居酒店(菏泽牡丹区市立医院店),但只有手机端百度地图有符合题目要求的地址,网页端都没有。
HSCCTF{山东省菏泽市牡丹区黄巢路7号}

CHECKIN

CHECKIN

image.png
hscctf{hscctf2O24_w3lc0me}


HSCCTF-2024
http://example.com/2024/03/11/HSCCTF-2024/
作者
pjx1314
发布于
2024年3月11日
许可协议