php代码审计学习记录-二次安装漏洞-02

admin 2024年11月27日23:13:51评论2 views字数 665阅读2分13秒阅读模式

ZZCMS201910代码审计,此次审计的目的是为了记录学习过程

审计cms的重装业务逻辑并实现bypass达到系统重装的目的

漏洞点http://xxxxxxxx/install/index.php

Cms安装目录:http://127.0.0.3/install/index.php

php代码审计学习记录-二次安装漏洞-02

窗口提示 :安装向导已运行安装过,如需重安装,请删除 /install/install.lock 文件

意思是删除掉/install/install.lock文件后才可以安装

我们在phpstorm中使用Ctrl+Shift+F 对源码进行搜索

php代码审计学习记录-二次安装漏洞-02

成功定位到 step_1.php文件

php代码审计学习记录-二次安装漏洞-02

file_exists()函数使用方法

php代码审计学习记录-二次安装漏洞-02

这里检测 install.lock文件是否存在,如果存在那么提示已经安装过了

如果不存在

执行else命令,step的值为2

php代码审计学习记录-二次安装漏洞-02

查看installindex.php源码

再11行代码可知 如果没有用post的方法传入step,那么step=1

(默认step的值为1)

php代码审计学习记录-二次安装漏洞-02

在第44行到第47行中,存在判断step的值,并做出提示

php代码审计学习记录-二次安装漏洞-02

switch($step) 检查 step的值

如果使用post的方法传入step=2

首先会对php版本,mysql版本进行检查,其他代码的不重要不影响后面文件包含。

执行代码include step_2.php

php代码审计学习记录-二次安装漏洞-02
php代码审计学习记录-二次安装漏洞-02

附带step_2.php的源代码

php代码审计学习记录-二次安装漏洞-02

附带phpstorm Debug调试图

php代码审计学习记录-二次安装漏洞-02

我们用post方法传入step=2

最后出现可以绕过检查,直接重装cms!!!

php代码审计学习记录-二次安装漏洞-02

知识星球:

php代码审计学习记录-二次安装漏洞-02

原文始发于微信公众号(凯撒安全实验室):php代码审计学习记录-二次安装漏洞-02

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年11月27日23:13:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   php代码审计学习记录-二次安装漏洞-02http://cn-sec.com/archives/1786333.html

发表评论

匿名网友 填写信息