Перейти к контенту

Уязвимости форумов Invision Power Board


Рекомендуемые сообщения

  • Ответы 1,2k
  • Создана
  • Последний ответ

Лучшие авторы в этой теме

Лучшие авторы в этой теме

Загружено фотографий

Song ну так из за нестандарта и выходит всякая хрень вроде XSS... Я еще пока не видел ни одного форума, что бы на нем 60% пользователей использовали нестандартные цвета, нестандартные шрифт и нестандартные размеры шрифта.

 

Добавлено в [mergetime]1105702766[/mergetime]

Это уязвимость не фиксит ...

угу мне то же показалось что то исправление больше конкретного метода использования уязвимости, нежели самой причины уязвимости =]

Ссылка на комментарий
Поделиться на других сайтах

GiV

у нас подсветка синтаксиса, там используются нестандартные цвета.

И тильды мне заменять тоже нехорошо, т.к. они нужны для MySQL кода.

Ссылка на комментарий
Поделиться на других сайтах

у нас подсветка синтаксиса, там используются нестандартные цвета.

стоять! А там что используется color тэг? Ну пож-та, вот регэксп для нестандартных цветов =) \+)\] поидее работать должно =)

 

Я не против фикса с seclab, но там регэксп всетаки очень широкий. Например можно использовать пробел в тэге фонта =) А зачем?

 

Вот этот регэксп \*)\] читается так

должно быть слово [font=

дальше может идти все кроме ';', '<', '>', '*', '(', ')', '"', "'". Правило на самом деле очень широкое и оно трактуется так - разрешено все что не запрещено, а что запрещено у нас я перечислил выше.

 

Теперь мой регэксп \+)\]

должно быть слово [font=

дальше может идти только слово из символов латинского алфавита a-z. А вот это правило запрещает все что не разрешено. Т.е. я все нестандартные ситуации убил на корню, а вот в секурном реге, нестандартные ситуации могут все таки появится...

 

P.S. насколько я помню квантификатор повторений '*' говорит о том что идушая перед ним запись может быть повторена несколько раз, а может быть и не появится ни разу. Т.е. ([^;<>\*\(\)\"']*) посути разрешает теги [font=]. Хотя я могу ошибаться. =)

Ссылка на комментарий
Поделиться на других сайтах

стоять! А там что используется color тэг?

Да.

 

Насчёт фонта я с тобой согласен.

Ссылка на комментарий
Поделиться на других сайтах

Подскажите, что делать если форум уже взломан. Было размещено первое сообщение, после этого взломщик уже под администратором написал темы, в которой просил всех отметиться. Просить всех сменить пароли, или ещё что-то?
Ссылка на комментарий
Поделиться на других сайтах

Код выловил элементарно. В базе через myadmin (лучше там, чтобы наверняка и из сообщения, и из писем) нашёл и вырезал все ссылки на античат (в основном все использовали снифер оттуда), также проверил на другие участки кода. Забанил 2 ип, которые засветились. Написал всем сменить пароли. Проверил сервер - папки смайлов и аплоада, всё чисто. Думаю пронесло. Ещё что-то стоит сделать?
Ссылка на комментарий
Поделиться на других сайтах

Теперь мой регэксп \+)\]

должно быть слово [font=

дальше может идти только слово из символов латинского алфавита a-z. А вот это правило запрещает все что не разрешено. Т.е. я все нестандартные ситуации убил на корню, а вот в секурном реге, нестандартные ситуации могут все таки появится...

 

А как же названия шрифтов, состоящих из нескольких слов, разделенных пробелами??

Например Times New Roman у тебя не пройдет

Ссылка на комментарий
Поделиться на других сайтах

А вот такая замена не устранит проблему?

в функции regex_font_attr() всё в том же файле post_parser

else if ($IN['s'] == 'col')
    {
            return "<span style='color:".$IN['1']."'>".$IN['2']."</span>";
     }

заменить на

else if ($IN['s'] == 'col')
    {
            return "<font color=".$IN['1']."'>".$IN['2']."</font>";
     }

 

и аналогично замена style на font для размера и шрифта

тогда не сможем воспользоваться ява который можно в style внедрить

Ссылка на комментарий
Поделиться на других сайтах

я правильно понял, что нормального решения проблемі нет а есть только временное, т.е. запретить все нестандартніе цвета и шрифті?

А что разработчки молчат? Уже сколько дней прошло. Они вообще собираються фикс віпускать ві не в курсе?

Ссылка на комментарий
Поделиться на других сайтах

Не знаю, может и ошибаюсь, в regexp не силен. Но как вам такой варинт?

                        while ( preg_match( "#\[size=([^\]\[\\\<\>]+)\](.+?)\[/size\]#ies", $txt ) )
                        {
                                $txt = preg_replace( "#\[size=([^\]\[\\\<\>]+)\](.+?)\[/size\]#ies"    , "\$this->regex_font_attr(array('s'=>'size','1'=>'\\1','2'=>'\\2'))", $txt );
                        }

                        while ( preg_match( "#\[font=([^\]\[\\\<\>]+)\](.*?)\[/font\]#ies", $txt ) )
                        {
                                $txt = preg_replace( "#\[font=([^\]\[\\\<\>]+)\](.*?)\[/font\]#ies"    , "\$this->regex_font_attr(array('s'=>'font','1'=>'\\1','2'=>'\\2'))", $txt );
                        }

                        while( preg_match( "#\[color=([^\]\[\\\<\>]+)\](.+?)\[/color\]#ies", $txt ) )
                        {
                                $txt = preg_replace( "#\[color=([^\]\[\\\<\>]+)\](.+?)\[/color\]#ies"  , "\$this->regex_font_attr(array('s'=>'col' ,'1'=>'\\1','2'=>'\\2'))", $txt );
                        }

Теоретически запрещает символы [, ], <, >, \ после = в этих тэгах. Т.е. теоретически ссылки должны умирать :D. Или я не прав? ;)

Ссылка на комментарий
Поделиться на других сайтах

Но как вам такой варинт?

если сумеете объяснить для каких целей в параметрах color и size могут использоваться пробелы, то вероятно можно и принять это решение =)

