PHP代码审计之重装漏洞-Day2

重装漏洞的种类

常见的重装漏洞的种类

1、自动删除这个安装软件

通过生成一个lock文件来判断程序是否安装过

2、根本无验证

安装完成后不会自动删除文件,也不会生成lock判断是否安装过

3、安装file

直接用GET提交step绕过,直接进入下一步

4、变量覆盖导致重装

可以GET,POST,COOKIE任意提交一个变量名$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重装漏洞复现

1、访问http://localhost/ourphp/install/install.php
在这里插入图片描述
2、提交数据库信息,用burpsuite抓包。
在这里插入图片描述
3、将dbname修改为:
testdb;-- -";phpinfo();//
在这里插入图片描述
4、提交
将会跳转到phpinfo()
vauditdemo下载地址
在这里插入图片描述

Payload :testdb;-- -";phpinfo();//
Payload分析:
– 注释了mysql语句
";闭合sql语句
//注释

重装漏洞修复建议

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

发布了42 篇原创文章 · 获赞 97 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/gd_9988/article/details/104756983
今日推荐