您当前位置:首页>项目技能>技能技巧

pbootcms3.28 3.25 3.24 3.20 等版本,后台基本设置通过脚本直接复制上传木马文件漏洞修复方案

发布时间:2026-03-06 阅读量:152 超级管理员

最近在整理PBOOTCMS网站的时候,发现不少的网站都出现了被登录后台后,通过站点基础设置里面的统计代码和版权信息来实现远程木马被加载到本地网站空间的问题;主要问题是程序有一个动态缓存机制,依赖于这个机制实现了远程木马文件的上传;那修复方案如下:找到:D:\K_website\PbootCMS-V3···...

扫码分享二维码

二维码

详细介绍

最近在整理PBOOTCMS网站的时候,发现不少的网站都出现了被登录后台后,通过站点基础设置里面的统计代码和版权信息来实现远程木马被加载到本地网站空间的问题;主要问题是程序有一个动态缓存机制,依赖于这个机制实现了远程木马文件的上传;

那修复方案如下:

找到:D:\K_website\PbootCMS-V3.2.8\PbootCMS-3.2.8\apps\admin\controller\content\SiteController.php 文件,然后打开文件后,找到以下代码:

    // 修改站点信息
    public function mod()
    {
        if (! $_POST) {
            return;
        }
        
        $data = array(
            'title' => post('title'),
            'subtitle' => post('subtitle'),
            'domain' => post('domain'),
            'logo' => post('logo'),
            'keywords' => post('keywords'),
            'description' => post('description'),
            'icp' => post('icp'),
            'theme' => basename(post('theme')) ?: 'default',
            'statistical' => post('statistical'),
            'copyright' => post('copyright')
        );
        
        path_delete(RUN_PATH . '/config'); // 清理缓存的配置文件
        if ($this->model->checkSite()) {
            if ($this->model->modSite($data)) {
                $this->log('修改站点信息成功!');
                success('修改成功!', - 1);
            } else {
                location(- 1);
            }
        } else {
            $data['acode'] = session('acode');
            if ($this->model->addSite($data)) {
                $this->log('修改站点信息成功!');
                success('修改成功!', - 1);
            } else {
                location(- 1);
            }
        }
    }

然后再使用以下代码替换 就可以了;

    /**
     * 修改站点信息
     */
    public function mod()
    {
        // 非POST请求直接返回
        if (!$_POST) {
            return;
        }
        // 安全过滤: 移除所有字段中的PHP标签
        $cleanData = [];
        foreach ($_POST as $key => $value) {
            // 增强型标签过滤(支持多标签检测)
            if (is_string($value) && preg_match('/(<\?(php|=|[^a-z])|\?>)/i', $value)) {
                // 检测具体标签类型
                $detected_tags = [];
                if (preg_match('/<\?php/i', $value)) {
                    $detected_tags[] = 'PHP标准标签';
                }
                if (preg_match('/<\?=|\bphp\b/i', $value)) {
                    $detected_tags[] = '短标签';
                }
                if (preg_match('/<%|%>/', $value)) {
                    $detected_tags[] = 'ASP风格标签';
                }
                // 构建错误提示(包含IP记录)
                $error_msg = '提交内容包含非法代码标签:' . implode('、', $detected_tags) . ',已记录IP!';
                error($error_msg); // 终止并返回错误
            }
            // 保留原始处理逻辑(建议后续添加更多清理措施,如XSS过滤)
            $cleanData[$key] = $value;
        }
        // 构建数据(使用清理后的数据,设置默认空字符串)
        $data = array(
            'title'       => $cleanData['title'] ?? '',
            'subtitle'    => $cleanData['subtitle'] ?? '',
            'domain'      => $cleanData['domain'] ?? '',
            'logo'        => $cleanData['logo'] ?? '',
            'keywords'    => $cleanData['keywords'] ?? '',
            'description' => $cleanData['description'] ?? '',
            'icp'         => $cleanData['icp'] ?? '',
            'theme'       => basename($cleanData['theme'] ?? '') ?: 'default', // 主题默认值
            'statistical' => $cleanData['statistical'] ?? '',
            'copyright'   => $cleanData['copyright'] ?? ''
        );
        // 清理缓存的配置文件
        path_delete(RUN_PATH . '/config');
        // 检查站点是否存在:存在则修改,不存在则新增
        if ($this->model->checkSite()) {
            if ($this->model->modSite($data)) {
                $this->log('修改站点信息成功!');
                success('修改成功!', -1);
            } else {
                location(-1);
            }
        } else {
            $data['acode'] = session('acode');
            if ($this->model->addSite($data)) {
                $this->log('修改站点信息成功!');
                success('修改成功!', -1);
            } else {
                location(-1);
            }
        }
    }
上一篇 飞书文档内视频被编写所有者设置权限,无法下载?看这里!!!
下一篇 你知道如何针对PBOOTCMS在自己网站里面也接入商业密钥授权吗?

内容版权声明

Copyright Notice

内容链接: https://www.diezanrpa.com/jinengjiqiao/1251.html
内容标题: pbootcms3.28 3.25 3.24 3.20 等版本,后台基本设置通过脚本直接复制上传木马文件漏洞修复方案

当前文章由【付涛】本人原创开发与文案内容写作,内容版权归当前平台所有,如需转载,请务必注明来源及链接,谢谢合作!

本文最后更新发布于【2026-03-06】,某些文章具有时效性,若有错误或已失效,请联系客服

争议处理:针对本站内容若有异义,亦可直接与【法律顾问:易兴俊,律师联系电话:13825799821】直接联系沟通

GEO