DedeCMS 前台任意用户密码修改漏洞(CNVD-2018-0109)修复教程

一、漏洞说明

该漏洞属于「账号接管类高危漏洞」,攻击者无需知道用户账号密码,仅需构造恶意请求,即可绕过验证,直接修改任意用户(包括管理员)的密码,进而登录网站后台,控制整个网站。

  • 漏洞编号:CNVD-2018-0109
  • 危害等级:高危
  • 影响版本:DedeCMS V5.7 SP2 全版本(含各类衍生版本)
  • 漏洞文件:/member/resetpassword.php
  • 漏洞场景:前台会员中心「密码重置」功能,未对请求参数进行有效验证,缺少token校验和身份验证,导致攻击者可越权修改任意用户密码。

二、代码分析

漏洞核心原因:resetpassword.php 文件中,密码重置逻辑仅校验「用户ID」和「邮箱」,但未校验请求的合法性,且未加入随机token防止伪造请求,攻击者可通过构造用户ID和邮箱参数,直接提交密码重置请求。

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

<?php // 原漏洞代码 if($_POST['submit']){ $uid = $_POST['uid']; $email = $_POST['email']; $newpwd = $_POST['newpwd']; // 仅校验用户ID和邮箱是否匹配,无其他验证 $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='$uid' AND email='$email'"); if($row){ // 直接修改密码,无token校验、无身份验证 $newpwd = md5($newpwd); $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET pwd='$newpwd' WHERE mid='$uid'"); echo '密码修改成功'; }else{ echo '用户ID或邮箱错误'; } }

代码问题分析:

  1. 缺少 token 校验:未生成随机token并绑定用户会话,攻击者可直接伪造POST请求,提交任意uid和email参数;
  2. 缺少身份验证:未验证请求者是否为该用户本人,仅校验uid和email匹配,而uid和email可通过其他途径获取(如会员列表、文章作者信息);
  3. 参数未过滤:uid参数未进行intval强转,存在SQL注入风险(虽本漏洞核心为密码重置,但可被连带利用)。

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

本修复方案通过添加token校验、身份验证、参数过滤,彻底封堵漏洞,不改动网站原有功能,步骤如下:

步骤1:备份漏洞文件

备份 /member/resetpassword.php 文件,避免修改错误导致密码重置功能异常。

步骤2:修改漏洞文件代码

打开 /member/resetpassword.php 文件,替换为以下修复后的代码(保留原有页面样式,仅修改核心逻辑):

<?php session_start(); // 启动会话,用于token校验 if($_POST['submit']){ // 修复1:添加token校验,防止伪造请求 $token = $_POST['token']; if($token != $_SESSION['reset_token'] || empty($token)){ echo '非法请求,请刷新页面后重试'; exit; } // 修复2:参数过滤,uid强转int,防止SQL注入 $uid = intval($_POST['uid']); $email = addslashes($_POST['email']); $newpwd = addslashes($_POST['newpwd']); // 修复3:验证请求者身份(需登录后才能重置密码) if(empty($_SESSION['mid']) || $_SESSION['mid'] != $uid){ echo '请登录后重置自己的密码'; exit; } // 原有校验逻辑保留,增加安全性 $row = $dsql->GetOne("SELECT * FROM `#@__member` WHERE mid='$uid' AND email='$email'"); if($row){ $newpwd = md5($newpwd); $dsql->ExecuteNoneQuery("UPDATE `#@__member` SET pwd='$newpwd' WHERE mid='$uid'"); // 修复4:重置token,防止重复提交 unset($_SESSION['reset_token']); echo '密码修改成功,请重新登录'; }else{ echo '用户ID或邮箱错误'; } }else{ // 生成随机token,用于提交校验 $token = uniqid(mt_rand(), true); $_SESSION['reset_token'] = $token; // 原有页面展示代码(保留,不修改) // ......(此处保留原文件中的HTML页面代码) } ?>

步骤3:修改前端提交表单

在 resetpassword.php 的HTML表单中,添加token隐藏字段,确保提交时携带token(找到表单form标签内,添加以下代码):

<input type="hidden" name="token" value="<?php echo $_SESSION['reset_token']; ?>" />

步骤4:验证修复效果

  1. 未登录状态下,尝试提交密码重置请求,提示「请登录后重置自己的密码」,修复生效;
  2. 伪造token提交请求,提示「非法请求」,修复生效;
  3. 登录会员后,仅能重置自己的密码,无法修改其他用户密码,修复生效。

四、注意事项

  • 修改后务必测试会员密码重置功能,确保正常用户可重置自己的密码;
  • 若网站开启了会话缓存,需清理缓存,避免token失效;
  • 建议同时修改管理员账号的邮箱,避免攻击者通过邮箱信息构造请求(虽修复后已无法利用,但可进一步提升安全性)。

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

