Security Lab

Межсайтовый скриптинг в Invision Power Board

Дата публикации:12.09.2003
Всего просмотров:3848
Опасность:
Низкая
Наличие исправления: Да
Количество уязвимостей:1
CVE ID: Нет данных
Вектор эксплуатации: Удаленная
Воздействие: Межсайтовый скриптинг
CWE ID: Нет данных
Наличие эксплоита: Нет данных
Уязвимые продукты: Invision Power Board 1.x

Уязвимые версии: Invision Power Board 1.2 FINAL

Описание: Уязвимость обнаружена в Invision Power Board. Удаленный атакующий может выполнить XSS нападение против пользователей форума.

Удаленный атакующий может внедрить произвольный код сценария в COLOR и FONT тэги.

Пример/Эксплоит:

 
[FONT=expression(alert(document.cookie))]text[/FONT] will made the HTML :
<span style='font-family:expression(alert(document.cookie))'>text</span>

[COLOR=expression(alert(document.cookie))]texte[/COLOR] will made the HTML :
<span style='color:expression(alert(document.cookie))'>text</span>

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

Решение:

Внесите следующие изменения:
In sources/lib/post_parser.php , just replace the lines :
----------------------------------------------------------------------------------

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 );
}
---------------------------------------------------------------------------------

by the lines :

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

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=([a-zA-Z0-9]*)\](.+?)\[/color\]#ies", $txt ) )
{
$txt = preg_replace( "#\[color=([a-zA-Z0-9]*)\](.+?)\[/color\]#ies"  , 
"\$this->regex_font_attr(array('s'=>'col' ,'1'=>'\\1','2'=>'\\2'))", $txt );
}
Ссылки: Invision Power Board