phpyun人才招聘系统最新版v5.1.5漏洞挖掘
字数 2024 2025-08-07 08:22:07
PHPYun人才招聘系统v5.1.5漏洞分析与利用指南
环境搭建
- 源码下载:从官方论坛获取v5.1.5版本源码 https://www.phpyun.com/bbs/thread-16786-1-1.html
- 安装:按照正常流程安装系统
- 测试环境:假设本地搭建地址为
http://www.phpyun515.com/ - 后台默认凭证:admin/admin
系统防御机制分析
PHPYun系统对安全防护做了多层处理:
-
输入过滤:
- 加载
config/db.safety.php进行基础过滤 - 对
$_GET、$_POST、$_COOKIE执行addSlash处理 - 使用
common_htmlspecialchars函数过滤特殊字符 - 通过
strip_tags和gpc2sql函数进行二次过滤
- 加载
-
SQL注入防护:
- 将单引号、双引号、括号等替换为中文符号
- 关键字替换机制有效防止SQL注入
漏洞目录
- 后台任意文件删除漏洞
- 后台任意文件写入漏洞
- 后台命令执行漏洞
- 后台任意文件读取漏洞
漏洞详情与利用
1. 后台任意文件删除漏洞
漏洞位置:数据库备份删除功能
复现步骤:
- 登录后台访问:工具 -> 数据 -> 数据库管理 -> 备份数据
- 创建一个备份(可选)
- 在"恢复数据"页面点击删除并抓包
- 修改GET参数
sql为../../../../../test(要删除的目录) - 发送请求
漏洞分析:
- 路由:
admin/index.php?m=database&c=del - 处理文件:
admin/model/database.class.php中的del_action方法 - 漏洞代码:
$handle = opendir(PLUS_PATH.'/bdata/'.$_GET['sql']); - 问题:未过滤
../导致目录穿越,后续unlink操作可删除任意文件
2. 后台任意文件写入漏洞
漏洞位置:首页生成功能
复现步骤:
- 登录后台访问:工具 -> 生成 -> 首页生成
- 修改"首页保存路径"为
../index.php - 发送请求覆盖目标文件
漏洞分析:
- 路由:
admin/index.php?m=cache&c=index - 处理文件:
admin/model/cache.class.php中的index_action方法 - 关键代码:
$this->webindex($_POST['make_index_url']); - 问题:
make_index_url参数未过滤,可直接写入任意路径
3. 后台命令执行漏洞
漏洞位置:网站设置与首页生成组合漏洞
复现步骤:
-
步骤一:
- 访问:系统 -> 设置 -> 网站设置 -> 基本设置
- 修改"网站名称"为PHP代码:
<?php echowhoami;?> - 保存设置
-
步骤二:
- 访问:工具 -> 生成 -> 首页生成
- 设置"首页保存路径"为
../aaa.php - 生成后访问
http://www.phpyun515.com/aaa.php执行命令
漏洞分析:
-
网站设置保存:
- 路由:
admin/index.php?m=config&c=save - 处理文件:
admin/model/config.class.php中的save_action方法 - 数据最终存入数据库
phpyun_admin_config表
- 路由:
-
首页生成:
- 使用Smarty模板引擎编译
- 编译后的模板包含用户可控的
sy_webname值 - 生成的PHP文件包含恶意代码
限制:由于过滤机制,无法使用括号,只能使用反引号执行命令
4. 后台任意文件读取漏洞
漏洞位置:数据库备份下载与网站设置组合漏洞
复现步骤:
-
步骤一:
- 访问:系统 -> 设置 -> 网站设置 -> 基本设置
- 修改"网站地址"为单个点
. - 保存设置
-
步骤二:
- 直接发送请求读取文件:
GET /admin/index.php?m=database&c=down_sql&name=../../../qqlogin.php
- 直接发送请求读取文件:
漏洞分析:
-
网站设置修改:
- 修改
sy_weburl值为.影响文件路径解析
- 修改
-
文件读取:
- 路由:
admin/index.php?m=database&c=down_sql - 处理文件:
admin/model/database.class.php中的down_sql_action方法 - 关键代码:
$fileurl = $this->config['sy_weburl']."/data/backup/".$_GET['name']; - 通过修改
sy_weburl为.并结合../实现任意文件读取
- 路由:
总结与防御建议
-
漏洞共性:
- 全部需要后台权限
- 主要问题在于未正确处理路径遍历
- 部分漏洞需要组合利用
-
修复建议:
- 对所有用户输入进行严格的路径规范化处理
- 禁止使用
../等目录遍历符号 - 对写入文件内容进行严格过滤
- 限制配置文件的可修改范围
-
注意事项:
- 这些漏洞在v6.x版本中可能已修复
- 所有漏洞均已提交CNVD
- 文件删除漏洞可能存在争议(CNVD认为撞洞)
-
研究局限:
- 未发现前台漏洞
- 命令执行受限(无法使用括号)
- 需要进一步研究绕过过滤的方法
本教学文档详细分析了PHPYun v5.1.4的四个高危后台漏洞,包括复现步骤、技术原理和防御建议,可供安全研究人员参考学习。