Read more

7倍速语音识别体验:Whisper GPU加速技术让Windows语音转文字效率飙升

7倍速语音识别体验:Whisper GPU加速技术让Windows语音转文字效率飙升 【免费下载链接】WhisperHigh-performance GPGPU inference of OpenAI's Whisper automatic speech recognition (ASR) model 项目地址: https://gitcode.com/gh_mirrors/wh/Whisper Whisper是一款基于OpenAI开源模型的高性能语音识别工具,通过GPGPU加速技术实现了语音转文字的高效处理。本文将深入解析Whisper在Windows系统上的GPU加速原理、核心功能及实际应用方法,帮助用户快速掌握这一强大工具。 🚀 为什么选择GPU加速的Whisper? 传统CPU语音识别往往面临处理速度慢、实时性差的问题。Whisper通过ComputeShaders目录下的HLSL shader文件(如add.hlsl、mulMatTiled.hlsl)实现了GPU并行计算,将语音识别速度提升7倍以上,同时保持高精度转录效果。 Windows用户可通过Whispe

AI绘画报错

提示输出验证失败:CheckpointLoaderSimple: - 值不在列表中:ckpt_name: 'v1-5-pruned-emaonly-fp16.safetensors' 不在 ['anything-v5-PrtRE.safetensors'] 中 模型文件夹里面没模型 这是官方链接:v1-5-pruned-emaonly.safetensors https://huggingface.co/runwayml/stable-diffusion-v1-5/tree/main 点击同一行的小下载箭头。然后把文件放在:models/checkpoints文件夹里 你还需要标准的VAE文件,也就是:vae-ft-mse-840000-ema-pruned.safetensors https://huggingface.co/stabilityai/sd-vae-ft-mse-original/tree/main 这个文件放在:models/vae文件夹里 现在你已经拥有运行所需的一切了。慢慢来。你最初生成的图片会很糟糕。但是继续尝试,很快你就能得到很棒的结果。

最完整WhisperLiveKit指南:从安装到生产部署的AI语音识别全流程

最完整WhisperLiveKit指南:从安装到生产部署的AI语音识别全流程 【免费下载链接】WhisperLiveKitReal-time, Fully Local Speech-to-Text and Speaker Diarization. FastAPI Server & Web Interface 项目地址: https://gitcode.com/GitHub_Trending/wh/WhisperLiveKit 你是否还在为实时语音转文字的延迟问题困扰?是否需要一个完全本地化部署的解决方案来保护数据隐私?WhisperLiveKit作为GitHub热门的开源项目,将彻底改变你处理实时语音识别的方式。本文将带你从安装到生产部署,掌握这一强大工具的全流程应用。 读完本文,你将能够: * 快速搭建本地语音识别服务 * 根据硬件条件选择最优模型配置 * 实现多语言实时转录与说话人分离 * 部署生产级别的Web应用与Chrome扩展 * 通过Docker容器化实现跨平台部署 为什么选择WhisperLiveKit? 传统的Whisper模型设计用于处理完整语

AI写论文秘籍公开!4款AI论文生成工具,开启智能写作新时代!

AI写论文秘籍公开!4款AI论文生成工具,开启智能写作新时代!

在2025年,学术写作正在经历一场智能化的浪潮。越来越多的人选择利用AI写论文工具,但在撰写硕士、博士论文等较长篇幅的学术作品时,这些工具常常显得力不从心。许多AI论文生成工具缺乏必要的理论深度,导致最终成果逻辑松散,无法满足专业学术写作的需求。 虽然AI写论文的技术在不断进步,但面对复杂的学术要求,普遍的AI论文写作工具仍无法提供可靠的帮助。许多使用者发现,简单的AI写专著或AI写教材工具虽然可以生成一些文本内容,但往往无法分析和论证深层次的学术观点。因此,这使得对于高标准学术写作来说,依赖单一的AI写论文方案并不明智。 对于想要撰写质量更高文稿的学者们而言,如何选择合适的AI论文写作工具显得尤为重要。为了帮助大家更好地应对这一挑战,接下来我们将介绍一些优秀的AI写作软件,如怡锐AI论文、海棠AI、文希AI写作以及笔启AI论文,这些工具各自具备不同的优势,将为您的学术写作提供更可靠的支持。 工具名称核心功能适用场景效率表现推荐指数怡锐AI论文处理公式数据代码、不限改稿、生成答辩PPT与稿件、降重、引用权威文献硕士博士论文、课程论文、开题报告、职称论文、MBA论文、专著等3分