Ядовитая гифка. Эксплуатируем уязвимость в расширении gd для PHP - «Новости»
«Это не Carmageddon»: гоночный боевик на выживание Carmageddon: Rogue Shift получил дату выхода, а новый трейлер разочаровал фанатов - «Новости сети»
«Это не Carmageddon»: гоночный боевик на выживание Carmageddon: Rogue Shift получил дату выхода, а новый трейлер разочаровал фанатов - «Новости сети»
Комплект DDR5 за $1500 и кофе в подарок: оригинальная акция Newegg вызвала недоумение - «Новости сети»
Комплект DDR5 за $1500 и кофе в подарок: оригинальная акция Newegg вызвала недоумение - «Новости сети»
AMD всерьёз задумалась о возрождении старых Ryzen на фоне дефицита DDR5 - «Новости сети»
AMD всерьёз задумалась о возрождении старых Ryzen на фоне дефицита DDR5 - «Новости сети»
Lenovo представила портативную консоль Legion Go 2 на базе SteamOS — альтернатива Steam Deck за $1199 - «Новости сети»
Lenovo представила портативную консоль Legion Go 2 на базе SteamOS — альтернатива Steam Deck за $1199 - «Новости сети»
Meta✴ отложила глобальный запуск AR-очков с экраном из-за «беспрецедентного спроса», но пообещала новые функции - «Новости сети»
Meta✴ отложила глобальный запуск AR-очков с экраном из-за «беспрецедентного спроса», но пообещала новые функции - «Новости сети»
Microsoft втихую прикрыла официальную возможность активации Windows без интернета - «Новости сети»
Microsoft втихую прикрыла официальную возможность активации Windows без интернета - «Новости сети»
Пользователи Steam выбрали лучшую игру 2025 года — это не Clair Obscur: Expedition 33 и даже не Kingdom Come: Deliverance 2 - «Новости сети»
Пользователи Steam выбрали лучшую игру 2025 года — это не Clair Obscur: Expedition 33 и даже не Kingdom Come: Deliverance 2 - «Новости сети»
В Норвегии уже почти все новые зарегистрированные автомобили — электрические - «Новости сети»
В Норвегии уже почти все новые зарегистрированные автомобили — электрические - «Новости сети»
Никаких проводов и отверстий: на CES 2026 покажут огромный телевизор на присосках - «Новости сети»
Никаких проводов и отверстий: на CES 2026 покажут огромный телевизор на присосках - «Новости сети»
SpaceX первой в мире запустила ракету на орбиту в 2026 году - «Новости сети»
SpaceX первой в мире запустила ракету на орбиту в 2026 году - «Новости сети»
Новости мира Интернет » Новости » Ядовитая гифка. Эксплуатируем уязвимость в расширении gd для PHP - «Новости»

Содержание статьи

  • Уязвимость
  • Заключение
Все?любят забавные гифки, но особый юмор — это повесить сервер на PHP при помощи специально сформированного файла GIF. Успешная эксплуатация бага, который мы разберем, приводит процесс в состояние бесконечного цикла. Создав множество таких процессов, атакующий исчерпает ресурсы системы. Жертвой может стать любой сервис, который производит манипуляции с картинками, написан на PHP и использует библиотеку gd или libgd.

Уязвимость получила идентификатор CVE-2018-5711, а обнаружил ее исследователь Orange Tsai (@orange_8361) из тайваньской компании Devcore. О деталях он написал в своем блоге.



Ядовитая гифка. Эксплуатируем уязвимость в расширении gd для PHP - «Новости»
WARNING

Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не?несут ответственности за любой возможный вред, причиненный материалами данной статьи.



Готовимся к эксплуатации


Главное, что нам понадобится, чтобы испытать баг, — это уязвимая версия PHP. Их у нас целый пучок:


  • PHP 5 < 5.6.33,

  • PHP 7.0 < 7.0.27,

  • PHP 7.1 < 7.1.13,

  • PHP 7.2 < 7.2.1.

Выбирай любую, как говорится. Если хочешь контролировать процесс эксплуатации и рассмотреть уязвимость поближе, то тебе?понадобится версия, которая содержит дополнительную отладочную информацию (dbg-версия). Большинство дистрибутивов Linux позволяют установить dbg-версию с помощью пакетного менеджера. Я буду использовать Debian 8 в контейнере Docker.


docker run --rm -ti --cap-add=SYS_PTRACE --security-opt seccomp=unconfined --name=phpgd --hostname=phpgd debian:jessie-20171210 /bin/bash
apt-get update
[/code]

