menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 106-PHPYun chevron_right 002-Phpyun v4.2(部分) 4.3 4.5 系统重装漏洞.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    002-Phpyun v4.2(部分) 4.3 4.5 系统重装漏洞.md
    1.98 KB / 2021-07-17 00:01:24
        # Phpyun v4.2(部分) 4.3 4.5 系统重装漏洞
    
    ### 一、漏洞简介
    
    ### 二、漏洞影响
    
    经测试该漏洞影响从4.3到 4.5 所有版本,4.2部分版本受影响,4.2最终版本不受影响。具体情况请自行测试。
    
    ### 三、复现过程
    
    **漏洞分析**
    
    看到install 文件夹里的index.php,这里分php5,php7两种情况进行调用安装。
    
    以php5为例。
    
    文件 根目录/install/php5/install.php 代码中:
    
    先判断了是否存在lock文件,存在即退出安装。
    
    ![](images/15893364306619.png)
    
    
    其中S_ROOT这个常量是在前面index.php文件中定义的。
    
    ![](images/15893364373214.png)
    
    
    取得是当前文件的绝对路径。拼接起来,检测的lock文件位置应该是 根目录/install/data/phpyun.lock。
    
    这里没什么问题。
    
    按照正常安装走完,看到最后一步
    
    ![](images/15893364432163.png)
    
    
    创建lock文件,这里用的是相对路径。install.php是被index.php 用require的模式调用的。
    
    取得路径应该是 根目录/install/,按照上图的路径创造的lock文件应该是放至于 根目录/data/phpyun.lock。
    
    创建的lock文件路径是 根目录/data/phpyun.lock,检测的路径却是 根目录/install/data/phpyun.lock
    
    那么一个重装的安全隐患就埋下了。
    
    当用户安装完成之后,是可以被无限重装的,因为这个路径错误问题。
    
    以本地phpyun4.3 已经安装完成系统为例,是可以被重装的。
    
    ![](images/15893364506580.png)
    
    
    最新版phpyun 4.5这里的代码和4.3是一样的。
    
    ![](images/15893364583835.png)
    
    
    phpyun 4.2 版本处理逻辑不一样,这个版本不受影响。
    
    ![](images/15893364646514.png)
    
    
    ![](images/15893364681081.png)
    
    
    经测试phpyun 4.2某些版本依旧是受影响的。
    
    版本测试
    
    网上一些系统:
    
    官方测试站,版本phpyun 4.2111:
    
    ![](images/15893364756946.png)
    
    
    某招聘网,版本phpyun 4.3
    
    ![](images/15893364818384.png)
    
    
    **参考链接**
    
    https://www.cnblogs.com/r00tuser/p/8533517.html
    
    links
    file_download