[問題]phpbb又出安全漏洞了…可以刪除系統管理員!!!

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
主題已鎖定
eliotsx
星球公民
星球公民
文章: 66
註冊時間: 2003-05-18 14:27

[問題]phpbb又出安全漏洞了…可以刪除系統管理員!!!

文章 eliotsx »

phpBB WEB論壇應用程式 groupcp.php SQL寫入漏洞

日期:2004年1月7日\r

受影響系統:

phpBB Group phpBB 2.0.6
phpBB Group phpBB 2.0.5
phpBB Group phpBB 2.0.4
phpBB Group phpBB 2.0.3
phpBB Group phpBB 2.0.2
phpBB Group phpBB 2.0.1
phpBB Group phpBB 2.0

詳細描述:

phpBB是一款由PHP編寫的WEB論壇應用程式,支持多種資料庫系統,可使用在多種Unix和Linux操作系統下。
\n
phpBB包含的groupcp.php語法對用戶提交的URI參數缺少充分過濾,遠端攻擊者可以利用這個漏洞進行SQL寫入攻擊,可獲得重要資訊或者修改整個資料庫。

問題是groupcp.php程式語法對$sql_in變量缺少充分過濾,提交惡意SQL命令作為參數給$sql_in變量,可以刪除組中任何一個成員,抱括系統管理員。或獲得所有重要敏感信息。


目前廠商還沒有提供修正程式或者升級程式。

----------------------------------------------------------------------------------

救命哦 大大 這新的bug誰可以去外國找找看方法解救啊
我每次來這裡發表bug好像都沒有人要回 = =
依夢兒
竹貓忠實會員
竹貓忠實會員
文章: 2013
註冊時間: 2002-11-20 00:07

文章 依夢兒 »

請問上面那一大篇是您自己打的,還是從其它網站轉載過來的呢?(請註明消息來源)
因為這幾天 phpBB 官方並沒有發佈任何新的安全漏洞公告。

據我所知最近一次關於 groupcp.php 的安全性問題是在一週前被發現的,當時 phpBB 官方已經發佈並且修正了:
http://www.phpbb.com/phpBB/viewtopic.php?t=161943
竹貓也有:
http://phpbb-tw.net/phpbb/viewtopic.php?t=22049

應該和你上面提到的是同一件事情吧?
有任何關於 phpBB 或是架站的問題,請在論壇上公開發表出來,大家一起討論。
請不要丟私人訊息問我,因為私訊是用來聊私事的。
這樣作對於解決您的問題一點幫助也沒有,也很沒有效率,小弟我一概謝絕。



搜尋是一種美德,在發問之前,請多加利用頂端的文章搜尋功能,搜尋可能的關鍵字。
確定您想問的問題找不到答案後,再發問。
竹貓忠實會員
竹貓忠實會員
文章: 1058
註冊時間: 2003-05-15 00:30
來自: Game.Hack-遊戲駭客
聯繫:

文章 »

依夢兒大大,我到官方全是英文的看無耶!
這個漏洞因該怎麼樣去修正它呢?
有事問問題,沒事答問題。
廣告不是這樣打滴!遊戲駭客
依夢兒
竹貓忠實會員
竹貓忠實會員
文章: 2013
註冊時間: 2002-11-20 00:07

文章 依夢兒 »

Open privmsg.php in your favourite editor. Find the following code fragment:
開啟 privmsg.php 搜尋以下代碼:

代碼: 選擇全部

if ( isset($HTTP_POST_VARS['folder']) || isset($HTTP_GET_VARS['folder']) )
{
   $folder = ( isset($HTTP_POST_VARS['folder']) ) ? $HTTP_POST_VARS['folder'] : $HTTP_GET_VARS['folder'];

   if ( $folder != 'inbox' && $folder != 'outbox' && $folder != 'sentbox' && $folder != 'savebox' )
   {
      $folder = 'inbox';
   }
}
else
{
   $folder = 'inbox';
}
Replace with:
覆蓋為:

代碼: 選擇全部

if ( isset($HTTP_POST_VARS['folder']) || isset($HTTP_GET_VARS['folder']) )
{
   $folder = ( isset($HTTP_POST_VARS['folder']) ) ? $HTTP_POST_VARS['folder'] : $HTTP_GET_VARS['folder'];
   $folder = htmlspecialchars($folder);

   if ( $folder != 'inbox' && $folder != 'outbox' && $folder != 'sentbox' && $folder != 'savebox' )
   {
      $folder = 'inbox';
   }
}
else
{
   $folder = 'inbox';
}
Find:
搜尋:

代碼: 選擇全部

if ( !empty($HTTP_POST_VARS['mode']) || !empty($HTTP_GET_VARS['mode']) )
{
   $mode = ( !empty($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
   $mode = '';
}
Replace with:
覆蓋為:

代碼: 選擇全部

if ( !empty($HTTP_POST_VARS['mode']) || !empty($HTTP_GET_VARS['mode']) )
{
   $mode = ( !empty($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
   $mode = htmlspecialchars($mode);
}
else
{
   $mode = '';
}

然後下面還有二段是 groupcp.php 的部份:

Open groupcp.php and find the following:
開啟 groupcp.php 並且搜尋以下代碼:

代碼: 選擇全部

if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
{
   $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
}
else
{
   $mode = '';
}
Replace with:
覆蓋為:

代碼: 選擇全部

if ( isset($HTTP_POST_VARS['mode']) || isset($HTTP_GET_VARS['mode']) )
{
   $mode = ( isset($HTTP_POST_VARS['mode']) ) ? $HTTP_POST_VARS['mode'] : $HTTP_GET_VARS['mode'];
   $mode = htmlspecialchars($mode);
}
else
{
   $mode = '';
}
Find:
搜尋:

代碼: 選擇全部

            if ( ( ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) && isset($HTTP_POST_VARS['pending_members']) ) || ( isset($HTTP_POST_VARS['remove']) && isset($HTTP_POST_VARS['members']) ) )
            {

               $members = ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) ? $HTTP_POST_VARS['pending_members'] : $HTTP_POST_VARS['members'];

               $sql_in = '';
               for($i = 0; $i < count($members); $i++)
               {
                  $sql_in .= ( ( $sql_in != '' ) ? ', ' : '' ) . $members[$i];
               }
Replace with:
覆蓋為:

代碼: 選擇全部

            if ( ( ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) && isset($HTTP_POST_VARS['pending_members']) ) || ( isset($HTTP_POST_VARS['remove']) && isset($HTTP_POST_VARS['members']) ) )
            {

               $members = ( isset($HTTP_POST_VARS['approve']) || isset($HTTP_POST_VARS['deny']) ) ? $HTTP_POST_VARS['pending_members'] : $HTTP_POST_VARS['members'];

               $sql_in = '';
               for($i = 0; $i < count($members); $i++)
               {
                  $sql_in .= ( ( $sql_in != '' ) ? ', ' : '' ) . intval($members[$i]);
               }
有任何關於 phpBB 或是架站的問題,請在論壇上公開發表出來,大家一起討論。
請不要丟私人訊息問我,因為私訊是用來聊私事的。
這樣作對於解決您的問題一點幫助也沒有,也很沒有效率,小弟我一概謝絕。



搜尋是一種美德,在發問之前,請多加利用頂端的文章搜尋功能,搜尋可能的關鍵字。
確定您想問的問題找不到答案後,再發問。
eliotsx
星球公民
星球公民
文章: 66
註冊時間: 2003-05-18 14:27

文章 eliotsx »

依夢兒 寫:請問上面那一大篇是您自己打的,還是從其它網站轉載過來的呢?(請註明消息來源)
因為這幾天 phpBB 官方並沒有發佈任何新的安全漏洞公告。

據我所知最近一次關於 groupcp.php 的安全性問題是在一週前被發現的,當時 phpBB 官方已經發佈並且修正了:
http://www.phpbb.com/phpBB/viewtopic.php?t=161943
竹貓也有:
http://phpbb-tw.net/phpbb/viewtopic.php?t=22049

應該和你上面提到的是同一件事情吧?
依夢兒大大 這一篇是我從大陸的安全網站轉載過來的
謝謝你提供的修正方法
主題已鎖定

回到「phpBB 2 安裝與使用」