youdianCMS v8代码审计

youdianCMS官方地址

一 代码执行漏洞

在后台模板处修改任意模板添加php代码即可执行。

youdiancms8.0\App\Core\Lib\Template\ThinkTemplate.class.php
97行,其使用include包含了模板文件

证明:
在后台模板管理处写入phpinfo

2 刷新首页,phpinfo执行了

二 XXE漏洞

后台模板管理处存在XXE漏洞,包括电脑模板管理,手机模板管理两处
写入

点击设置会触发XXE

接收到了请求

代码审计:
1 /App/Lib/Action/Admin/TemplateAction.class.php:68
当攻击者通过/index.php/Admin/template/Modify?file=/config.xml页面修改xml文件后,通过此模块功能进行保存,可以看到其对文件名进行验证,对内容进行相关解码但并未进行任何恶意代码的过滤,使得攻击者的恶意代码可以顺利保存。

2 /App/Lib/Action/Admin/TemplateAction.class.php:307
此为xxe漏洞的触发页面,当上述恶意代码写入config.xml并保存后通过此功能进行触发。可以看到,代码判断config.xml文件存在时,实例一个YdTemplateConfig()对象,并调用getAttribute方法

三 文件上传漏洞

CMS会在后台处设置允许上传文件的格式白名单,且在代码中有一串黑名单,当上传文件时会对后缀验证是否处在此黑名单。但是由于白名单可认为控制添加,黑名单存在绕过,所以出现了此漏洞

添加pht或phtml格式

任意上传点都行

返回包中显示了文件路径

连接即可

代码审计:
App/Lib/Action/BaseAction.class.php
可以看到作者添加了很多黑名单后缀,但是pht 和phtml未在其中,且可以执行php代码。

四 任意文件上传

CMS存在模板压缩包上传功能,但是未能对其中文件数量和内容进行控制,所以在压缩包中添加任意文件即可

此为我添加在压缩包中的后门文件

代码审计:
App/Lib/Action/AdminBaseAction.class.php
代码只对压缩包进行了重名验证,有效验证,无任何安全性处理,所以存在此漏洞。

原文地址:https://www.cnblogs.com/zongdeiqianxing/p/13495716.html