宁波市赛一个洞都没审出来,感觉代码审计还是得好好学学

这里先理解一下项目结构

admin

任意文件上传

break

admin/controller/Api.php#upload,虽然这里用了白名单
2024-05-27T10:38:47.png
但主办方特意为我们加上了php后缀,不过就算没给,也可以根据hint.txt登录后台自己修改
2024-05-27T10:39:46.png
成功上传
2024-05-27T10:41:07.png
成功执行
2024-05-27T10:43:03.png
同样的漏洞点还有admin/controller/File.php#upload
2024-05-27T10:47:11.png

fix

直接在代码里加判断,防止被登录后台修改配置
2024-05-27T13:04:43.png
2024-05-27T13:05:35.png

任意文件下载

break

admin/controller/File.php#download,对下载路径没有过滤,直接拼接
2024-05-27T10:50:58.png
路径穿越
2024-05-27T10:50:23.png

fix

直接加个将..替换为空
2024-05-27T12:53:00.png
2024-05-27T12:52:23.png
sql注入估计也有,但我太菜了,实在看不懂它的逻辑和传参方式