vauditdemo 重装漏洞 复现
搭建环境
源码下载链接:
下载好后将VAuditDemo_Debug文件作为网站根目录,使用小皮建站
访问http://127.0.0.1
环境搭建成功
代码审计
./install/install.php文件
如果存在./sys/install.lock文件,则直接跳转到index.php,但是没有结束后面的代码,所以这里存在重装漏洞
以上这段代码会将str_tmp变量字符串写入…/sys/config.php文件内,其中可以发现str_tmp变量内有四个变量,分别是 d b h o s t 、 dbhost、 dbhost、dbuser、 d b p a s s 、 dbpass、 dbpass、dbname
溯源这四个变量可以发现
这四个变量可控,并且没有任何过滤机制
这里点击安装,抓住可控变量,将dbname参数改为vauditdemo–+";phpinfo();//,然后放包
安装成功,直接跳转到首页发现插入的恶意语句phpinfo() 成功被解析
index.php
原来首页直接文件包含了./sys/config.php文件,所以执行了插入的语句
现在查看写入config.php文件的内容
成功插入,导致漏洞存在
由于install.php文件的开头if语句判断是否安装这里没有结束后面的代码,所以导致重装漏洞
就可以构造这个请求无限重装,写入木马等
看上图我插入echo 123;再次请求就变成了执行123语句
修复方法
将install.php里判断是否安装过的if语句里加退出代码
使得不再接收传参
可以看见,添加exit();结束代码后,就不能再接收参数了