Ссылка на комментарий
Поделиться на других сайтах

Намек понят:

                        while ( preg_match( "#\[size=([0-9]+)\](.+?)\[/size\]#ies", $txt ) )
                        {
                                $txt = preg_replace( "#\[size=([0-9]+)\](.+?)\[/size\]#ies"    , "\$this->regex_font_attr(array('s'=>'size','1'=>'\\1','2'=>'\\2'))", $txt );
                        }

                        while ( preg_match( "#\[font=([^\]\[\\\<\>]+)\](.*?)\[/font\]#ies", $txt ) )
                        {
                                $txt = preg_replace( "#\[font=([^\]\[\\\<\>]+)\](.*?)\[/font\]#ies"    , "\$this->regex_font_attr(array('s'=>'font','1'=>'\\1','2'=>'\\2'))", $txt );
                        }

                        while( preg_match( "#\[color=([\#0-9a-zA-Z]+)\](.+?)\[/color\]#ies", $txt ) )
                        {
                                $txt = preg_replace( "#\[color=([\#0-9a-zA-Z]+)\](.+?)\[/color\]#ies"  , "\$this->regex_font_attr(array('s'=>'col' ,'1'=>'\\1','2'=>'\\2'))", $txt );
                        }

Для size по-любому только цифры, так как там дописывается "pt;" в конце. А color разрешим только буквы, цифры и символ #.

Ссылка на комментарий
Поделиться на других сайтах

простите.. я видимо упустил нить дискуссии...

 

вариант от d1pro - это для версий 1.3 или 2.0.х?

 

и для версии 2.0.х есть что нибудь кроме того что указано в шапке топика (от winnie)?

Кто то вроде писал что этот вариант не даёт 100%-ного решения

Ссылка на комментарий
Поделиться на других сайтах

и для версии 2.0.х есть что нибудь кроме того что указано в шапке топика (от winnie)?

первое решение так же подходит и для 2.0.х

Ссылка на комментарий
Поделиться на других сайтах

Господа, вопрос следующий....

 

Чтобы стопудово исключить взлом, какие тэги нужно исключить из парсинга?

 

color

font

video

sound

 

и все ?

 

или еще что-то?

Ссылка на комментарий
Поделиться на других сайтах

поделитесь, как можно вытащить из базы код со сниффером?

дело в том, что база у меня уже порядка 30 метров...

в каждое сообщение не заглянешь....

Ссылка на комментарий
Поделиться на других сайтах

Song

Некоторые умельцы вставляют код в подпись профиля, а это уже по-моему другая таблица (не знаю насколько это действенно). Может лучше уж всю базу проверить?

Ссылка на комментарий
Поделиться на других сайтах

http://forums.invisionpower.com/index.php?showtopic=160633 - последние обновления безопасности, всвязи с багами

 

Для версий 2.0.х

2p0.zip

Ссылка на комментарий
Поделиться на других сайтах

http://forums.invisionpower.com/index.php?showtopic=160633 - последние обновления безопасности, всвязи с багами

 

Для вресий 1.3.х

1p3.zip

Ссылка на комментарий
Поделиться на других сайтах


×
×
  • Создать...

Важная информация

Находясь на нашем сайте, вы соглашаетесь на использование файлов cookie, а также с нашим положением о конфиденциальности Политика конфиденциальности и пользовательским соглашением Условия использования.