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

Обновление безопасности для 1.3.x и 2.0.x


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

Найдена потенциальная уязвимость, возможная в Invision Power Board 1.3.x и 2.0.x.

 

Основной архив для скачивания Invision Power Board обновлен. Ниже приведены инструкции по исправлению возможных уязвимостей. Все в одном файле — post_parser.php.

 

Если у вас чистый IPB 2.0.x, то можете скачать обновленный файл:

http://forums.invisionpower.com/index.php?...pe=post&id=5692

 

Если у вас чистый IPB 1.3.x, то можете скачать обновленный файл:

http://forums.invisionpower.com/index.php?...pe=post&id=5691

 

Для ручного исправления смотрите пожалуйста ниже.

 

Для 1.3.x исправление следующее:

1. В файле sources/lib/post_parser.php найти:

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

заменить на:

  else if ($IN['s'] == 'col')
  {
  	$IN[1] = preg_replace( "/[^\d\w\#\s]/s", "", $IN[1] );
  	return "<span style='color:".$IN['1']."'>".$IN['2']."</span>";
  }
  else if ($IN['s'] == 'font')
  {
  	$IN['1'] = preg_replace( "/[^\d\w\#\-\_\s]/s", "", $IN['1'] );
  	return "<span style='font-family:".$IN['1']."'>".$IN['2']."</span>";
  }

 

Все. Теперь закройте файл и загрузите его на сервер.

 

 

 

Для 2.0.x исправление следующее:

1. В файле sources/lib/post_parser.php найти код:

  $IN['1'] = preg_replace( "/[&\(\)\.\%]/", "", $IN['1'] );

Заменить на:

  $IN['1'] = preg_replace( "/[&\(\)\.\%\[\]<>]/", "", $IN['1'] );

2. Далее найти:

  	$IN['1'] = $IN['1'] + 7;

Заменить на:

  	$IN['1'] = intval($IN['1']) + 7;

3. Далее найти:

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

Заменить на:

  else if ($IN['s'] == 'col')
  {
  	$IN[1] = preg_replace( "/[^\d\w\#\s]/s", "", $IN[1] );
  	return "<span style='color:".$IN[1]."'>".$IN['2']."</span>";
  }
  else if ($IN['s'] == 'font')
  {
  	$IN['1'] = preg_replace( "/[^\d\w\#\-\_\s]/s", "", $IN['1'] );
  	return "<span style='font-family:".$IN['1']."'>".$IN['2']."</span>";
  }

 

Все. Теперь закройте файл и загрузите его на сервер.

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

Гость
Эта тема закрыта для публикации сообщений.
×
×
  • Создать...

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

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