前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DedecmsV5.7 SP2后台代码执行

DedecmsV5.7 SP2后台代码执行

作者头像
ly0n
发布2020-11-04 11:25:00
1.7K0
发布2020-11-04 11:25:00
举报
文章被收录于专栏:ly0nly0n

前言

感觉自己代码审计的能力不太行,于是下载了一个cms来锻炼下自己的代码审计功底,这篇文章记录一下这个dedecms代码执行的漏洞

源码下载

漏洞介绍

​ 织梦内容管理系统(Dedecms)是一款PHP开源网站管理系统。Dedecms V5.7 SP2版本中的tpl.php中存在代码执行漏洞,可以通过该漏洞在增加新标签中上传木马,获取webshell。该漏洞利用需要登录后台,并且后台的账户权限是管理员权限。

环境搭建

​ 1.下载好源码后放到wwwroot目录下,将网站的目录指向修改一下,我是将目录指向了uploads目录,安装的时候在后面输入install即可按照步骤操作。

​ 2.在windows下使用phpstudy来搭建,下载好源码之后将源码放在www目录下,然后访问ip/dedecms/uploads/install然后就可以按照步骤来安装dedecms。这里就不再演示了。

漏洞复现

这个漏洞是属于后台漏洞,我们必须知道的是后台管理员的密码,这里是自己搭建的,所以账号和密码都是知道的,所以直接登录进后台。dedecms的默认后台地址是dede。所以我们可以直接登录。

我们要先获取token值,在tpl.php代码中我们可以看到,只有在upload那里可以得到token,这个在下面的漏洞分析中会具体分析。我们先来访问tpl.php?action=upload来获取token。

然后访问

访问 http://ip/dede/tpl.php?filename=secquan.lib.php&action=savetagfile&content=<?php phpinfo();?>&token=55ab8c3e67797476fac5a53259f700b6[URL地址+token值自行更换]

然后访问 /include/taglib/secquan.lib.php读取得到phpinfo

漏洞分析

直奔主题,找到tpl.php的代码,进行代码审计。我们先来看tpl.php的代码都写了什么。

这段代码就是我们访问tpl.php?action=upload之后的页面,我们可以看到我们在这个页面可以获取到token,我们应该都知道token能用来绕过csrf,所以我在tpl.php又搜了下csrf看到了下面的代码。

分析下这段代码,首先a也就是我标的第一行,定义了一个savetagfile的函数,判断参数是否为savetagfile,如果等于就进行下一步。标注的第二个点就是csrf_check也就是我们的token用来绕过的地方。第三处是一个正则,意思是判断filename参数是否匹配正则表达式的条件,不匹配就不允许修改操作的进行。第四处把$content里面的内容写入到相对用的路径里。

通过分析这段代码我们可以知道除了对文件名做了简单的过滤和一个csrf防护之外,并没有其他的保护,所以我们可以任意写入代码。

我们可以访问tpl.php?action=upload来获取token

我对tpl.php的代码进行了分析,可以得到我要上传的的参数有action,token,filename,content这里的content和filename又是我们可控的。所以由此可以构造payload。

构造payload:

http://ip/dede/tpl.php?filename=secquan.lib.php&action=savetagfile&content=<?php phpinfo();?>&token=55ab8c3e67797476fac5a53259f700b6[URL地址+token值自行更换]成功写入。

然后在访问:/include/taglib/secquan.lib.php即可的到phpinfo

写入一句话木马,然后使用菜刀连接即可

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 漏洞介绍
  • 环境搭建
  • 漏洞复现
  • 漏洞分析
相关产品与服务
代码审计
代码审计(Code Audit,CA)提供通过自动化分析工具和人工审查的组合审计方式,对程序源代码逐条进行检查、分析,发现其中的错误信息、安全隐患和规范性缺陷问题,以及由这些问题引发的安全漏洞,提供代码修订措施和建议。支持脚本类语言源码以及有内存控制类源码。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档