DedeCMS V5.7 SP2后台代码执行漏洞复现(CNVD-2018-01221)
dedeCMS V5.7 SP2后台代码执行漏洞复现(CNVD-2018-01221)
一、漏洞描述
织梦内容管理系统(Dedecms)是一款PHP开源网站管理系统。Dedecms V5.7 SP2版本中的tpl.php中存在代码执行漏洞,可以通过该漏洞在增加新标签中上传木马,获取webshell。该漏洞利用需要登录后台,并且后台的账户权限是管理员权限。
二、漏洞环境搭建
1、官方下载DeDeCMS V5.7 SP2(UTF-8),下载地址: http://www.dedecms.com/products/dedecms/downloads/
2、使用phpstudy搭建web环境
3、把下载好的源码放到网站根目录下(www),然后开启phpstudy, 浏览器访问http://192.168.10.171/dedecms/uploads/install/index.php

4、点击我已阅读并继续。然后是环境检测,保存默认即可

5、接下来是参数配置,需要设置的只有数据库密码,把自己的密码填上去就行了

6、然后就把环境搭好了

三、漏洞复现
1、由于此漏洞是属于后台漏洞,需要先登录到后台,后台默认的账户和密码都是admin。Dedecms默认后台路径是/uploads/dede。

2、分析tpl.php里面的代码

a.此处定义了一个savetagfile的函数,首先做一个判断,参数”action”是否等于savetagfile,如更等于就进行下一步
b.这里有一个csrf检验函数,需要加上token来绕过限制
c.正则表达式匹配,这里的意思是判断filename参数是否匹配正则表达式的条件,不匹配就不允许修改操作的进行。
d.把$content里面的内容写入到相对用的路径里,由于这一部分代码除了对写入的文件名字做了简单的过滤和一个csrf防护之外,其他并没有什么安全措施,导致我们可以任意写入代码。
3、通过上面的代码,有csrf检测防御,需要获得token来进行绕过。再次浏览tpl.php代码,发现action的参数有很多,比如del,edit,upload等等,但只有传入upload的时候页面才会获取token,而其他的都没有获取token,所以只能通过action=upload来获取token。

4、我们再去tpl.php里看一下,发现action的参数有很多,只有通过action=upload来获取token,浏览器访问http://192.168.10.171/dedecms/uploads/dede/tpl.php?action=upload

5、然后查看页面源码,发现token

6、通过浏览tpl.php代码,发现要上传的参数有:action,token,filename,content,构造payload
a.由于dedecms全局变量注册的特性,所以这里的content变量和filename变量可控。
b.可以把content内容直接写到以.lib.php结尾的文件中。
Payload: http://192.168.10.171/dedecms/uploads/dede/tpl.php?action=savetagfile&token=d751030d70c713c3687a33b77b92e046&filename=abc.lib.php&content=<?php phpinfo();?>
7、浏览器访问构造的payload,下图发现成功写入

8、根据代码可以看到写入到taglib目录,浏览器访问 http://192.168.10.171/dedecms/uploads/include/taglib/abc.lib.php

9.gethsell写入一句话木马

10.菜刀链接,成功getshell

