• [漏洞分析]phpyun系统重装安全隐患#影响从phpyun4.2部分,4.3到4.5全版本


    0x00
    之前在t00ls上看到的,漏洞原理很简单,但是都是细节问题,很值得去学习。
    感谢bypass师傅。
    也发了邮件给官方,但没有任何回复,估计是漏洞作者bypass师傅报备了吧。
     
    0x01
    经测试该漏洞影响从4.3到 4.5 所有版本,4.2部分版本受影响,4.2最终版本不受影响。具体情况请自行测试。
     
    0x02
    漏洞原理:
    看到install 文件夹里的index.php,这里分php5,php7两种情况进行调用安装。
     
    以php5为例。
    文件 根目录/install/php5/install.php 代码中:
    先判断了是否存在lock文件,存在即退出安装。
     
    其中S_ROOT这个常量是在前面index.php文件中定义的。
    取得是当前文件的绝对路径。拼接起来,检测的lock文件位置应该是 根目录/install/data/phpyun.lock。
     
    这里没什么问题。
     
    按照正常安装走完,看到最后一步
    创建lock文件,这里用的是相对路径。install.php是被index.php 用require的模式调用的。
    取得路径应该是 根目录/install/,按照上图的路径创造的lock文件应该是放至于 根目录/data/phpyun.lock。
     
    创建的lock文件路径是 根目录/data/phpyun.lock,检测的路径却是 根目录/install/data/phpyun.lock
     
    那么一个重装的安全隐患就埋下了。
     
    当用户安装完成之后,是可以被无限重装的,因为这个路径错误问题。
     
    以本地phpyun4.3 已经安装完成系统为例,是可以被重装的。
    最新版phpyun 4.5这里的代码和4.3是一样的。
     
     
    phpyun 4.2 版本
    处理逻辑不一样,这个版本不受影响。
     
    经测试phpyun 4.2某些版本依旧是受影响的。
     
    0x03
    网上一些系统:
    官方测试站,版本phpyun 4.2111:
     
    某招聘网,版本phpyun 4.3
     
    0x04 
    先谈谈修复,修复很简单,已经装了的用户,只需把install目录给删了就行。
     
    还没有安装的新用户,把php7 和php5 下的两个install.php 这一行
    @fopen("../data/phpyun.lock","w+");
    

    改为

    @fopen(S_ROOT."/data/phpyun.lock","w+");
    

    即可。

    总的来说,漏洞影响还是挺大的,无论是漏洞的威力还是广度,
     
    重装可以毁掉数据,也可以getshell。
     
    只是因为一个小点就造成了重大的问题,果真安全无小事,从每一个小地方做起。
  • 相关阅读:
    Wpf 数据绑定实例2
    Wpf 数据绑定简介、实例1
    Wpf ListBox数据绑定实例1--绑定字典集合
    Wpf控件ListBox使用实例2
    阿里UX矢量图标库–最强大的矢量图标库(Icon font制作力荐工具)
    Web字体工具整理,网页图标字体以及使用方法整理
    ICOMOON!强悍的WEB字体图标制造器/Web字体使用实例
    window.applicationCache事件,介绍
    HTML5 离线缓存忽略主页实例
    条件注释判断浏览器版本<!--[if lt IE 9]>(转载)
  • 原文地址:https://www.cnblogs.com/r00tuser/p/8533517.html
Copyright © 2020-2023  润新知