滲透測試實驗--復現實驗B


DeDeCMS v5.7 SP2 正式版 前台任意用戶密碼修改復現實驗

一、漏洞概述

簡介

  織夢內容管理系統(DedeCms) [1] 以簡單、實用、開源而聞名,是國內 最知名的 PHP 開源網站管理系統,也是使用用戶最多的 PHP 類 CMS 系統, 在經歷多年的發展,目前的版本無論在功能,還是在易用性方面,都有了長 足的發展和進步,DedeCms 免費版的主要目標用戶鎖定在個人站長,功能 更專注於個人網站或中小型門戶的構建,當然也不乏有企業用戶和學校等在 使用該系統。

 

漏洞條件

cms版本:DeDeCMS v5.7 SP2 正式版

限制:

1.只影響前台賬戶

2.只能修改未設置安全問題的賬戶

 

 環境

php7.3.4

mysql5.7.26

二、環境搭建

本次復現環境搭建在window10物理機下,用phpstudy來搭建網站。

下載源碼地址:點擊下載     注:如果瀏覽器下載不了,可以復制連接到迅雷下載

下載完成后解壓到phpstudy的www/html目錄下

 

 在瀏覽器訪問網站uploads/install來安裝網站,這個就不演示了,因為我已經安裝好了,文件自動刪除了

安裝完成后先訪問后台打開會員的功能,后台地址:   http://127.0.0.1/dedeCMS5.7/uploads/dede/index.php

 

 之后在創建一個用戶,但是千萬千萬不要設置安全問題,這里我設置的密碼是test123

 

 

 創建成功后我們就開始復現

 

三、漏洞復現

復現過程要用到burpsuite,先用burpsuite打開攔截,然后再瀏覽器訪問

127.0.0.1/dedeCMS5.7/uploads/member/resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=3     //這里的id是指會員注冊的uid

 

 然后之間發出,后面會在到攔截一個數據包,里面有參數key要記住,然后再發出去,就可以跳轉到修改密碼的網頁

 

這里的臨時驗證碼就是上面的key,這里我將密碼改為123123

 

 然后用修改的密碼登入復現成功

 

 

 

代碼分析

該漏洞出現的原因在於/member/resetpasswordd.php中的

 

 

分析這段代碼,這里有兩種找回密碼的方式,其中漏洞在以安裝問題取回密碼的代碼下 

if($row['safequestion'] == $safequestion && $row['safeanswer'] == $safeanswer)
    {
        sn($mid, $row['userid'], $row['email'], 'N');
        exit();
    }

 

上面的if語句進行了兩個判斷,判斷的是用  ==,這是php的弱比較,在php中 === 和 == 不同,用===進行比較,會先判斷兩個字符串類型是否相同,再進行比較。

用==進行比較時,會將字符串類型轉化成相同的,然后再進行比較。如果比較一個數字和字符串或者比較涉及到數字內容的字符串,則字符串會被轉換成數值並且比較按照數值來進行

給個例子:

 

 

 $row['safequestion']和$row['safeanswer']的值分別是數據庫中safequestion和safeanswer的值

 

 

 可以看到在不設置安全問題時safequestion和safeanswer分別是0和null,其中dopost和safequestion和safeanswer都是我們可控的,於是得到我們的playload:

resetpassword.php?dopost=safequestion&safequestion=0.0&safeanswer=&id=3

臨時修復方案

將弱比較改為強比較

if($row['safequestion'] == $safequestion && $row['safeanswer'] == $safeanswer)
    {
        sn($mid, $row['userid'], $row['email'], 'N');
        exit();
    }


改為:

if($row['safequestion'] === $safequestion && $row['safeanswer'] === $safeanswer)
    {
        sn($mid, $row['userid'], $row['email'], 'N');
        exit();
    }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM