自动删除这个安装文件
通过删除这个安装文件
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重装漏洞复现

image.png

进行抓包发送
image.png
image.png

分析源码:

image.png
判断sys/install.lock文件是否存在,如果存在就跳转到主页,如果不存在,就进行安装
image.png
检查文件夹是否有可写权限,如果有就继续进行
image.png
进行post的数据判断数据库的信息是否正确
image.png
发现进行数据库的链接,但是没有进行过滤和限制,就可以控制dbname的值来进行写入文件
然后在写入的文件中查询
image.png
发现已经存在拼接,因为有— -的注释符,所以不会导致数据库名的错误,但是后面有phpinfo的语句,所以会发现在主页面中出现phpinfo的内容

进行利用

image.png
设置为一句话的木马
访问主页
image.png
使用蚁剑进行上线
image.png

zswin博客重装漏洞getshell复现

在安装目录中,设置phpinfo的闭合

image.png
然后进行查看
image.png

源码分析

image.png
发现没有进行输入语句的检查和其他的过滤
image.png
然后查看自定义的内容,但是没有进行过滤
image.png
image.png
进行修改后,可以设置为一句话木马等进行getshell
image.png

修复建议

image.png
image.png

  1. 正确处理lock文件
  2. 判断安装完成后要退出
  3. 在安装的每一步都需要验证
  4. 对所有输入点进行过滤