容器密码:GQ7aXryvOC*M8qG*eXa19K9*g&jtHS*Gtrimps@Qx*aYt4oRwwK*HeN0A$#EPv*u
容器密码:GQ7aXryvOC*M8qG*eXa19K9*g&jtHS*Gtrimps@Qx*aYt4oRwwK*HeN0A$#EPv*u
比赛时间 250322-250326
来自ISCTF2024的密码wp
使用字典爆破压缩包密码
cyberchef 一把嗦了

1 | from gmpy2 import * |
其中q=next_prime(p+(p>>500))指的是:$ q= [p+\frac{1}{2^{500}}p] +r $
即 $ q = [(1+\frac{1}{2^{500}}p] +r $, r是为了将q凑为质数的整数。
$ \therefore n = p\ast q = [(1+ \frac{1}{2^{500}})p^2]+rp$
$ \therefore (1+\frac{1}{2^{500}})n = ((1+ \frac{1}{2^{500}})p)^2 + (1+\frac{1}{2^{500}})rp > ((1+\frac{1}{2^{500}})p)^2 ——①$
易知,②式大于①式
通过开方缩小范围得
$(1+\frac{1}{2^{500}})p < \sqrt{(1 + \frac{1}{2^{500}})n} < (1+\frac{1}{2^{500}})p +r = q $
所以,的下一个素数即为q
q = next_prime(iroot((n + (n >> 500)), 2)[0])
1 | from Crypto.Util.number import * |
根据题目得到一个关于k的多项式方程组
用sage求解多项式
1 | var('k') |
即可求得k,再求得p,q解一般rsa即可
你知道什么叫做第二重要极限吗?
其中
1 | a_i = [1,9,9,8,4,6,1,9,9,4,8,1,4] |
使用在线工具求得极限后md5加密即可
维吉尼亚爆破密钥

1 | from Crypto.Util.number import * |
创建n的多项式环循环查找n的因数
得到p,q,r后计算phi解flag

共模攻击,但e1,e2 不互素,套脚本
1 | from Crypto.Util.number import * |

格密码 NTRU 由于f的bit大,需要给p,h加上大系数k
1 | from Crypto.Util.number import * |

题目:
1 | #真签到题 |
明显共模攻击,直接套模板
exp:
1 | from Crypto.Util.number import * |
题目:
1 | # 猜猜我是谁 猜对了直接秒出flag喔 |
思路:
根据题目,q已给出,p为ps.txt其中一个素数,那就遍历ps中的素数,判断是否是NSSCTF开头,即可得到flag
exp:
1 | from Crypto.Util.number import * |
总结:
因为p*q后数值太大,需要用gmpy2的大数计算功能
思路:
根据题目,需要使用pwntools连接,连接后计算665个共模攻击的计算,得到flag
exp:
1 | from Crypto.Util.number import * |
总结:
刚得到flag发现比赛结束一分钟了[悲伤]
解题人:g0ubu1i
分解n后发现为某数的次方

根据欧拉定理,phi=p8 - p7,求得d解出题
1 | from Crypto.Util.number import * |

解题人:dmw

题目提示摩斯密码,看摩斯密码表

根据flag外壳可以推断
嘤嘤?=. 嘤嘤嘤=-
得到

解密得到flag:ISCTF{HSBDH_SFJ_JDNFJ_DJNFJDM}

解题人:g0ubu1i
获取附件后nc连接,得到pqec,编写脚本求m
1 | from Crypto.Util.number import * |
得到flag

解题人:g0ubu1i
nc连接靶机后要求计算d
写脚本
1 | from Crypto.Util.number import * |

解题人:g0ubu1i
1 | def step1(m): |
根据output.txt我们有n,c,leak,而leak等于
%2B(e^d - 1)f)getPrime(256) %2B k&id=ReRjY)
且phi = ed - 1,f为k的阶乘
由于给定的k的范围比较小,所以可以爆破k。
给leak%f后得到
由此确定e2s为1280位且不是素数
由推导
由此确定e**2s为1280位且不是素数
由上述条件可得到确定e的条件,写代码
1 | for k in range(800, 1042): |
即可得到k,s,继续推导可得到phi与e
由此解出第一部分
首先考察LCG算法,由LCG算法恢复出p
1 | from Crypto.Util.number import * |
通过得到的a,b,seed重新计算seed
1 | a = 77103936782340200964969557381530979461498267151335748569651214009683718895787 |
接着爆破key得到key
1 | for key in trange(60000000+1,10**8 //2+1,-2): |
拿到key后可求得base,通过final求得c,求解c得到后半段密文
1 | key = 56052361 |

解题人:g0ubu1i
考点:Schmidt-Samoa密码系统
1 | from Crypto.Util.number import * |
得到flag

下载附件后得到题目
1 | QZZ|KQbjRRS8QZRQdCYwR4_DoQ7~jyO>0t4R4__aQZQ9|Rz+k_Q!r#mR90+NR4_4NR%>ipO>0s{R90|SQhHKhRz+k^S8Q5JS5|OUQZO}CQfp*dS8P&9R8>k?QZYthRz+k_O>0#> |
使用CyberChef进行解密,发现为4层解密。分别为base85,base64,base32,hex,得到flag
base85解密结果为
1 | R1kzRE1RWldHRTNET04yQ0dVMkRNT0JUR0UzVEdOS0dHTVlUT01aVklZMkRFTVpVRzRaVEdNWlZJWVpUR05TRkdZWlRHTUJXR1FaVEdOMkU= |
base64解密结果为
1 | GY3DMQZWGE3DON2CGU2DMOBTGE3TGNKGGMYTOMZVIY2DEMZUG4ZTGMZVIYZTGNSFGYZTGMBWGQZTGN2E |
base32解密结果为
1 | 666C61677B546831735F31735F423473335F336E633064337D |
hex解密结果为
1 | flag{Th1s_1s_B4s3_3nc0d3} |
1 | 苑晴在路边捡到了一张纸条,上面有一串字符串:KCLWG?K8M9O3?DE?84S9 |
拿到题目后发现为根据得到的字符串匹配md5,思路为使用python遍历大写字母后组成字符串,进行md5加密。再得到符合要求的md5值
1 | import hashlib |
得到md5值为 F0AF1443B1F463EAFFF7AEBB8B2AC4E6
1 | pvkq{mredsrkyxkx} |
根据题目提示,加密方式为凯撒加密使用CyberChef解密
位移为16,解密结果为
1 | flag{chutihaonan} |
1 | 好熟悉的进制,但不知道加密了几层 |
根据题目怀疑为hex
第一层解密后得到
1 | 666c61677b6168666b6a6c686b61687d |
第二层解密后得到
1 | flag{ahfkjlhkah} |
题目:
1 | Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. |
通过okk解密后得到
1 | flag{123456789} |
题目:
1 | 熊斐特博士发现了一种新的密码。 |
根据题目,加密为埃特巴什码
解密后得到
1 | flag{atbash cipher} |
题目:
1 | 题目描述: |
根据题目尝试通过摩斯密码解密得到
1 | flag{morse_is_very_fun} |
1 | 题目描述: |
根据题目猜测为中文电码,解密后得到
1 | 一天不学高数我就魂身难受 |
1 | 题目描述:宇宙的终极答案是什么? |
根据题目判断为rabbit加密,密钥为42
解码后得到
1 | flag{i_love_technology} |
1 | from Crypto.Util.number import bytes_to_long |
根据题目,将flag由bytes转为long,想获得flag只需将m由long转bytes
1 | from Crypto.Util.number import bytes_to_long, long_to_bytes |
得到flag为
1 | flag{ther3_are_SeVeRA1_a1TeRNat1VES_to_TH3_1ON6_t0_8yteS_fuNc7l0n_24A9B2EF44d1} |
题目:
1 | ⠴⡰⡭⡳⠴⡰⡭⡰⡷⡲⡢⡩⡭⡡⠯⡩⡭⡡⡺⡩⡭⡡⠳⡩⡭⡡⡺⡩⡭⡡⡶⡩⡭⡡⡶⡩⡭⡡⡲⡩⡭⡡⡺⡩⡭⡡⠯⡩⡧⡊⡢⡩⡭⡡⠯⡩⡭⡡⡺⡃⡰⠫⡋⡚⡲⡍⡋⡮⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡃⡴⡵⡋⡁⡬⡵⡋⡁⡬⡵⡋⡁⡬⡳⡋⠲⠴⡯⡃⡗⠴⡰⡭⡴⠴⡰⡭⡶⡷⡲⡢⡩⡧⡊⡢⡩⡭⡡⡺⡩⡭⡡⡺⡩⡭⡡⠳⡩⡧⡊⡢⡩⡭⡡⠯⡩⡧⡊⡢⡃⡴⡵⡋⡚⡱⠫⡋⡚⡱⠫⡋⡚⡲⠵⠲⡺⠰⠽ |
经过盲文解码后(解码网站)
1 | 4pms4pmpwrbima/imazima3imazimavimavimarimazima/igJbima/imazCp+KZrMKn4pmvwrbigJbCtuKAluKAluKAlsK24oCW4pmt4pmvwrbigJbimazimazima3igJbima/igJbCtuKZq+KZq+KZrz0= |
base64解密之后
1 | ♬♩¶♯♬♭♬♫♫♪♬♯‖♯♬§♬§♯¶‖¶‖‖‖¶‖♭♯¶‖♬♬♭‖♯‖¶♫♫♯= |
音符密码解密之后
1 | flag{b2cc-9091-8a29} |
题目
1 | from Crypto.Util.number import getPrime, bytes_to_long |
题目中给出了qpec,直接写出解密脚本解密
1 | from Crypto.Util.number import long_to_bytes |
得到flag为
1 | flag{Y0ung_meiyou_xiaojj} |
1 | import hashlib |
根据题目,由于flag被分为多组进行加密,所以每次hash加密是明文的长度很小,所以考虑进行爆破
1 | import hashlib |
根据给到的图片,我们可以发现的信息有,万达东厅,一家幸运好玩的点,以及商城的部分装饰

前往搜索引擎搜索一家幸运好玩的店找到一张图片如下

其中发现彩票店后的楼梯与题目中给出的类似,确定社工的地址为山东东营,东营只有一所中国石油大学,所以flag{山东省____东营市____东营区_中国石油大学}
打开题目压缩包后得到摩斯电码,解密后得到
1 | this1sy0ukey |
作为密码成功解压压缩包
得到无后缀文件与txt文件
使用010打开flag文件后发现文件头损坏改为png文件头后成功打开

结合flag.txt文件后
1 | import hashlib |
得到flag为
1 | flag{Png_AnD_md5_so_GReAt} |
打开01game文件后发现841个0和1,841为29x29,判断为二维码
1 | from PIL import Image |
得到二维码

扫描后得到
1 | hit_k1sme4_4_fun |
得到压缩包密码,成功解压出flag文件,使用010打开后发现为zip文件,更改后得到带密码的压缩包,并带有hint
1 | 01110010011011110110001101101011011110010110111101110101 |
解密为
1 | rockyou |
联想到kali的rockyou密码本,使用密码本爆破得到密码为
1 | palomino |
得到flag.txt中为
1 | ksgeylalssgSlHffgS{{gHklesgg{afkH{lHalSkgygf{{kfgslg1l11Ss{ellal{f{fka{l{gllaHf1elSsa14Hyl}f}Slmyfg4gleSlk1k{Sfggga4aHg}SlllgHHfgy1Sgaakfga1HmH{sylgs{ffkHyyaals{S{almklagfskyg{f1a1yffe{{SSSylHagf1{S{Ham{Sf}ga}fHlgl{aSl1{lkyfff}flkHffaagHegSaHSkafgH{ymaykSylS{{1llf{efeHfaalaSafflmSlylaslfk}mlllaaHSfk{SyH{yayyf{lyy1ylaff{aaygfl2333amSaeHy{fms{ySamkSga{ffylaalHlfgfglafHSSH{algmff1SSHHflSkSeygff14sgSl1ff41HkHaaal{k553klgfffmslk{Haylam{{llfggSlggaya{SaSg{lya{fflyaafk{aflkgay{kHg{fgkff1{akefeSlfmySkgglka{mSfmSemgykSSl1gfgHllgkygmfafmfakaaegafHgklSklaaH1HglgfeS41lgkS{ggaHmmSlfykfas4f{afgHaa{ylaf{{eHS4lHf{gfg{eSlSf{gsaSgyfSyHfHHagkSaS{{fa1yalsf{flf1f{{{fafakfsmaef4amHsyfSaH56789gfl{{{1yySlkael41Say{faffaSHy4Ss{eHyfmlykSm}{{ygaalgg{kHlHelffHasfaaf{SykfS666l{SS1{SygfgaHgSllf4effgHHykklSl1ga1lHafsy{f{141yaakllla1al4SaffgflalkSS1llg1{af{SyygsSSseHffemfHlaflfgkeag{gfSgmlkmflSlgHkSfylffllHya{ksgySlHHglg{H1lyf{f1gggHaffS{afalafg7825fakaSfyfg11gfHkfySsaaafff1{mfgalfa{gay1ySf{asHgg1HaHfkl1la11fsg{S11all{g{lyfHeala{f1agg{fHHglH1{SSfaSleyayaSy{yHylyHHl{ggayf}f11a{asf{gmf{{{SykHk1sSm1l}sgmSSff11a}SaSfHsmg}g{kallf{llHssl{ffsffagHgkHaa{f{f{alfglgaaS4sgHmkgSagl1lfSslfHyf{fglH{llfsaaSaglslgy11yfykHygf{lyfyfg}gafgSfaeg4fka{SaHllk{{fks{1f1S1gyl{fflkyllafHl1Sslgyga{llkHlHyaylgaf{skSH1yyfgf{Sflg{4aHSa{kkekH{yygmygl{gf1aleglfm{ygHSHHykSH{Hl{y{{Sa{k{gg1ayfayg{gSg{ffg1llHsa{Hls1Slfg{m{fHHf{mm{l1llk{fffeyH4falla#s1{lyggaykeffS{lkgls{gkeak{l1gS{kH4f{lglgkSagS1yfem11{ml1fsklyllSlgfseag{glkSSfl1ylffalmgfsfaHly4k{saSSkkSH{malf{{g{gSm1lafyy{lsall}aHg1aafaS1klSaHHa{llfSesaySgafgeySllaH1s{gygHHSfy{HSa{l{ffka1alkfagsge{lfgflgk{Slfl{ya{gff1aHmfSgHSsf1SalS5656alfyyllfa{yk{s{{lfaSay{{gaH{HS{aSly1slyHfgaHm{S{ggffmSHakafaSHmSHS{alkggfkHHgy{eS1g{HklfHgH{a41a{gsflgfaygSsfaglygl1ffHlysllsSsf{HlHaaSl{kgflkH{sgykyHfsyHly{klHgSfSal4f1lya4lkala{f(SH{laf1kffyylfflgffg}Sa1HsllSSS1aHgglHl{alHffg1eylsffsysllkSfllgylS{fHSSmlagHflSH1Hmalsg{af{SlySleyfHfasH}SeyalslkagySHaffaffmfggaam1kal{Sff{{alg{s{lsgHmaHSmllgHfaHSl11sHlgygskgHmkaaa1fllfggf{ggygffygfyfkgS1sgS{gfflHa1lagSe{fffga1sS{{H{gSsfHSg}Ha{Slf#$%1asa1gyfllS{yflyg1sSSmkfyykfggaHfHHkSfa{fSleskmagslgeflllayff{ySslySl}kf{agsgkkmHklHSs{k}glllmys1fSll1fSgyy{{sa{mga{gaka1lH1malfklSHaaklfklf1fglakalyaHas1ff4HfffSayg{{gH1kse{gage{skHaSHy1fekHgayk1gkgmS{g{1glgSfy{mg{asg{fkafalfygf{l1SHSl1ka{{ayHkS1g{ay1glSaSHa{Hsff1lfS4H{{ae1lHSlllSmafHSH{kak{ggy1H{fagSH4a1HfSgl{a}a{Sf{lHHf{kayl1l{flSfglfelySggfal{a}{aa{S1gf1SaHfaf{SmaSgHl{falHyggHg{ggglff{klfkSfyllSgk}gfafayHHygaflkS{als{SflkSls1fSgygygf4fHHge}flyggafS{fmafl{fyykHafSHH{14af1ysaH{lkfk{kSS1{fafH{1mHall{sflffa1fl1llf1SkyfafeHa{gfkSlggfsgmSlH{gSllHaSHa1{faSyllyysa{1sfla{1SmfSgy1lslayfaya1agHl4a{fSmmaklHkafkfHfgyHSS{{ay{ylaH1ylHH{gsyHHflfSyg2^%efSlfygg{Sfa{{kSfy{fHlaag{lllagl{aSfkHkgaSfafSfSafl1yss1ymHSSseafk{{a{f{Sa{Hsffffyam4HmmkSakfagyHkglgSefsagmHSaa{lSlykH{lSlHagysgak{llfys{4{Sl4gyamfa{yllf{SSgf{{4g{{alfkg{yklaSgyklyHglsalgfaS4aH4llk{Sl{gkyH{kgsSg{kgkma}kya{sgf{Hfll1ay@gk4sSgeHg{4fHlsskaSaaffffHHSgakSmS1lsa{gsSf{gfylH{l1{gHSaga{lgkkHHH{mfkgHaf1{SlSkHffggsH{HlHmSyfylHSg1SlgggafSHSalfgfae1S1amHfele{lyf11SgSsS{fSs1g{S1yyfSylS{sgSlg{lflSSeaSSgsHSegllygylaflag{}fglgHlSaH{SsaalyHfgkalfyfHmly1fsyyySS4SasagflaS{{yfayl4HHlksl{lHkfSlfyaaff}HkffgSyHl{a1{gSglsafSmfegsgsHfkafSg{falmgf}{llHHkHkHyslagHyfg{f{{lSe{gaSmfH1y{{g{}as1{{af{flH{gaglSSaSaSffg1afgallggyaa{{yalS4ykSySk1gky{gs{g{ll1lSlyafykgg1fs{4{1fslfS{slkSy4mskHkflyf{lk4f1aS2359afall1kk{eg1fyH{l1agylyf{HkSyg{mall{l1g1f1laayfHslalykkylslma{4s{HagSka1Hsal1kHkSSfSy1{Skyags{kHmfglglf{lg{fa1fgSmllmffksgafgl1aa{lmmay{ySglHfH4l4Hf{{{gllylgSafHgfHllSefgaSlf{fgf{lgSS@syl{gkSmkaykllHSy1ffkSS1aSfeggSgsyflHaHHlkklHaslf{}Ss{laaHalHSHyskSgkySl{{Sgsaf1Hlfaykg{Hkll{sasl1ffe{{kkkfgy1ffHflsglfgSfHffy11y{fffly1yklk{fHHmagalfygHaglfSfSSakfflaHffl{ffglfaHg{skaal{fHfSSfy1Hfffmy{llllffma{eaS{s{lgHHlSaef1glSfgH4esaSyHy{aSfagHlkll1fkfHf{m1SsSk}ygfylgS11{flkflkaksflafk{llsfafsfay{1lfgygHSgfH4gSfS{mySHasf1aSkffsykkS1lfHagffa{fHlyaHe{SSfS{}S{gyykefkl{{afl1ffykSkyH{klSsgfSk{g1{f1klffSsa1{afaagH{s{a{1agafa1sfgmkf1gfylggSfkaSalHffHgf{gHSfgHsglmllsllyfmH{sySSgHSaa1flSfgkglms4{HffHgfgSaglafg{yakgg{algfyl{HH1feaagllgsHlfglaHkfkfglfy1{mHlmgfkSay1fHkfskmsyklsyska{{1HagHSySkHleflakkH{Sgfy{faff{Hgmk1fky1lffag{fSggySamlyfgffHgll{lfkSfHafyfal@@@ffllkmylf{yklH{aya{14yla{SlllyaHaaa{e1gamamaSskmkaafyalgffle{aHym{s1lf{l1aaSe{lgHf{klkHH{{{HlfyHaHaa1Sa{SSggHl1{magf11kH1kHsyg{{g1{afySmy111klykagHSksgflesggggleg{aalSm{asgfg1{ylHfa{alSllg{HkggksHlfml{a1HafamflHaa1alfygHSgS1l1fHaa1maSa{lfalalkSyaa{f |
使用字频分析得到flag
1 | flag{SHyk1sme4} |
题目:
1 | Wm14aFozdDBhR2x6WDJselgyWnNZV2Q5 |
使用两次base64解密后得到
1 | flag{this_is_flag} |
解压后得到两张图片,压缩包。先对careful.jpg分析
使用010打开后发现结尾有
1 | MTJlcmNzLi4uLi45MDlqaw== |
解密后为
1 | 12ercs.....909jk |
对careful1.jpg分析,查看属性后发现
1 | xqwed |
替换之前得到的字符串中的五个点后得到
1 | 12ercsxqwed909jk |
解压压缩包得到
1 | flag{4d72e4f3-4d4f-4969-bc8c-a2f6f7a4292c} |
将图片使用binwalk分离后得到两端文本,对比两段文本的不同
1 | def read_file(file_path): |
得到flag
1 | flag{4ebf327905288fca947a} |
题目
1 | 0001000D91683106019196F40008C26211002072B975915730671B54114F60000A000A592982B15C065265843D8A938A00000A000A5E8A9AA453D883525730000A000A91527CBE518D6E1751656CEA75D5000A000A6C899ED852305BF94E0D8D77000A000A8FD94E0053CC624B535191195230002062B14F4F4F6000530048004300540046007B00620061003900370038003400300035002D0062003100630038002D0038003400370063002D0038006500360039002D006600360032003100370037006500340063003000380037007D |
直接进行hex解码后得到
1 | S H C T F { b a 9 7 8 4 0 5 - b 1 c 8 - 8 4 7 c - 8 e 6 9 - f 6 2 1 7 7 e 4 c 0 8 7 } |
关注公众号
下载压缩包后发现flag在文件夹名中间并反向
1 | }\d\1\f\a\9\1\7\c\4\a\d\4\_\?\t\H\9\I\R\l\A\_\y\S\a\E\_\y\1\I\A\e\r\_\5\I\_\5\1\H\T\{\g\a\l\f |
1 | strr = r'}\d\1\f\a\9\1\7\c\4\a\d\4\_\?\t\H\9\I\R\l\A\_\y\S\a\E\_\y\1\I\A\e\r\_\5\I\_\5\1\H\T\{\g\a\l\f' |
处理后得到
1 | flag{TH15_I5_reAI1y_EaSy_AlRI9Ht?_4da4c719af1d} |
猜测为CVE-2023-28303,使用工具对截图修复
得到

百家姓密码,解密后得到
1 | flag{CVE-2023-28303-Win11-Snipping-t00l-is-n0t-Secure} |
修改sheet.xml文件,确保表格为29x29,令s=4的为1,其余为0。使用pillow得到二维码
1 | from PIL import Image |

扫码后得到
1 | flag{j0k3r_1s_my_wif3} |
下载压缩包后存在伪加密,使用010修改09为00

得到roxy.txt
1 | /9j/4AAQSkZJRgABAQEAYABgAAD/4REYRXhpZgAATU0AKgAAAAgABwEAAAMAAAABA+gAAAEBAAMAAAABBkAAAAESAAMAAAABAAAAAAEyAAIAAAABAAAAAIdpAAQAAAABAAAIepyfAAEAAABOAAAQwuocAAcAAAgYAAAAYgAAAAAc6gAAAAgAAAAAAAAc6gAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA |
通过base64解图片得到图片

通过010打开得到密文与key
1 | 密文:33736c6e6f7b52626b795f71696966686b76217d |
首先使用hex解密密文,再使用维吉尼亚密码得到
1 | flag{Roxy_daisuki!} |
将题目通过binwalk分离后得到图片

使用盲水印工具fft得到flag

关注公众号进入问卷获得flag
使用nc连接后cat flag得到flag

nc 连接后提示需要计算,使用pwntools编写脚本得到flag
1 | from pwn import * |

首先使用ls查看路径

再绕过过滤cat flag

首先通过数组绕过n的过滤,再通过回溯次数限制绕过c_ode,通过python获取flag
1 | import requests |

payload:
1 | O:1:%22B%22:1:{s:1:%22q%22;O:1:%22C%22:2:{s:3:%22var%22;N;s:1:%22z%22;O:1:%22D%22:1:{s:1:%22p%22;O:1:%22A%22:1:{s:5:%22var_1%22;s:57:%22php://filter/read=convert.base64-encode/resource=flag.php%22;}}}} |
得到flag.php通过base64加密的内容

解密后得到

通过弱口令admin/password登陆后得到flag

查看main.js得到

解密后得到

1 | flag{e6cc550d-2a12-47a5-a890-0d522755548e} |

1 | import requests |
得到邀请函上的flag

通过默认密码admin/tao登录后台
通过任意文件读取漏洞获得flag
进入后台后任意点击一个下载后抓包,将下载地址改为…/…/…/flag
成功下载到flag

使用python获取的计算式后将答案提交,最终获得flag
1 | import re |
使用ida打开题目后得到flag

通过题目得到py文件,再编写解密脚本
1 | import base64 |
题目:
1 | 佛曰:冥藝涅呐遮奢都除哆悉冥心罰所諳娑隸呼哆朋俱特哆漫梵姪罰帝大伽侄地彌梵遮娑皤道罰度奢。冥輸以諳怛密皤礙多以耨奢迦哆漫南冥數參曰怯竟怯吉冥智羯等缽陀侄涅故遠呐老諳穆梵栗有梵呼怯盧俱盧若盧度俱怖者夜一皤藝跋 |
使用与佛论禅解密得到
1 | flag{fochan_Welcome_to_NTA2023} |
题目

使用猪圈密码解密后得到
1 | xiyounetyyds |
题目
1 | [5, 11, 0, 6, 62, 61, 57, 0, 53, 56, 56, 58, 0, 59, 53, 54, 52, 4, 56, 0, 5, 57, 2, 52, 2, 60, 60, 59, 60, 0, 1, 1, 59, 4, 58, 3, 54, 63] |
1 | new_base64 = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789{}' |
判断题目列表为字符串的索引,使用python脚本解密
1 | listt = [5, 11, 0, 6, 62, 61, 57, 0, 53, 56, 56, 58, 0, 59, 53, 54, 52, 4, 56, 0, 5, 57, 2, 52, 2, 60, 60, 59, 60, 0, 1, 1, 59, 4, 58, 3, 54, 63] |
flag为
1 | flag{95a1446a7120e4af5c0c8878abb7e6d2} |
题目:
1 | ZmxhZ3s1NDQ4Njk3MzIwNjkzNDVGNkU1NDYxNDM1NDQ1NTIyMDU5NTk0NDUzMjB9IApUcnkgaXQgYWdhaW4sIGJ1dCB0aGlzIHRpbWUgaW4gYSBkaWZmZXJlbnQgd2F5 |
使用base64解密得到
1 | flag{544869732069345F6E546143544552205959445320} |
使用hex解密得到
1 | THis i4_nTaCTER YYDS |
题目:
1 | flag = [102, 108, 97, 103, 123, 48, 56, 97, 97, 102, 55, 98, 53, 100, 51, 98, 102, 49, 57, 55, 57, 99, 49, 102, 100, 49, 56, 51, 53, 49, 55, 99, 101, 99, 98, 50, 51, 125] |
使用python脚本得到
1 | flag = [102, 108, 97, 103, 123, 48, 56, 97, 97, 102, 55, 98, 53, 100, 51, 98, 102, 49, 57, 55, 57, 99, 49, 102, 100, 49, 56, 51, 53, 49, 55, 99, 101, 99, 98, 50, 51, 125] |
1 | flag{08aaf7b5d3bf1979c1fd183517cecb23} |
题目
1 | flag = "******" |
根据题目猜测密码为130
使用python
1 | c= "5:fch7@:>m>lC>pDtwLDHKxHQ}MMQMV}" |
得到
1 | 48daa2966e5a60b6af9447c18c33207a |
题目
1 | lsip{Gpxpcbu_kg_Gyoslpj} |
判断凯撒加密,若lsip对应flag,则偏移量对应为6,7,8,9,偏移量应该为依次递增,
脚本
1 | strt = r"lsip{Gpxpcbu_kg_Gyoslpj}" |
得到
1 | flag{Welcome_to_Network} |
题目:
1 | Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. Ook. |
okk解密解得
1 | U2FsdGVkX18vD9yXN6V+1NjYFYFCgymFJQA91d7PSK1IdDacrXsNp4jEe3kCqRla |
开头为U2Fsd,为rabbit加密,解得
1 | flag{21232f297a57a5a743894a0e4a801fc3} |
题目:
1 | fi9vlno1s1_}ascadwa?gaa58ass{69d |
根据提示使用栅栏解密,W型栏数4
1 | flag{asnioca65a19sd89aw1v_asds?} |
题目:

查询Z86列车的时刻表得到

所以为苏州站
根据题目使用010打开图片得到

解密后得到
1 | flag{This_the_flag} |
从题目中,茶餐厅的电话搜索到

根据地图搜索到附近的高中

从题目提示猜测zip密码为8为密码,且为199开头,使用工具爆破得到密码

打开文件夹后发现压缩包存在伪加密,使用010修改

打开压缩包后得到flag
打开图片后,发现图片明显下方缺少,使用CRC工具恢复得到

扫描二维码后得到
1 | flag{4av8s6dvasdadfa?svasdV_Asdv45v} |
将表格中为1的格子涂黑后调整表格大小得到

扫描后得到
1 | ZmxhZ3tZb3VfZkluYWwxeV9mb1VuZF9NZS4xMTF9 |
解密后得到
1 | flag{You_fInal1y_foUnd_Me.111} |
打开后得到动图,抽帧后得到二维码,修复定位孔后得到

扫描得到
1 | R1kzRE1ZWldHRTNET04zQ0daU1RNWlJYR1EzRFNOUlJHVlRETU5KWEhBM1RBTlRER1pURE9NWldIRTNHTU5URkc1U0E9PT09== |
使用base64,base32,hex解密后得到
1 | flag{notia_explosion} |
下载附件后发现文件格式头损坏,使用010修复后得到


使用Stegsolve发现存在lsb隐写

打开网站后根据提示进入robots.txt,提示进入/FlAag.pHp,进入后下载文件得到
1 | MZWGCZ33GIYTEMZSIYZDSN2BGU3UCNKBG42DGOBZGRATARJUIE4DAMKGIMZX2=== |
解密后得到
1 | flag{21232F297A57A5A743894A0E4A801FC3} |
打开题目后根据提示需打开demo.php,但存在302跳转,使用curl绕过

打开后ctrl u 查看源代码,进入main.js文件,得到密文
1 | ZmxhZ3tPME8wSyFCMHVkbGU1c19CZW5lXmYxY2VuY2V9 |
解密后得到
1 | flag{O0O0K!B0udle5s_Bene^f1cence} |
打开后查看元素发现按钮被禁用,删除注释后得到flag


进入网页后提示需要user为NTAuser,来自Network.com,在本地请求,使用burp拦截后修改请求

题目提示htaccess 文件上传
构造.htaccess文件上传
1 | <FilesMatch "\.jpg"> |
构造木马图片并上传至服务器得到路径

1 | /uploads/1.jpg |
使用蚁剑连接

nc 连接后cat flag 得到flag
