前言
本章使用百家CMS v4.14作为代码审计
环境为 Win7 + PHPstudy
安装
1.把下好的百家CMS
源码文件baijia
放到phpStudy
的WWW
目录下
2.访问地址:http://localhost/baijia/index.php
就会进入到安装界面,按照提示配置好参数,注意数据库用户名和密码要与你的mysql匹配
3.再访问:http://localhost/baijia/index.php
,可以看到已经安装好了
漏洞
我们使用Seay源代码审计系统自动审计下
1、后台任意路径删除
漏洞点:/includes/baijiacms/common.inc.php
1 | function rmdirs($path='',$isdir=false) |
判断 $Path
是否为目录,不是目录直接 unlink
删除,如果是目录的话遍历文件和子目录将结果存入 $file_list
列表中,foreach
循环遍历目录中的文件和子目录,在循环中排除当前目录和上级目录,判断子目录名称如果不是 qrcode
就继续递归 rmdirs
,在处理完目录下文件和子目录,尝试删除自身,条件是自身不为 cache
这里我们搜索全局调用 rmdirs
函数,在 /system/manage/class/web/database.php
处调用了
1 | if($operation=='delete') |
功能是删除备份文件
利用
在后台删除备份文件时抓包
修改id处为我们要删除的目录,base64加密下,这里我们创建一个test文件夹,将 ../../test
base64后填入id重放
即可任意删除目录