贵阳大数据及网络安全精英对抗赛 2023 Writeup
写在前面
今天打完盘古石全国电子数据取证大赛(300G的赛题磁盘直接爆红),赛后整理文件的时候发现了这个比赛题解还没发,浅浅的更新一下。这比赛原(tou)题还是挺多的,国外搬到国内
Web
仔细ping
那必须输入?ip=127.0.0.1
一番 fuzz 发现没过滤 nl
1 |
|
May_be
May be you should bypass
1 |
|
无参RCE,我们直接利用全局变量写 shell(因为一直读不到 flag
=.=
1 |
|
读了半天 flag
一直为空,最后看了一下权限 700
…我们直接查找 suid
权限
1 |
|
我们发现 cp
命令具有 suid
权限,两种方法,直接读 flag
1 |
|
另一种是通过 cp
提权,可以参考 Linux提权之SUID提权
pop
一条很简单的链子
1 |
|
根据 【技术分享】PHP序列化冷知识 一文,我们可以通过 fast destruct 提前触发魔术方法,从而绕过 throw new Error("NoNoNo");
语句,注意我们传递 payload 的时候,需要将最后面的 }
删掉
1 |
|
JUST_LFI
1 |
|
notrce
exec?为啥不是eval…
1 |
|
没过滤 nl
,但是发现命令无回显,我们直接使用 tee
命令复制一下 flag
,由于怕 flag
不是常规文件名,使用 ?
模糊匹配一下
1 |
|
完美网站
网站有问题!!!都打不开,还敢说是完美网站。
1 |
|
访问环境发现无限重定向,同时 url 存在一段编码 dHVwaWFuLnBuZw==
,解码后得到 tupian.png
,我们直接下载图片,在文件尾部发现 ffffpq.php
,应该就是 flag 位置
使用 burp 抓包发现提示:别重定向了,赶快让我(?n=30-10,以内的数值。) -_-
那么思路就理清了,需要传递 n
和 img
,n
的值取决于提示,img
的值是 base64 编码后的文件名,直接爆破
1 |
|
it’s time
对miniID进行尝试,有过滤的SSTI
1 |
|
没啥好说的,直接一个 Payload 通杀所有 SSTI 赛题(手动滑稽),注意题目源码中过滤了 _
和 *
,而 flag 文件名又存在 _
,我们使用 ?
绕过一下
1 |
|
Misc
图片的秘密
一张简单的图片
下载后得到一个 docx
文件,打开后发现只贴了一张图片,直接后缀名改为 zip
,得到如下信息
1 |
|
直接使用在线网站解码即可
easymisc
简单的misc从基础出发
下载后得到大量文件夹,在 change19
目录中动图的第14 帧发现一闪而过的二维码,扫码后得到
1 |
|
附件 500MB 一度以为题目出错了,不过看着解开的人越发越多,直接借了个会员下载了,全局搜索 flag
发现提到了一个 mnt
目录
挨个看,留意哪个压缩包里存在 mnt
目录,最后在 a12553183e6feaa32744e405985000f41591bdff85f9d81967a6405196e3a71a
目录的压缩包里发现 mnt
目录,同时目录里存在一个二维码动图 559.gif,使用 PS 拼一下得到 flag
cb0x-new
Welcome to my c sandbox,Hope u can escape it.Good luck!!!!
1 |
|
我们通过 constructor
让我们定义的函数在 main()
之前运行即可。
1 |
|
1 |
|
然后根据题目所述在 /home/ctf/main.c
得到 flag
j@il-new
jail me pls
1 |
|
1 |
|
time
时间如白驹过隙
貌似是原题: 江苏工匠杯 时间刺客,文件的最后修改时间转时间戳然后和文件内的时间戳相减就是 flag 的 ascii 码
1 |
|