首頁>技術>

phpList是用於管理郵件列表的開源軟體。它設計用於向訂戶列表傳播資訊,例如新聞通訊,新聞,廣告。它用PHP編寫,並使用MySQL資料庫儲存資訊。phpList是免費的開源軟體

2月4日,有安全研究人員釋出phplist3.5.0允許對管理員登入繞過進行型別轉換,因為對於密碼雜湊使用了==而不是===,這會錯誤地處理以0e開頭、後跟唯一數字字元的雜湊。

0X2 環境搭建

環境原始碼可以從sourceforge下載

https://sourceforge.net/projects/phplist/files/phplist-development/3.5.0-RC1/

下載完成之後,解壓找到phplist-3.5.0-RC1\\phplist-3.5.0\\public_html的lists資料夾,如下圖所示:

將其複製到在本地Web目錄中,重新命名,如下如所示:

修改config/config.php配置檔案,設定要連線的資料庫和賬戶密碼:

開啟lampp

瀏覽器訪問環境

注意,這裡的密碼要設定成雜湊值(sha256)以0e開頭的字串,然後儲存。

設定完成之後,訪問正常顯示即可:

0X3 漏洞分析

漏洞原因是由於後臺管理員賬戶認證的比較不當導致的,原始碼如下:

if(empty($login)||($password=="")){            return array(0, s('Please enter your credentials.'));        }        if ($admindata['disabled']) {            return array(0, s('your account has been disabled'));        }        if (//Password validation.            !empty($passwordDB) && $encryptedPass == $passwordDB        )            return array($admindata['id'], 'OK');         else {            if (!empty($GLOBALS['admin_auth_module'])) {                Error(s('Admin authentication has changed, please update your admin module'),                    'https://resources.phplist.com/documentation/errors/adminauthchange');                return;                }        return array(0, s('incorrect password'));        }

這裡使用了==進行比較,使得PHP會把每一個以”0E”開頭的雜湊值都解釋為0,所以如果兩個不同的密碼經過雜湊以後,其雜湊值都是以”0E”開頭的,那麼PHP將會認為他們相同,都是0。

<?php var_dump(hash('sha256', 'TyNOQHUS') == '0e66298694359207596086558843543959518835691168370379069085300385'); var_dump(hash('sha256', '34250003024812') == '0e66298694359207596086558843543959518835691168370379069085300385'); ?>OUTPUT:bool(true)bool(true)

0X4 漏洞利用

上一步驟的簡單分析之後,所以我們使用其他密碼值只要其雜湊值是以0e開頭即可,相信很多小夥伴做過CTF中Web題目關於PHP程式碼審計的題目的話,一定不會陌生。

0X5 加固修復

修改關鍵核心程式碼中的==為===即可

if (//Password validation.     !empty($passwordDB) && $encryptedPass === $passwordDB // Fixed by using strict comparison '==='. )

0X6 參考連結

https://www.exploit-db.com/exploits/47989https://www.owasp.org/images/6/6b/PHPMagicTricks-TypeJuggling.pdf

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 8年web前端開發經驗者告訴你如何零基礎學習web前端