前话
看到师傅们都在卷java,还在php挣扎的我好慌呀。。。
正文
上cnvd随便挑了个cms来练手,本来想复现下nday的,结果却有意外收获。
发现已经有4个提交了,这次除了sql实在是没找到,还多找到了若干任意文件读取、上传和删除等,均交了cnvd
一、任意文件删除
- 后台附件管理处存在文件和图片管理:
点击删除得到请求:
修改请求path:
成功跨目录删除s.txt
其实可以看到这两个删除都没有什么限制:
- 数据列表的数据备份处:
跟进delFile:
可以看出,通过post接受tb和name,tb用来配置初始化设置文件路径,name直接赋予文件名
成功跨目录删除
- 后台模板在线编辑处:
editor模块下控制器存在delete_node:
通过$type来实现删除文件或目录
成功跨目录删除
这里路径需要通过template/../../的形式来回溯,若直接拼接路径,会返回错误:
二、任意文件读取
也是模板在线编辑处:
editor模块下控制器存在get_file:
可以实现任意文件读取
三、文件上传(若干处)
- 后台插件管理处:
和以前看过的某些cms一样,未对解压后的文件进行检测:
写个ss.php打包成zip上传
- 后台模板管理处:
和插件那里类似
写个ss.php打包成zip上传
- 模板在线编辑处:
editor模块下控制器存在create_node:
这利用和上面有个任意文件删除几乎一样,不多说了
- 一处接口上传:
editor模块下控制器中提供了一个上传的接口
这里直接写个上传:
拦截包修改成template/../../回溯形式:
返回:
达到上传目的
- 修改安全配置上传
这里可能存在许多上传点,这里只举一处例子:
后台-栏目管理-分类管理处,可以编辑信息上传图片:
上传非png,jpg等图片格式时会报错,但是通过bp抓到了一个
POST /admin.php/base/imgupload.html 的请求
定位到base.php中的imgupload方法:
跟进allup:
看到白名单后缀从数据库表system_upset取出,
那么可以通过网站安全配置添加php后缀,达到利用
修改完后再发送请求,将后缀改成php,成功上传并返回路径
推断一开始那里可能只是个前端的验证,还有那个editor模块还是有好多东西的,有兴趣可以看看
结语
想学java审计,有没有师傅指点一下啊。。。