[12.10.2003] XSS в тэгах COLOR и FONT

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

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

[FONT=expression(alert(document.cookie))]text[/FONT]

будет преведен системой в

<span style='font-family:expression(alert(document.cookie))'>text</span>
[COLOR=expression(alert(document.cookie))]text[/COLOR]

будет преведен системой в

<span style='color:expression(alert(document.cookie))'>text</span>

Исправление:
FIXME Перевод Внесите следующие изменения:

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

secutiry/issues/critical/1.x.x/12.10.2003.txt · Последние изменения: 2007/08/14 12:01 (внешнее изменение)

Работает на DokuWiki
© 2002—2006 ibresource
e-mail: wikiteam@iblink.ru