文章总结: 本文记录审计DeDeCMS获取CNVD证书的流程。作者分析后台插件上传功能,发现module_upload.php与module_main.php处理逻辑缺陷。通过构造包含恶意代码的XML或ZIP包,利用WriteFiles方法可将Webshell写入服务器目录,最终达成漏洞利用。文末包含课程广告。 综合评分: 65 文章分类: 代码审计,漏洞分析,WEB安全,软文广告
记一次学员审计拿下CNVD证书流程
原创
学员投稿 学员投稿
进击安全
2026年1月20日 21:04 北京
免责申明
本文章仅用于信息安全防御技术分享,因用于其他用途而产生不良后果,作者不承担任何法律责任,请严格遵循中华人民共和国相关法律法规,禁止做一切违法犯罪行为。
一、前言
之前看到小朋友师傅靠dedecms成功拿到过正常,并且在之后询问一些师傅们得知CNVD在不同版本当中的漏洞都是给过的,这里抱着侥幸心理,尝试去审计dedecms的漏洞来混一本CNVD证书。
之前尊师的文章如下
Ambition,公众号:进击安全白盒审计DeDeCMS拿到CNVD证书
二、代码审计
在后台-插件管理-上传插件处选择并上传插件(xml文件或者内含有xml文件的zip压缩包)
在\dede\module_upload.php文件中,首先接受xml文件或者内含有xml文件的zip压缩包(如果是压缩包系统仅遍历ZIP 内文件列表,匹配第一个.xml文件作为模块文件),然后实例化DedeModule类,调用GetModuleInfo()方法解析临时 XML 文件的模块元信息。以解析结果中hash值(模块唯一标识)是否非空为核心判定依据,若hash为空,判定为非织梦标准模块,执行临时文件删除、资源清理操作后,触发格式错误提示并终止。若为织梦标准模块,系统会校验其唯一性,通过后将文件以hash 值命名持久化存储至模块目录(\data\module),清理临时资源并提示成功上传一个新的模块。
然后需要点击安装。
点击安装后,在文件\dede\module_main.php文件中第272行调用 DedeModule 类的 WriteFiles 方法,将模块包内的文件 / 目录解压 / 写入到指定路径(其中目录与文件名、文件内由模块内代码决定)。
点击确定。
点击继续安装。
上传成功,目录:\cmd。
编写插件,其中PHP代码使用base64编码。
广告区域
目前第四期进阶课程已经开始,课表如下:
同时报名第四期基础课程同样可看,课表如下:
同时具备内部资料以及靶场相关福利,想要了解的师傅可以冲了。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:进击安全 学员投稿 学员投稿《记一次学员审计拿下CNVD证书流程》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论