『PHP代码审计』飓风CMS1.10存在命令执行漏洞
发布日期:2021-06-28 20:00:28 浏览次数:2 分类:技术文章

本文共 2428 字,大约阅读时间需要 8 分钟。

文章目录

前言

作者:Ho1aAs

博客:https://blog.csdn.net/xxy605

一、漏洞演示

进入飓风CMS后台,选择插件——文件管理

这个插件能够用于管理网站的文件,提供上传、新建文件的功能

在网站根目录新建空php文件,写入命令

URL访问,触发命令执行

二、漏洞分析

文件管理插件安装在x/plugin/managefile_xxxxxx,插件源码在x/plugin/managefile_xxxxxx/controller/index.php

/**     * 编辑文件内容     */    public function editFileContent()    {
//获取当前文件路径 $dirPath = $this->dirPath; if (isset($_REQUEST['dirname']) && ($_REQUEST['dirname'] != '')) {
$dirname = $_REQUEST['dirname']; //目录名 $dirPath = $dirPath . $_REQUEST['dirname']; } $onlineEditor = new OnlineEditor($dirPath); $filename = $_REQUEST['filename']; $res = $onlineEditor->putContent($dirPath . $filename, $_REQUEST['filecontent']); if ($res) {
$code = 0; $msg = "编辑成功"; } else {
$code = 1; $msg = "编辑失败-文件不可写"; } //返回数据到页面 pluginHelp::export(['dirname' => $dirname], $code, $msg); } /** * 创建文件 */ public function createFile() {
//获取当前文件路径 $dirPath = $this->dirPath; if (isset($_REQUEST['dirname']) && ($_REQUEST['dirname'] != '')) {
$dirname = $_REQUEST['dirname']; //目录名 $dirPath = $dirPath . $_REQUEST['dirname']; } //接收页面输入的文件名称 if (isset($_REQUEST['createfilename'])) {
$createfilename = $_REQUEST['createfilename']; //当前文件名 $dirPath = $dirPath . $createfilename; } //创建文件 $onlineEditor = new OnlineEditor($dirPath); $res = $onlineEditor->createFile($dirPath); //返回数据到页面 pluginHelp::export(['dirname' => $dirname], $res['code'], $res['msg']); } /** * 上传文件 */ public function uploadFile() {
//获取当前文件路径 $dirPath = $this->dirPath; //接收当前目录名称 if (isset($_REQUEST['dirname']) && ($_REQUEST['dirname'] != '')) {
$dirname = $_REQUEST['dirname']; //目录名 $dirPath = $dirPath . $_REQUEST['dirname']; } //接收上传的文件 $upfile = $_FILES['upfile']; //上传文件 $onlineEditor = new OnlineEditor($dirPath); $res = $onlineEditor->uploadFile($upfile, $dirPath); //返回数据到页面 pluginHelp::export([""], $res['code'], $res['msg']); }

以上函数没有对文件内容进行过滤就执行保存,因此只要进入后台就能执行命令

三、利用

新建PHP文件调用PHP命令执行函数

四、修复

建议限制该插件的功能或是过滤新建文件的内容

五、总结

由于以下问题导致该漏洞的产生:

  • 对文件管理插件的非法利用
  • 保存php文件无内容审查和过滤

转载地址:https://blog.csdn.net/Xxy605/article/details/117627161 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:『Ruby』判断语句
下一篇:『Ruby』变量与伪变量

发表评论

最新留言

第一次来,支持一个
[***.219.124.196]2024年04月27日 14时47分11秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

字节跳动Android金三银四解析:插件化框架解读之android系统服务实现原理,讲的明明白白! 2019-04-29
农民工看完都会了!GitHub上标星13k的《Android面试突击版》,吊打面试官系列! 2019-04-29
升职加薪必看!读完我这份《Android开发核心源码精编解析》面试至少多要3K!附答案 2019-04-29
华为架构师深入讲解Android开发!为什么Flutter能最好地改变移动开发?吐血整理 2019-04-29
基于安卓的兼职app开发!万字长文轻松彻底入门Flutter,终获offer 2019-04-29
大牛深入讲解!2021年Android网络编程总结篇,书籍+视频+学习笔记+技能提升资源库 2019-04-29
大牛深入讲解!算法题+JVM+自定义View,大厂内部资料 2019-04-29
太厉害了!记录一次腾讯Android岗面试笔试总结,全套教学资料 2019-04-29
如何成为杰出的程序员?阿里P8架构师的Android大厂面试题总结,已拿到offer 2019-04-29
字节跳动社招面试记录,关于网络优化你必须要知道的重点,附面试题答案 2019-04-29
大牛手把手带你!宅家36天咸鱼翻身入职腾讯,经典好文 2019-04-29
大牛深入讲解!Android高级工程师面试实战,一线互联网公司面经总结 2019-04-29
如何成为杰出的程序员?2021年Android高级面试题,2年以上经验必看 2019-04-29
字节跳动社招面试记录,2021年上半年最接地气的Android面经,实战解析 2019-04-29
安卓3d游戏开发视频!春招我借这份PDF的复习思路,完整版开放下载 2019-04-29
安卓app开发!大厂Offer拿到手软啊!年薪超过80万! 2019-04-29
安卓ndk开发!高级Android晋升之View渲染机制,附答案 2019-04-29
安卓开发交流!Android程序员架构之路该如何继续学习?含爱奇艺,小米,腾讯,阿里 2019-04-29
安卓开发网!Android面试知识点总结宝典助你通关!含泪整理面经 2019-04-29
安卓开发者!京东面试真题解析,移动架构师成长路线 2019-04-29