DedeCMS plus/list.php 参数注入(SQL注入)修复教程

张开发
2026/4/12 19:09:29 15 分钟阅读

分享文章

DedeCMS plus/list.php 参数注入(SQL注入)修复教程
一、漏洞说明该漏洞属于前台SQL注入中危漏洞存在于DedeCMS列表页模块攻击者无需登录可通过构造恶意列表页请求触发SQL注入获取网站数据库信息、篡改列表数据影响网站正常展示漏洞核心为tid、id参数未过滤导致注入风险。漏洞类型SQL注入危害等级中危影响版本DedeCMS 全版本含V5.7 SP2 ~ 5.7.118及衍生版本漏洞文件/plus/list.php漏洞场景前台列表页展示功能中程序未对tid栏目ID、id内容ID参数进行严格过滤直接代入SQL查询语句导致攻击者可构造恶意参数触发SQL注入漏洞。二、代码分析漏洞核心原因list.php 文件中对前台传入的tid、id参数未进行任何过滤和类型强转直接将其代入SQL查询语句攻击者可构造恶意参数篡改查询逻辑实现SQL注入获取敏感数据或篡改列表数据。关键漏洞代码原文件片段?php // 原漏洞代码列表页查询逻辑tid、id未过滤 $tid $_GET[tid]; $id $_GET[id]; // 直接将未过滤的tid、id代入SQL查询存在注入风险 if(!empty($tid)){ $sql SELECT * FROM #__arctype WHERE id$tid; }elseif(!empty($id)){ $sql SELECT * FROM #__archives WHERE id$id; } $row $dsql-GetOne($sql); // 列表页展示逻辑... ?代码问题分析参数未过滤tid、id参数直接从GET请求中获取未进行任何过滤、转义处理允许传入包含SQL语句的恶意参数类型未强转tid、id参数应为整数类型栏目ID、内容ID程序未对其进行intval强转可传入字符串类型的恶意参数直接篡改SQL查询逻辑无参数校验未校验tid、id参数的合法性如是否为正数、是否存在对应栏目/内容攻击者可随意构造参数触发注入漏洞。漏洞利用示例仅用于学习请勿非法测试http://你的网站域名/plus/list.php?tid1′ UNION SELECT 1,admin,pwd,1 FROM #__admin–三、修复方法原位修复不升级、不影响模板本修复方案无需升级DedeCMS版本仅修改list.php文件通过过滤tid、id参数彻底封堵SQL注入漏洞不影响列表页正常功能步骤如下步骤1备份漏洞文件备份 /plus/list.php 文件备份路径示例/plus/list.php.bak避免修改错误导致列表页功能异常便于后续回滚操作。步骤2核心修复过滤tid、id参数打开 /plus/list.php 文件找到上述漏洞代码片段替换为以下修复后的代码核心是对tid、id参数进行过滤和强转杜绝注入风险?php // 修复1对tid、id参数进行intval强转确保为整数彻底杜绝SQL注入 $tid intval($_GET[tid]); $id intval($_GET[id]); // 修复2修改SQL查询语句适配整数参数消除注入风险 if(!empty($tid)){ $sql SELECT * FROM #__arctype WHERE id.$tid; }elseif(!empty($id)){ $sql SELECT * FROM #__archives WHERE id.$id; } $row $dsql-GetOne($sql); // 列表页展示逻辑...保留原有代码不做修改 ?步骤3额外加固可选提升安全性添加参数合法性校验在获取tid、id参数后添加判断逻辑禁止空值、负数或非法参数进一步拦截恶意请求代码如下// 新增参数合法性校验if((empty($tid) empty($id)) || ($tid 0 $id 0)){exit(‘非法请求禁止访问’);}过滤其他可控参数检查list.php文件中其他用户可控参数如page、orderby等若存在未过滤的情况同样添加对应过滤防止连带注入风险限制列表页访问频率通过Apache/Nginx配置或代码添加IP限制禁止单个IP短时间内多次访问列表页链接防止攻击者暴力测试和注入尝试。步骤4验证修复效果访问恶意利用链接http://你的网站域名/plus/list.php?tid1′ and 12–若提示「非法请求禁止访问」或无有效列表内容展示则修复生效构造其他恶意参数如 tid1′ UNION SELECT 1,2,3,4–无SQL注入现象且页面无异常报错修复生效测试正常列表页功能访问合法的列表页链接如 http://你的网站域名/plus/list.php?tid1可正常展示列表内容说明功能未受影响。四、注意事项修复后需全面测试列表页的展示、分页、筛选等功能确保无异常避免影响网站前台展示效果若网站列表页有二次开发如自定义列表样式、内容筛选规则需确认修改后的代码与二次开发内容无冲突尤其是涉及tid、id参数的逻辑该漏洞为全版本通用漏洞无论使用哪个版本的DedeCMS均需进行修复避免攻击者利用漏洞获取敏感数据建议定期检查列表页数据若发现异常内容展示及时排查是否有攻击者尝试利用漏洞。本文由 流觞运维 整理https://www.lnmpweb.cn/archives/7497

更多文章