国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > CMS > 織夢DEDE > 正文

Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞

2024-08-30 19:08:07
字體:
來源:轉載
供稿:網友

雖然是復現文章,不過會更詳細地來闡釋這個漏洞,,因為現在后臺getshell花樣層出不窮,因此想要復現一波來學習一波getshell姿勢~

 

因為是最新的dedecms版本,因此我們直接在織夢官網上下載即可~

 

http://www.dedecms.com/products/dedecms/downloads/

 


DedeCMS V5.7 SP2正式版

 

發布日期: 2017-04-05

 

這里我測試的是utf-8版本,,感覺版本這個無所謂~

 

下載下來然后安裝什么的就不說了,,直接進后臺,找到漏洞功能以及對應的功能函數

 

Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞


漏洞在”模塊”下的”廣告管理”處,這里我們點擊“添加一個新廣告”

Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞

 

 

跟原文復現的有一點不一樣,,不過不影響,,下面我們來抓包看看參數

 

Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞

 

 

我們的參數在normbody里,文件為dede/ad_add.php

 


 $query = "

     INSERT INTO xiuzhanwang_myad(clsid,typeid,tagname,adname,timeset,starttime,endtime,normbody,expbody)

     VALUES('$clsid','$typeid','$tagname','$adname','$timeset','$starttime','$endtime','$normbody','$expbody');

    ";

    $dsql->ExecuteNoneQuery($query);

    ShowMsg("成功增加一個廣告!","ad_main.php");

    exit();


在這里我們看到了我們的代碼已經插入到了數據庫,,一般的思路應該是找哪些php文件調用了這個廣告代碼,但是點擊我們的廣告代碼就出現了地址。

Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞

$cacheFile = DEDEDATA.'/cache/myad-'.$aid.'.htm';

if( isset($nocache) || !file_exists($cacheFile) || time() - filemtime($cacheFile) > $cfg_puccache_time )

{

    $row = $dsql->GetOne("SELECT * FROM `xiuzhanwang_myad` WHERE aid='$aid' ");

    $adbody = '';

    if($row['timeset']==0)

    {

        $adbody = $row['normbody'];

    }

    else

    {

        $ntime = time();

        if($ntime > $row['endtime'] || $ntime < $row['starttime']) {

            $adbody = $row['expbody'];

        } else {

            $adbody = $row['normbody'];

        }

    }

    $adbody = str_replace('"', '/"',$adbody);

    $adbody = str_replace("/r", "//r",$adbody);

    $adbody = str_replace("/n", "//n",$adbody);

    $adbody = "<!--/r/ndocument.write(/"{$adbody}/");/r/n-->/r/n";

    $fp = fopen($cacheFile, 'w');

    fwrite($fp, $adbody);

    fclose($fp);

}

include $cacheFile;

 

這里首先是三個判斷條件,nocache不為空,cachefile不為空,這些判斷條件我們都可以通過GET或者POST來提交,從而進行偽造~

 

進入判斷條件后往下走,首先是從數據庫中select aid,那么這時候我們到數據庫中去看看:

 

Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞

 


這里當時在填寫廣告信息的時候,設置的timeset為0,因此也就直接令$adbody = $row[‘normbody’];

而這里的normbody也就是我們的evil code,下面我們就應該重點看這個adbody參數

首先進行三個replace,這里的replace好像對我們的參數沒有影響,因此直接跳過~

接著將adbody參數插入到document.write()代碼中,這里如果做過ctf的人都應該有一種感覺,那就是參數閉合的話,將會造成任意代碼執行,這里也就是漏洞的成因所在!

最后打開cachefile,將adbody寫入到文件中~

這里由于這個文件是html靜態文件,,因此沒有可利用點,,還是找下文件吧,,

WWW/uploads/data/cache/myad-3.html


Dedecms_V5.7 getshell 利用后臺文件上傳功能漏洞

如果是動態文件,,因此我們也可以利用前后閉合來實現任意代碼,,扯遠了。。

總結來說其實就是$adbody = “<!

主站蜘蛛池模板: 汉沽区| 宁武县| 肥东县| 合阳县| 宁城县| 沭阳县| 大港区| 新巴尔虎左旗| 惠水县| 外汇| 潢川县| 湄潭县| 施秉县| 禹城市| 海晏县| 密云县| 宾阳县| 宿松县| 南木林县| 平江县| 巴彦县| 恩平市| 崇礼县| 湖北省| 巫溪县| 抚宁县| 稷山县| 佛坪县| 民乐县| 绥阳县| 大悟县| 沈阳市| 崇州市| 花莲市| 和顺县| 宣威市| 张掖市| 宜宾县| 西安市| 康定县| 桂阳县|