当前位置: 首页 > news >正文

DedeCMS plus/guestbook.php SQL注入漏洞修复教程

一、漏洞说明

该漏洞属于前台SQL注入中危漏洞,存在于DedeCMS留言板模块,攻击者无需登录,可通过构造恶意留言或留言查看请求,触发SQL注入,获取网站数据库信息、伪造留言内容,甚至越权操作网站数据。

  • 漏洞编号:公开漏洞(无专属CVE/CNVD编号,为全版本通用漏洞)
  • 危害等级:中危(可升级为高危,取决于攻击者利用深度)
  • 影响版本:DedeCMS 全版本(含V5.7 SP2 ~ 5.7.118及衍生版本)
  • 漏洞文件:/plus/guestbook.php
  • 漏洞场景:前台留言板查看、提交留言功能中,程序未对id、mid等参数进行严格过滤,直接代入SQL查询,导致SQL注入漏洞。

二、代码分析

漏洞核心原因:guestbook.php 文件中,对前台提交的id参数(用于查看单条留言)未进行任何过滤和类型强转,直接将其代入SQL查询语句,攻击者可构造恶意参数,篡改查询逻辑,实现SQL注入。

关键漏洞代码(原文件片段):

<?php // 原漏洞代码(留言查看逻辑) $id = $_GET['id']; $sql = "SELECT * FROM `#@__guestbook` WHERE id='$id'"; $row = $dsql->GetOne($sql); // 留言展示逻辑... ?>

代码问题分析:

  1. 参数未过滤:id参数直接从GET请求中获取,未进行任何过滤、转义处理,允许传入包含SQL语句的恶意参数;
  2. 类型未强转:id参数应为整数类型(留言ID),程序未对其进行intval强转,可传入字符串类型的恶意参数;
  3. 无参数校验:未校验id参数的合法性(如是否为正数、是否存在对应的留言),攻击者可随意构造参数触发漏洞。

漏洞利用示例(仅用于学习,请勿非法测试):

http://你的网站域名/plus/guestbook.php?id=1′ UNION SELECT 1,2,3,admin,pwd FROM #@__admin–

上述请求可通过注入获取管理员账号和密码,进一步登录后台控制网站。

三、修复方法(原位修复,不升级、不影响模板)

本修复方案无需升级DedeCMS版本,仅修改guestbook.php文件,通过参数强转、合法性校验等方式封堵漏洞,不影响留言板正常功能,步骤如下:

步骤1:备份漏洞文件

备份 /plus/guestbook.php 文件,备份路径示例:/plus/guestbook.php.bak,避免修改错误导致留言板功能异常,便于后续回滚。

步骤2:核心修复(参数强转+过滤)

打开 /plus/guestbook.php 文件,找到上述漏洞代码片段,替换为以下修复后的代码:

<?php // 修复1:参数强转int,确保id为整数,杜绝SQL注入 $id = intval($_GET['id']); // 修复2:修改SQL查询语句,适配整数参数 $sql = "SELECT * FROM `#@__guestbook` WHERE id=".$id; $row = $dsql->GetOne($sql); // 留言展示逻辑...(保留原有代码,不做修改) ?>

步骤3:额外加固(可选,提升安全性)

  1. 添加参数合法性校验:在获取id参数后,添加判断逻辑,禁止空值、负数或非法参数,代码如下:

// 新增:参数合法性校验

if(empty($id) || $id <= 0){

exit(‘非法请求,禁止访问’);

}

  1. 过滤留言提交参数:检查留言提交功能中的content、name等参数,添加htmlspecialchars()过滤,防止XSS攻击(连带加固):

$content = htmlspecialchars($_POST[‘content’], ENT_QUOTES);

$name = htmlspecialchars($_POST[‘name’], ENT_QUOTES);

  1. 限制留言提交频率:通过添加Cookie或Session限制,禁止同一IP短时间内多次提交留言,防止暴力注入和垃圾留言。

