自动删除这个安装文件
通过删除这个安装文件
1.自动删除这个安装文件
通过生成一个lock文件来判断程序是否安装过
2.根本无验证
安装完成后不会自动删除文件,也不会生成lock判断是否安装过
3.安装file
直接用GET提交step绕过,直接进入下一步
4.变量覆盖导致重装
可以GET,POST,COOKIE任意提交一个变量名$insLockfile,给其赋空值,覆盖掉$insLockfile,从而让file_exists为false就不会退出。
5.判断lock后,无exit
判断是否存在lock文件,如果存在lock文件,就会header到index.php,但是header后并没有exit,所以并不会退出。
6.解析漏洞
在安装完成后会将install.php重命名为index.php.bak,但是由于Apache的解析漏洞:如果无法识别到最后一个后缀的话,就会向上解析,那么就又变成了php了,然后结合安装时的变量覆盖又成重装了。
7.满足一些条件不会退出的
这次复现的两个漏洞,都属于第五类。当页面跳转到主页之后,原来的php进程依然存在,导致可以重装,而当配置信息没有经过过滤而被直接写入了文件当中,就可能会导致getshell。寻找此类漏洞应该尝试去跟踪配置信息的最终去处,并检查是否有过滤。通过构造闭合语句利用漏洞。
vauditdemo重装漏洞复现
分析源码:
判断sys/install.lock文件是否存在,如果存在就跳转到主页,如果不存在,就进行安装
检查文件夹是否有可写权限,如果有就继续进行
进行post的数据判断数据库的信息是否正确
发现进行数据库的链接,但是没有进行过滤和限制,就可以控制dbname的值来进行写入文件
然后在写入的文件中查询
发现已经存在拼接,因为有— -的注释符,所以不会导致数据库名的错误,但是后面有phpinfo的语句,所以会发现在主页面中出现phpinfo的内容
进行利用
zswin博客重装漏洞getshell复现
在安装目录中,设置phpinfo的闭合
源码分析
发现没有进行输入语句的检查和其他的过滤
然后查看自定义的内容,但是没有进行过滤
进行修改后,可以设置为一句话木马等进行getshell
修复建议
- 正确处理lock文件
- 判断安装完成后要退出
- 在安装的每一步都需要验证
- 对所有输入点进行过滤