四、漏洞防御
1.禁止此处写入文件。
2.过滤恶意标签
DedeCMS V5.7 SP2后台代码执行漏洞复现(CNVD-2018-01221)的更多相关文章
- Windows CVE-2019-0708 远程桌面代码执行漏洞复现
Windows CVE-2019-0708 远程桌面代码执行漏洞复现 一.漏洞说明 2019年5月15日微软发布安全补丁修复了CVE编号为CVE-2019-0708的Windows远程桌面服务(RDP ...
- IIS6远程代码执行漏洞复现CVE-2017-7269
简述 CVE-2017-7269是IIS 6.0中存在的一个栈溢出漏洞,在IIS6.0处理PROPFIND指令的时候,由于对url的长度没有进行有效的长度控制和检查,导致执行memcpy对虚拟路径进行 ...
- Tomcat/7.0.81 远程代码执行漏洞复现
Tomcat/7.0.81 远程代码执行漏洞复现 参考链接: http://www.freebuf.com/vuls/150203.html 漏洞描述: CVE-2017-12617 Apache T ...
- IIS_CVE-2017-7269 IIS6.0远程代码执行漏洞复现
CVE-2017-7269 IIS6.0远程代码执行漏洞复现 一.漏洞描述 IIS 6.0默认不开启WebDAV,一旦开启了WebDAV,安装了IIS6.0的服务器将可能受到该漏洞的威胁. 二.影响版 ...
- Windows漏洞:MS08-067远程代码执行漏洞复现及深度防御
摘要:详细讲解MS08-067远程代码执行漏洞(CVE-2008-4250)及防御过程 本文分享自华为云社区<Windows漏洞利用之MS08-067远程代码执行漏洞复现及深度防御>,作者 ...
- Apache log4j2 远程代码执行漏洞复现👻
Apache log4j2 远程代码执行漏洞复现 最近爆出的一个Apache log4j2的远程代码执行漏洞听说危害程度极大哈,我想着也来找一下环境看看试一下.找了一会环境还真找到一个. 漏洞原理: ...
- 【代码审计】YUNUCMS_v1.0.6 后台代码执行漏洞分析
0x00 环境准备 QYKCMS官网:http://www.yunucms.com 网站源码版本:YUNUCMSv1.0.6 程序源码下载:http://www.yunucms.com/Downl ...
- vBulletin 5.x 版本通杀远程代码执行漏洞复现
漏洞介绍 vBulletin中存在一个文件包含问题,可使恶意访问者包含来自 vBulletin 服务器的文件并且执行任意 PHP 代码.未经验证的恶意访问者可通过向index.php发出包含 rout ...
- Zabbix 代码执行漏洞复现 /zabbix-cve_2017_2824
环境: 利用docker将vulfocus环境pull到本地搭建 漏洞描述: Zabbix 是由Alexei Vladishev 开发的一种网络监视.管理系统,基于 Server-Client 架构. ...
随机推荐
- 【转】开发一个这样的 APP 要多长时间?
作者:蒋国刚 www.cnblogs.com/guogangj/p/4676836.html 呵呵. 这是一个“如有雷同,纯属巧合”的故事,外加一些废话,大家请勿对号入座.开始了…… 我有些尴尬地拿着 ...
- Bandizip解压压缩软件
上次重装系统以后,特别注意安装软件,在这里提一些比较好的 解压软件:Bandizip 这个是一个免费轻量级的软件,压缩解压速度快,没什么广告,推荐大家在官方下载 Bandizip下载网址 点击下载安装 ...
- nginx 反向代理之 proxy_pass
格式很简单: proxy_pass URL; 其中URL包含:传输协议(http://, https://等).主机名(域名或者IP:PORT).uri. 示例如下: proxy_pass http: ...
- linux命令--查找与帮助
一.搜寻命令 1.whereis命令 whereis是搜索系统命令的命令,也就是说,whereis 命令不能搜索普通文件, 而只能搜索系统命令. 命令名称:whereis 英文原意:locate th ...
- 拥抱webpack4,有效缩减构建时间57%+
背景 最近有感觉到,随着系统模块数量的增加,wepack编译打包的速度越来越慢,于是我想给项目做一下优化升级,也借此机会系统地学习一下webpack4. 升级过程 当前版本 "depende ...
- 剑指offer笔记面试题14----剪绳子
题目:给你一根长度为n的绳子,请把绳子剪成m段(m,n都是整数,n > 1 并且m > 1),每段绳子的长度记为k[0], k[1], ...k[m].请问k[0] x k[1] x .. ...
- Vue结合后台导入导出Excel问题详解
话不多说,直接上前端代码 axios({ method: 'post', url: 'http://localhost:19090/exportUser',//这个是请求的地址 params: {// ...
- 大话Git系列之初识版本控制系统(2)
本次接着上次的来介绍版本控制系统,这个讲到的将是Git与Github,说一下什么是Git,什么是GitHub?他们之间的关系是什么? 1.Git 是代码管理的工具 2.GitHub 是基于Git实现的 ...
- RDIFramework.NET敏捷开发框架Web新增邮件中心实现便捷式的邮件收发
1.引言 邮件收发在很多业务系统中都有这样的需求,是比较正式和常用的功能.在我们的框架中提供了邮件中心功能模块,集内部邮件的收发.邮件归类.邮件星标的标记.邮件的删除与彻底删除等,邮件中心功能模块界面 ...
- 通过存储过程(SP)实现SQL Server链接服务器(LinkServer)的添加
1. 背景 当系统的微服务化做的不是很高的时候,部分功能要通过DB LinkServer 来实现跨 Server 查询,当然,有时候BI抽数据.DBA数据库维护可能也会创建LinkServer. 特别 ...