步骤4:验证修复效果

  1. 访问恶意利用链接:http://你的网站域名/plus/guestbook.php?id=1′ and 1=2–,若提示「非法请求,禁止访问」或无有效留言展示,则修复生效;
  2. 构造其他恶意参数(如 id=1′ UNION SELECT 1,2,3,4–),无SQL注入现象,修复生效;
  3. 测试正常留言功能:提交留言、查看留言,均可正常操作,说明功能未受影响。

四、注意事项

  • 修复后需全面测试留言板的提交、查看、删除(若有)等功能,确保无异常;
  • 若网站留言板有二次开发(如自定义留言审核、留言分类),需确认修改后的代码与二次开发内容无冲突;
  • 该漏洞为全版本通用漏洞,无论使用哪个版本的DedeCMS,均需进行修复;
  • 建议定期清理留言板中的异常留言,避免攻击者通过留言内容植入恶意代码。

本文由 流觞运维 整理https://www.lnmpweb.cn/archives/7487

http://www.jsqmd.com/news/614091/

相关文章:

  • HH-Lol-Prophet:基于数据智能分析的英雄联盟对局先知系统
  • KIMI AI API本地化部署指南:从技术原理到企业级应用
  • 二手硬盘避坑指南:用MHDD检测硬盘健康状态的5个关键指标(附真实案例)
  • 如何用Awoo Installer实现Switch全格式游戏安装的无缝体验
  • Sunshine游戏串流完整指南:如何用开源方案打造家庭游戏中心
  • 不仅学技术更要拿文凭!四川优质职业中学“3+4/3+3”升学班,让未来不设限 - 深度智识库
  • 整流器专题(2)【详细讲解】电网电压不平衡时PWM整流器控制:基于双电流功率平衡算法抑制二次谐波
  • 数据库数据恢复—Oracle 11g表被Truncate后无备份数据恢复案例
  • 代码即法律:智能合约如何重构万亿级DApp生态?
  • 大模型网页版内容聚合工具:一键获取多个AI助手的回答
  • 拒绝踩坑!四川初升高家长必读:如何甄选“升学+技能”双优的职业中学? - 深度智识库
  • 解锁智能散热:开源工具FanControl的多场景风扇管理指南
  • 为 Avalonia 启用平滑滚动与缩放
  • 从主从复制到MGR:为什么你的MySQL高可用方案该升级了?
  • 【大疆dji】ESDK开发环境搭建(网络配置篇)
  • 如何在5分钟内掌握Fan Control风扇控制软件?Windows系统散热优化完全指南
  • 真实用户测评,清渍护齿效果突出,2026牙白去黄牙膏热销榜第一名推荐 - 资讯焦点
  • Windows下Electron打包踩坑:ERR_ELECTRON_BUILDER_CANNOT_EXECUTE,别急着改权限,先看看你的安装包是不是太大了
  • 魔兽争霸III优化神器:WarcraftHelper让你的经典游戏焕然一新
  • 从“缝合怪”到“架构师”:用模块化思维重构你的YOLO项目(附完整代码模板)
  • Agent 时代的 PM 新能力:从写需求到写“策略与约束”
  • 破解 Agent 技能孤岛 好本事全公司共享
  • MacOS下VMware Fusion配置静态IP与端口转发实战指南
  • FastAPI 教务教研管理系统架构设计
  • 向量数据库 vs. ArangoDB 知识图谱 GraphRAG
  • 农业PHP配置黑盒被攻破:基于AST解析的可视化参数血缘追踪技术(附开源工具链v1.3.0)
  • 【蒸馏技术KD】
  • WPF新手村教程(七)—— 终章(MVVM架构初见杀)湃
  • 2026届毕业生推荐的六大降重复率助手推荐榜单
  • EVM锁链 vs 公链革命:GameFi开发者如何破解「不可能三角」?