↑ ↓

Информация Анализ уязвимости ImageMagick

Краткий анализ уязвимости ImageMagick в PHP

  1. X-Shar
    upload_2016-5-7_22-46-41.

    Всем привет ! :)

    Наткнулся на ссылку 0-day уязвимость в ImageMagick ставит под угрозу множество сайтов - «Хакер» там рассказывается про уязвимость, если использовать ImageMagick "на прямую", давайте проанализируем что будет, если использовать не на прямую, например через PHP и что нужно делать что-бы защитится от таких видов атак !like it

    Итак анализируем на примере XenForo:

    1)CVE-2016-3714 Недостаточное экранирование символов, ведущее к возможному RCE:


    Тут проблема в том, то у IM есть фича delegate, при помощи которой IM позволяет обрабатывать файлы внешними библиотеками. По сути это вызов system() с командной строкой из файла delegates.xml. Одна из дефолтных команд

    "wget" -q -O "%o" "https:%M"

    где %M ссылка из входного потока. Например, можно прокинуть Example Domain"|ls "-la, что приведёт к выполнению ls -la (должны быть установлены wget или curl).

    Для справки:ls -la - Это отобразит, все файлы и каталоги в Линуксе.

    Пример эксплоита:
    Код:
    push graphic-context
    viewbox 0 0 640 480
    fill 'url(https://example.com/image.jpg"|ls "-la)'
    pop graphic-context

    Что-же будет в XenForo:

    Если не включён режим дебага, то ничего и не будет, т.к. консольные команды в пхп на дефолте не выводятся, а ошибки тоже...

    В общем - Данная атака не страшна, в нашем случае.

    2)CVE-2016-3718 SSRF. Возможно выполнить HTTP GET и FTP запросы:

    В теории опасно может-быть, тем-что можно при помощи первой уязвимости, получить список каталогов, а далее к себе их перебросить, но я лично так и не смог не одно эксплуатировать, даже и локально...смех-смех!!!

    Эксплоит:
    Код:
    push graphic-context
    viewbox 0 0 640 480
    fill 'url(http://example.com/)'
    pop graphic-context
    3)CVE-2016-3715 Удаление файлов CVE-2016-3716 Перемещение файлов:

    Тут хитро, дело в том-что, в XenForo, все обрабатываемые файлы имеют случайные названия, например так:fghijklm55

    И что-бы переместить шелл, даже если знаешь пути хз. как, нужно брутить...NO-no!!!NO-no!!!NO-no!!!

    Я уже не говорю, если делать так:
    Код:
    <?xml version="1.0" encoding="UTF-8"?>
    <image>
    <read filename="/tmp/image.gif" />
    <write filename="/var/www/shell.php" />
    </image>
    То файл будет с правами рут и 644, что недаст исполнить на дефолте...:)

    4)Ну и последнее, если не ставить гамно плагины в XenForo, как-раз проверяются магические байты — последовательность байт, по которой программы определяют формат файла, до обработки...Hi-H-88Hi-H-88Hi-H-88

    ИТОГ:

    Разумеется для каких-то сайтов это ОЧЕНЬ опасная уязвимость, НО не для всех, к сожалению патча пока нет, поэтому я рекомендую всё-же подстраховаться и сделать следующее:

    1. /etc/ImageMagick-xxx/policy.xml

    И добавить:
    Код:
     <policy domain="coder" rights="none" pattern="EPHEMERAL" />
      <policy domain="coder" rights="none" pattern="URL" />
      <policy domain="coder" rights="none" pattern="HTTPS" />
      <policy domain="coder" rights="none" pattern="MVG" />
      <policy domain="coder" rights="none" pattern="MSL" />
      <policy domain="coder" rights="none" pattern="TEXT" />
      <policy domain="coder" rights="none" pattern="SHOW" />
      <policy domain="coder" rights="none" pattern="WIN" />
      <policy domain="coder" rights="none" pattern="PLT" />
    Перед <policymap>

    Перезапустить Апач, или что там за пхп отвечает....

    2.Проверить скрипты на проверку "Магических байтов", перед обработкой файлов;

    3. Сохранять и обрабатывать файлы, ОБЯЗАТЕЛЬНО меняя имя файла в случайном порядке.

    4. Настроить нормально права на папки - новые файлы права 644, папки 755, это как минимум...

    Файлы не должны-быть с владельцем рут ! :)

    5. Помониторить и обновить всё-же с патчем, как выйдет, я в теме сообщу !

    У меня всё, всем бобра, всем ведра, ах-да всем добра ! :)
    NIN@ нравится это.

Пoследние рецензии

  1. Desert Fox
    Desert Fox
    1/5,
    Да потому что тому кто писал мануал нахуй нужно руки оторвать!Этот человек сука читать внимательно не умеет я так понял если у него блядь нихуя не получается!Он даже блядь не знает что к пхп относиться!НА КОЛ!
    1. X-Shar
      Ответ автора