YCCMS 代码审计

本文详细介绍了YCCMS CMS系统的代码审计过程,包括管理员密码越权修改、未授权文件上传及任意文件删除的安全漏洞。通过分析源代码,揭示了在权限验证和文件操作方面的不足,为安全防护提供了参考。

前言

这段时间的CMS代码审计,感谢各位师傅的分享,向师傅们致敬。

CMS简介

YCCMS是一款PHP版轻量级CMS建站系统。程序页面设计简洁,生成静态html,后台功能强大。利于优化、超强收录、超强排名。适合做关键词排名、淘宝客程序,是个人、企业建站的理想选择。
YCCMS采用PHP5+MYSQL做为技术基础进行开发,OOP(面向对象),MVC模块化开发,代码易维护,方便功能扩展和二次开发。更高效、更安全、更稳定。

下载地址

http://ahdx.down.chinaz.com/202003/yccms_v3.4.rar

代码审计

修改管理员账号密码(越权)

在未登录情况下,构造:
在这里插入图片描述

POST /admin/?a=admin&m=update 
1.此版本采用了PHP MYSQL架构。2.创新型内容管理模式,建立频道后可定义内容模型,均在后台可以控制,非常方便。3.模板引擎采用了成熟稳定的Smarty引擎,很轻松就可以做出模板界面来。4.前台和后台均采用了DIV CSS,速度比传统型略快。5.JS采用了国际上比较流行的Jquery框架,还有基于Jquery的XHEditor可视化编辑器。6.支持基于Apache和IIS的路径优化功能,让您的网站面向搜索引擎而优化。7.单页功能:制作类似关于我们和公司介绍只要添加数据就可以实现,并且可控制访问权限。8.后台支持权限分配,减轻管理员工作负担。9.可自定义菜单导航。10.支持友情连接11.投票功能:可以控制在哪个页面显示,并且可以实现时间段显示投票,控制了一个IP只能投一次。12.广告功能:支持HTML自定义,并且可投送到想要显示的页面。13.支持内容无限分类,可详细定义自己的内容。14.制作了会员组接口,方便控制资源分配等。15.实时监控网站在线人员动向。 WeedCMS V4 正式版01.[修复]后台删除横幅出现代码问题。02.[优化]让详细页面也显示菜单选中状态。03.[优化]当前位置根据程序判断04.[优化]讨论组详细页面优化。05.[新增]增加内容顶和踩功能。06.[新增]首页增加NOTICE简单公告。07.[新增]添加了PVOD播放器播放支持。08.[修正]讨论模式不显示发布者BUG。09.[优化]解决生成缩图模糊问题。10.[优化]会员系统前台登陆部分。11.[优化]当设置为问答模式不显示在人气内容12.[新增]首页模板增加讨论模式。13.[新增]内容列表增加问答模式。14.[修正]在某些环境无法发布内容BUG15.[新增]编辑器增加表情。16.[新增]评论增加表情。17.[新增]频道控制是否可以缓存。18.[新增]显示推荐内容19.[新增]评论后台管理20.[新增]内容缩图增加外部地址
<think>嗯,用户问的是YCCMS远程代码执行漏洞的修复方法。首先,我需要确认用户提到的YCCMS具体版本,因为不同版本可能有不同的漏洞。不过用户没有提到版本,可能需要给出通用的修复建议。 接下来,远程代码执行漏洞通常是由于用户输入未经过滤直接执行导致的。比如在PHP中,可能存在eval函数或反序列化的问题。我需要回忆一下YCCMS的历史漏洞,比如之前有没有类似的问题,比如3.4版本存在过这样的漏洞,可能是在某些模块如广告管理里存在动态函数调用,导致攻击者可以注入代码。 然后,修复方法通常包括输入过滤、禁用危险函数、更新补丁等步骤。比如检查代码中是否有使用eval、system等函数的地方,并对输入参数进行严格过滤。此外,可能需要替换动态函数调用为安全的处理方式,比如使用白名单或静态方法。 用户还可能想知道如何获取补丁或更新版本,可能需要建议他们到官方网站或GitHub仓库查找最新版本。另外,服务器配置的加固也是重要的一环,比如禁用危险函数,设置文件权限等。 还需要考虑用户的技术水平,可能需要分步骤说明,比如先定位漏洞文件,然后修改代码,测试,最后更新服务器配置。同时提醒用户备份数据,避免修复过程中出现问题。 最后,生成的相关问题可能涉及漏洞原理、如何检测、其他常见漏洞以及版本兼容性等,这些都需要准备好简要的回答方向。</think>### YCCMS远程代码执行漏洞修复方法 #### 漏洞原理 YCCMS远程代码执行漏洞通常源于未过滤的用户输入直接传入动态函数调用或文件包含函数(如$eval()$/$assert()$),攻击者通过构造恶意参数注入PHP代码[^2]。例如在广告管理模块中,若存在动态函数调用: ```php $func = $_GET['action']; $func(); // 直接调用用户传入的函数名 ``` #### 修复方案(分步说明) 1. **漏洞定位** - 检查控制器(Controller)中接收$_GET/$_POST参数的代码段 - 排查$eval()$、$create_function()$、$assert()$等危险函数 - 重点关注动态函数调用和文件包含操作 2. **输入过滤(示例代码)** ```php // 原漏洞代码(广告模块): $func = $_GET['action']; $func(); // 修复后代码: $allowed_actions = ['listAds','showDetail']; // 白名单机制 $func = isset($_GET['action']) ? trim($_GET['action']) : ''; if(in_array($func, $allowed_actions)){ $func(); } else { die('非法操作'); } ``` 3. **参数过滤增强** - 对$_GET/$_POST参数进行正则匹配过滤 - 使用$htmlspecialchars()$转义特殊字符 - 禁止使用可变函数变量(通过修改php.ini设置$disable_functions$) 4. **补丁更新** - 官方已发布3.4版本补丁(需联系厂商获取) - 更新文件包括: - /controller/AdsController.php - /core/RequestFilter.class.php - /admin/index.php 5. **服务器加固** ```nginx # 在nginx配置中添加防护规则 location ~* \.php$ { fastcgi_param PHP_ADMIN_VALUE "open_basedir=/var/www/yccms/:/tmp/"; fastcgi_param disable_functions "exec,passthru,shell_exec,system,proc_open"; } ``` #### 验证方法 1. 使用渗透测试工具发送测试payload: ``` http://example.com/admin/ads.php?action=phpinfo ``` 2. 检查是否返回"非法操作"提示 3. 通过phpinfo()查看$disable_functions$配置
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值