DedeCMS的两个小trick

暗月博客 2019年11月21日22:33:23评论298 views字数 1362阅读4分32秒阅读模式
摘要

0x00 前言 昨天晚上做了一个神奇的梦,梦到了我高中时候晚自习在偷偷的看《黑客攻防技术宝典》,当年的事情无论是苦是乐,回忆起来总是感觉非常的美好。但是,现实就是现实,梦境还是要被舍友的闹铃声打破,在大梦初醒后,我仿佛有一种“垂死梦中惊坐起”的感觉,是谁为我织出了这么美好的一个梦境?难道织梦CMS(DedeCMS)又要出0day 了?于是,我立马从床上跳了下来,打开电脑,从官网下载了最新版的织梦CMS(DedeCMS V5.7 SP2正式版),心想着一定要代码审计一波带走。于是乎,就有了你现在正在阅读的这篇文章。

0x00 前言

昨天晚上做了一个神奇的梦,梦到了我高中时候晚自习在偷偷的看《黑客攻防技术宝典》,当年的事情无论是苦是乐,回忆起来总是感觉非常的美好。但是,现实就是现实,梦境还是要被舍友的闹铃声打破,在大梦初醒后,我仿佛有一种“垂死梦中惊坐起”的感觉,是谁为我织出了这么美好的一个梦境?难道织梦CMS(DedeCMS)又要出0day了?于是,我立马从床上跳了下来,打开电脑,从官网下载了最新版的织梦CMS(DedeCMS V5.7 SP2正式版),心想着一定要代码审计一波带走。于是乎,就有了你现在正在阅读的这篇文章。

0x01 服务器任意(图片)文件删除漏洞

漏洞产生在文件:/member/edit_face.php

DedeCMS的两个小trick

第39行的unlink() 函数引起了我的注意

函数的参数是 $cfg_basedir和$oldface

先看了一下变量 $cfg_basedir

cfg开头的变量在DedeCMS中都是一些配置参数(cfg是config缩写),一般无法控制。

DedeCMS的两个小trick

看上图,$cfg_basedir是写死在配置文件中的

再看 $oldface

我全局搜索了一下,发现 $oldface 在当前文件中并没有定义,那我是否可以通过变量覆盖的方式来控制这个变量?

跟进到第九行,包含了config.php

DedeCMS的两个小trick

继续跟进,在 config.php第76行包含了/include/common.inc.php

DedeCMS的两个小trick

在 /include/common.inc.php中把 $_GET $_POST $_COOKIE 中的变量解析了出来。

DedeCMS的两个小trick

那么 $oldface就可以用变量覆盖的方式进行赋值。

既然 $oldface 可控,那我就要研究一下有没对这个变量进行严格的过滤。

DedeCMS的两个小trick

在 /member/edit_face.php 第37行,限制了文件结尾后缀名是jpg、gif、png ,这是此漏洞最大的一个限制,似乎没法绕过

DedeCMS的两个小trick

在 /member/edit_face.php 第25行,限制了这个变量必须以 $userdir 的值开头,$userdir 即为储存当前用户上传头像的文件夹,

$userdir = ‘/uploads/userup/’+ 当前用户的userid

但是这里并没有过滤点号,因此可以路径回溯绕过

 

漏洞复现如下:

打开页面/member/edit_face.php

DedeCMS的两个小trick

在上传文件后抓包:

DedeCMS的两个小trick

如图,我在上传图片的请求包中增加一个oldface参数,指向服务器根目录的一个图片文件,发包后就能成功删除。

0x02 DedeCMS后台登录处一个小trick

首先找到后台登录验证身份处,在 /dede/login.php 第74行,调用了userLogin的checkUser方法,这个方法用来验证管理员凭证。

DedeCMS的两个小trick

跟进去,到了 /dede/include/userlogin.class.php 第240行

DedeCMS的两个小trick

在第248行的SQL语句中发现用户名是用 like 进行模糊查询。

而且,在245行的正则表达式中发现用户名中可以包含下划线( _ )

DedeCMS的两个小trick

在取出用户名后再比较密码,若用户名与密码匹配则登录成功。 

这里存在的一个问题是用户名处用 like 进行模糊查询,而且没有过滤下划线,下划线在 like 中可以用来匹配单个字符,因此,即使我不知道管理员用户名,也可以登录后台。

 

漏洞复现如下:

若管理员是 admin 则我在后台输入 _____ 即可登录后台(五个下滑线,与管理员用户名字节数相同)

DedeCMS的两个小trick

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
暗月博客
  • 本文由 发表于 2019年11月21日22:33:23
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   DedeCMS的两个小trickhttp://cn-sec.com/archives/73620.html

发表评论

匿名网友 填写信息