Уязвимость в tiny_mce в старых версиях joomla

Всем хорошего дня, одолела меня недавно напасть, всё грузят и грузят в пару сайтов шеллы да удаляют сайт целиком…

решил разобраться по горячим следам, что же происходит.

Первым делом идём изучать логи.

а логах довольно быстро находится частые запросы вот по такой урле

POST /index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20 HTTP/1.1

дальше в логах есть набор запросов на такие файлы, это скорее всего загрузчик шелла

 - - [17/Sep/2013:01:45:08 -0700] "GET /images/stories/3xp.php HTTP/1.1" 404 2271 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
- - [17/Sep/2013:01:45:08 -0700] "GET /images/stories/0day.php HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
 - - [17/Sep/2013:01:45:08 -0700] "GET /images/stories/jahat.php HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
- - [17/Sep/2013:01:45:08 -0700] "GET /images/stories/70bex.php HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
 - - [17/Sep/2013:01:45:08 -0700] "GET /images/stories/itil.php HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
 - - [17/Sep/2013:01:45:09 -0700] "GET /images/stories/0d4y.php HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"
- - [17/Sep/2013:01:45:09 -0700] "GET /images/stories/iam.php HTTP/1.1" 404 296 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2) Gecko/20100115 Firefox/3.6"

есть и удачные конечно, после чего уже идут запросы к самому шеллу.

ну а дальше стандартная ситуация.

вбивая первую урлу в гугл я нахожу ссылки на эксплойт

например вот один из таких
http://www.bugreport.ir/78/exploit.htm

В 2х словах, если руками обратиться по ссылке

/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&version=1576&cid=20

то вас средиректит на index.php, но если у вас отключен JS то вам откроется JCE со всеми своими возможностями по заливке файла.
дальше берётся файл .php и загружается на сервер под видом gif файла, это указано и в заголовке файла и в расширении.
потом используется второй баг, и происходит переименование гиф файла в php

вот и всё, притом не важно обновлена ли ваша joomla 1.5 до последней, забыл уже какая там 1.5.26 вроде, этот пакет видимо не входит в стандартную поставку джумлы. поэтому его нужно обновить в ручную, например скачать новую версию вот тут
https://www.joomlacontenteditor.net/downloads/editor/joomla15x
и установить на свой сайт.

второй момент, это запретить запуск php файлов из каталога /images логично же вполне? зачем в картинках исполнять пхп файлы? (вообще по хорошему бы разделить те файлы которые могу исполняться и те файлы которые могу загружаться извне. именно выстраивать систему прав и доступа так, чтоб то, куда можно загружать не могло быть исполнено, и то где можно что-то исполнять было невозможно туда загрузить что-то. )

поэтому в /images создаём файл .htaccess с вот таким содержимом

<Files *.php>
Deny from all
</Files>

ну и обаятельно проверить, закинуть туда простенький файл и проверить его выполнением..

UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xc2 in position 0: ordinal not in range(128)

Капец, это вынос мозга, всегда разрабатывал под ubuntu, а тут приходится в Win это делать, и вылазят такие невероятные ошибки и грабли… вот сегодняшяя….

ctype = ctype.encode(default_encoding) # omit in 3.x!

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc2 in position 0: ordinal not in range(128)

сразу же всё предельно и ясно, он нам прямым текстом говорит что надо топать в реестр
вот сюда

HKEY_CLASSES_ROOT\MIME\Database\Content Type

и тут находим в самом низу ветки с русскими символами, и переименовывает в транслит\латиницу.

аминь…

оказывается это давний баг, есть решение вот тут
http://softwaremaniacs.org/forum/django/31707/

А как вы боретесь с такими глюками?
чем заменяете cmd чтоб было удобно работать как в привычном terminal ?

file maildir-util.c: line 268 (maildir_hash): assertion failed: (*s != ‘/’)

Поломался один из ящиков очень давно настроенного почтового сервера, вот с таким текстом

 file maildir-util.c: line 268 (maildir_hash): assertion failed: (*s != '/')

всё примерно просто, поломался файл dovecot-uidlist в корне ящика пользователя, перемещаем его куданить, перезапускаем довекот и постфикс и пробуем зайти в почту пользователя.

joomla update to 3.2

Fatal error: Call to a member function get() on a non-object in /****/www/plugins/system/remember/remember.php on line 94

нежданная подстава в неудачное время 🙁

Django virtualenv

небольшая шпаркалка по создании Виртуального пространства и установки самых необходимых пакетов

virtualenv --no-site-packages src
source bin/activate
easy_install django
easy_install -U distribute
easy_install mysql-python