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

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


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

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

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

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

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

вот изменил это:

 

 

Файл ./sources/ipsclass.php, найти

$addrs = array();

	if ( $this->vars['xforward_matching'] )
	{
		foreach( array_reverse( explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) as $x_f )
		{
			$x_f = trim($x_f);

			if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $x_f ) )
			{
				$addrs[] = $x_f;
			}
		}
	}

	$addrs[] = $_SERVER['HTTP_CLIENT_IP'];
	$addrs[] = $_SERVER['REMOTE_ADDR'];
	$addrs[] = $_SERVER['HTTP_PROXY_USER'];

	//-----------------------------------------
	// Do we have one yet?
	//-----------------------------------------

	foreach ( $addrs as $ip )
	{
		if ( $ip )
		{
			$this->ip_address = $ip;
			break;
		}
	}

	//-----------------------------------------
	// Make sure we take a valid IP address
	//-----------------------------------------

	$this->ip_address = preg_replace( "/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})/", "\\1.\\2.\\3.\\4", $this->ip_address );

Заменить на

$addrs = array();

if ( $this->vars['xforward_matching'] )
{
   foreach( array_reverse( explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) as $x_f )
   {
       $x_f = trim($x_f);

       if ( preg_match( '/^d{1,3}.d{1,3}.d{1,3}.d{1,3}$/', $x_f ) )
       {
           $addrs[] = $x_f;
       }
   }

   $addrs[] = $_SERVER['HTTP_CLIENT_IP'];
   $addrs[] = $_SERVER['HTTP_PROXY_USER'];
}

$addrs[] = $_SERVER['REMOTE_ADDR'];

//-----------------------------------------
// Do we have one yet?
//-----------------------------------------

$this->ip_address = '';

foreach ( $addrs as $ip )
{
   if ( preg_match( "/^([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})$/", $ip ) )
   {    
       $this->ip_address = $ip;

       break;
   }
}

//-----------------------------------------
// Make sure we take a valid IP address
//-----------------------------------------

if ( ! $this->ip_address OR empty( $this->ip_address ) )
{
   print "Could not determine your IP address";
   exit();
}

 

 

а это тоже в sources/ipsclass.php надо в писать?

 

 

IPS patch

			//-----------------------------------------
	// Sort out the accessing IP
	// (Thanks to Cosmos and schickb)
	//-----------------------------------------

	$addrs = array();

	if ( $this->vars['xforward_matching'] )
	{
		foreach( array_reverse( explode( ',', $_SERVER['HTTP_X_FORWARDED_FOR'] ) ) as $x_f )
		{
			$x_f = trim($x_f);

			if ( preg_match( '/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/', $x_f ) )
			{
				$addrs[] = $x_f;
			}
		}

		$addrs[] = $_SERVER['HTTP_CLIENT_IP'];
		$addrs[] = $_SERVER['HTTP_PROXY_USER'];
	}

	$addrs[] = $_SERVER['REMOTE_ADDR'];

	//-----------------------------------------
	// Do we have one yet?
	//-----------------------------------------

	foreach ( $addrs as $ip )
	{
		if ( $ip )
		{
			preg_match( "/^([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})$/", $ip, $match );

			$this->ip_address = $match[1].'.'.$match[2].'.'.$match[3].'.'.$match[4];

			if ( $this->ip_address AND $this->ip_address != '...' )
			{
				break;
			}
		}
	}

	//-----------------------------------------
	// Make sure we take a valid IP address
	//-----------------------------------------

	if ( ! $this->ip_address OR $this->ip_address == '...' )
	{
		print "Could not determine your IP address";
		exit();
	}

	#Backwards compat:
	$this->input["IP_ADDRESS"] = $this->ip_address;

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

Во-во, видите вот такие реплики как раз явно показывают минусы такого топика, где все исправления сброшены в кучу :-/
Ссылка на комментарий
Поделиться на других сайтах

Да, Вы абсолютно правы. Поэтому и ходим к Вам на сайт. Там всё красиво по полочкам разложено. Спасибо Вам за труд.
Ссылка на комментарий
Поделиться на других сайтах

Скажите, а в 2.1.7 уже всё пофиксено?

 

 

Ан, нет.

-1 в online не пофиксили :D

А это не уязвимость:

http://www.sysman.ru/index.php?showtopic=4118

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

pikachu

 

Есди у вас 2.1.х то я привёл официальный патч IPS. Он взят мною из обновления файлов форума 2.1.6 -> 2.1.7

Если у вас 2.0.x, то официального, насколько я знаю, просто не было.

Ставьте любой ректмендованный вариант. Если вы соображаете в php, то поймёте, что он работает.

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

Подскажите пожалуйста был ли фикс от этой баги для IPB 2.0.х?

[color*=[img*]http://aaa.aa/=`aaa.jpg[/img*]]`style=background:url("javascript*:[code*]") [/color*]

Если да то ткните пожалуйста где фикс. Я все вроде облез, но не нашел. :D

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

Да это вообще супер старинный.

Ещё в 1.х был исправлен.

А что у тебя за версия форума?

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

Извините если не по теме, но короче я узнал, что мой бывший друг у меня на форуме делал авторазбан, имел полный доступ к админпанели и т.п., как-то вышел с ним на диалог а он сказал мне что значит эта прога конектится с хостом, присоединяет свой .htaccess и вообщем как-то появляется доступ ко всему чему захочешь, можем ли понять как работает эта программа?
Ссылка на комментарий
Поделиться на других сайтах

Во-во, видите вот такие реплики как раз явно показывают минусы такого топика, где все исправления сброшены в кучу :-/

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

 

С точки зрения удобства, как мне кажется, хорошо иметь тему для обсуждений и поиска решений (собстывенно это она и есть), и еще одну исключительно под фиксы, пусть и неофициальные (т.е. копировать в нее только конкретные решения по принципу "уязвимость-исправление"). Так путаницы будет меньше.

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

2xRay

 

http://www.sysman.ru/index.php?showtopic=2...ost&p=53452

 

видите у меня не парсит, т.е. тег color не срабатывает.

То что другая версия IPB не имеет значения, потому что решение для всех одинаковое.

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

у меня на 2.0.4 и 2.1.7 не пашет. Первый просто схавал и вывел текст

`style=background:url("java script:[code]")

а второй сказал что динамические изображения запрещены (когда я их разрешил вывел такой же текст)

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

Угу... Динамические страницы в тегах запрещены.

 

ммм... мне интересно, что какер имея доступ в админку (используя последнюю уязвимость) не сможет шел залить на сервер?

Там они вроде через upload emoticons, шелл грузят. Так что нужно просто на директории uploads, style_avatars, style_emoticons, style_images прописать .htaccess на запрет выполнения скриптов.

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

убрал

http://www.sysman.ru/index.php?showtopic=2...ost&p=53452

появилась ошибочная картинка. И чем она страшна?

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

>> Тем что вместо этой картинки снифак запихают.

каким образом?

 

 

часть сплойта, которая собственно и может вызывать сниффер - это вот: "style=background:url("javasсriрt:

")"

она как видишь в теле сообщения, в html не выходит. Так каким образом она может сработать как ява-скрипт?

 

Или у тебя другой расклад в форуме?

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


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

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

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