В моем случае в репозитории имелись две версии дистрибутива: 5.6.33 и 5.6.30.


apt-cache policy php5-dbg
[/code]

Различные версии PHP в дистрибутиве Debian

Версия PHP 5.6.30 точно уязвима, поэтому ее и установим.


apt-get install -y php5-dbg=5.6.30+dfsg-0+deb8u1
php5-common=5.6.30+dfsg-0+deb8u1
libapache2-mod-php5=5.6.30+dfsg-0+deb8u1
php5-cgi=5.6.30+dfsg-0+deb8u1
php5-cli=5.6.30+dfsg-0+deb8u1
php5-fpm=5.6.30+dfsg-0+deb8u1
libphp5-embed=5.6.30+dfsg-0+deb8u1
php5-curl=5.6.30+dfsg-0+deb8u1
php5-enchant=5.6.30+dfsg-0+deb8u1
php5-gd=5.6.30+dfsg-0+deb8u1
php5-gmp=5.6.30+dfsg-0+deb8u1
php5-imap=5.6.30+dfsg-0+deb8u1
php5-interbase=5.6.30+dfsg-0+deb8u1
php5-intl=5.6.30+dfsg-0+deb8u1
php5-ldap=5.6.30+dfsg-0+deb8u1
php5-mcrypt=5.6.30+dfsg-0+deb8u1
php5-readline=5.6.30+dfsg-0+deb8u1
php5-mysql=5.6.30+dfsg-0+deb8u1
php5-odbc=5.6.30+dfsg-0+deb8u1
php5-pgsql=5.6.30+dfsg-0+deb8u1
php5-pspell=5.6.30+dfsg-0+deb8u1
php5-recode=5.6.30+dfsg-0+deb8u1
php5-snmp=5.6.30+dfsg-0+deb8u1
php5-sqlite=5.6.30+dfsg-0+deb8u1
php5-sybase=5.6.30+dfsg-0+deb8u1
php5-tidy=5.6.30+dfsg-0+deb8u1
php5-xmlrpc=5.6.30+dfsg-0+deb8u1
php5-xsl=5.6.30+dfsg-0+deb8u1
curl vim nano
[/code]

Установленная?уязвимая версия PHP 5.6.30

Такая огромная портянка получилась, потому что дистрибутив отказывался устанавливаться, ссылаясь на то, что я пытаюсь установить версию PHP ниже, чем версии его зависимостей. Это показалось мне самым простым решением, не исключено, что есть и более?элегантный способ.


Возможно, на тот момент, когда ты будешь читать эту статью, в репозиториях появятся пропатченные версии дистрибутива. Тогда ничего не останется, кроме как скомпилировать PHP из исходников вручную. Для этого можно воспользоваться тем же контейнером, только?теперь нужно установить среду для компиляции и все необходимые зависимости.


apt-get install -y build-essential git autoconf automake libtool re2c bison libxml2-dev libgd-dev curl vim nano gdb
[/code]

Для разнообразия теперь возьмем версию 7.0.26.


git clone --branch PHP-7.0.26 --depth 1 https://github.com/php/php-src.git
[/code]

Осталось только сконфигурировать. По сути, из расширений нам нужен только gd.


cd php-src
./buildconf --force
./configure --with-gd --enable-debug
[/code]

Ну а затем стандартное:


make
make install
[/code]

Свежескомпилированная уязвимая?версия PHP
Источник новостиgoogle.com
Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Содержание статьи Уязвимость Заключение Все?любят забавные гифки, но особый юмор — это повесить сервер на PHP при помощи специально сформированного файла GIF. Успешная эксплуатация бага, который мы разберем, приводит процесс в состояние бесконечного цикла. Создав множество таких процессов, атакующий исчерпает ресурсы системы. Жертвой может стать любой сервис, который производит манипуляции с картинками, написан на PHP и использует библиотеку gd или libgd. Уязвимость получила идентификатор CVE-2018-5711, а обнаружил ее исследователь Orange Tsai (@orange_8361) из тайваньской компании Devcore. О деталях он написал в своем блоге. WARNING Вся информация предоставлена исключительно в ознакомительных целях. Ни редакция, ни автор не?несут ответственности за любой возможный вред, причиненный материалами данной статьи. Готовимся к эксплуатации Главное, что нам понадобится, чтобы испытать баг, — это уязвимая версия PHP. Их у нас целый пучок: PHP 5

запостил(а)
Dunce
Вернуться назад
0

Смотрите также

А что там на главной? )))



Комментарии )))