PHPYun v4.3 CMS重装与Getshell漏洞分析

需积分: 0 0 下载量 176 浏览量 更新于2024-08-05 收藏 1.98MB PDF 举报
"PHPYun CMS v4.3Beta 重装与Getshell漏洞分析" 本文将探讨PHPYun CMS(一款国内广泛使用的人才招聘系统)的特定版本——v4.3Beta中出现的安全问题,包括CMS重装漏洞和后台Getshell漏洞。首先,我们将介绍环境搭建的过程,然后详细分析这两个安全漏洞的成因,以及如何利用这些漏洞。 0x02 环境搭建 要重现问题,我们需要按照以下步骤搭建PHPYun CMS v4.3Beta的环境: 1. 访问PHPYun官网(https://www.phpyun.com)获取更多信息。 2. 下载PHPYUN人才招聘系统v4.3Beta的源码,可从提供的百度网盘链接下载(链接:https://pan.baidu.com/s/1pMQ58Np 密码:je4n)。 3. 将源码部署至本地服务器或测试环境,例如设置一个本地的Apache或Nginx服务器。 4. 使用默认的后台地址(http://127.0.0.1/admin/index.php)和默认账号密码(admin/admin)登录。 0x03 CMS重装漏洞 此漏洞存在于/install/index.php文件中。程序根据PHP版本选择不同的包含目录,例如在PHP5环境下会包含/install/php5/install.php。在这个过程中,存在一个问题:常量S_ROOT被定义为当前目录/install/,但程序在检查lock文件时误以为S_ROOT是根目录/。因此,它试图查找/install/data/phpyun.lock,而实际上文件位于/data/phpyun.lock。由于这个逻辑错误,访问/install/index.php时,系统不会检测到lock文件,允许用户重新安装CMS,导致安全风险。 0x04 后台Getshell漏洞 此漏洞存在于/admin/model/config.class.php的save_action函数中。该函数处理用户提交的配置信息并将其写入数据库,同时调用web_config()函数将数据写入配置文件。在第88-114行,没有充分过滤用户输入,这可能导致恶意代码注入,从而实现远程命令执行(Getshell)。 漏洞利用方法: 对于CMS重装漏洞,攻击者只需直接访问/install/index.php,即可绕过锁机制,触发系统重装流程。 对于Getshell漏洞,可以通过构造特殊的输入,利用save_action函数的漏洞,将恶意代码写入配置文件,实现对服务器的控制。 为了防范这些问题,开发者应确保对所有用户输入进行严格的验证和过滤,避免直接将未经处理的数据写入配置文件或执行任何敏感操作。此外,定期更新和修补CMS以修复已知漏洞至关重要。对于系统管理员,建议定期审计系统日志,监控异常行为,并使用安全的配置文件存储方式,如使用不可写入的目录或加密存储。