В почтовом?сервере SquirrelMail найдена очередная уязвимость, и, хоть баг довольно прост, импакт от него крайне неприятный: любой пользователь может читать или удалять произвольные файлы в системе. Но досаднее всего для владельцев SquirrelMail, что прошел год с момента находки уязвимости, а разработчики так ее и не запатчили. Давай посмотрим, откуда она берется и как ее эксплуатировать.
Почти год назад я писал о другой уязвимости SquirrelMail — тогда речь шла об RCE, а проблема?была в некорректной фильтрации параметров, которые отправляются бинарнику sendmail. Через месяц после этого, в мае 2017 года, исследователь из TROOPERS18 Флориан Груноу (Florian Grunow) обнаружил еще одну критическую уязвимость в этом же продукте. На сей раз проблема закралась в функцию прикрепления?файлов к сообщению, а успешная эксплуатация позволяет атакующему читать файлы на целевой системе.
Груноу целый год не публиковал информацию о найденной уязвимости, ожидая, пока ее закроют. Однако разработчики за все это время?не удосужились ему ответить. Терпение у исследователя кончилось, и он выложил информацию в публичный доступ.
Как тестировать уязвимость
Перво-наперво поднимем стенд. Почтовые сервисы — это такой тип приложений, развертывание которых дает тебе как минимум +3 к навыкам администрирования. Тут много подводных камней, и?без погружения в конфиги не обойтись. Хорошо хоть старый добрый Docker может выручить. Если не хочешь возиться с настройкой, то качай готовый контейнер из моего репозитория и переходи к следующему абзацу.
Запускаем докер и устанавливаем необходимый?набор сервисов.
Скачиваем один из последних дистрибутивов SquirrelMail. Ссылка легко может быть недействительной, так как разработчики постоянно обновляют сборки, удаляя при этом старые архивы.
install -d /usr/local/src/downloads cd /usr/local/src/downloads wget http://prdownloads.sourceforge.net/squirrelmail/squirrelmail-webmail-1.4.22.tar.gz mkdir /usr/local/squirrelmail cd /usr/local/squirrelmail mkdir data temp attach chown www-dаta:www-data data temp attach tar xvzf /usr/local/src/downloads/squirrelmail-webmail-1.4.22.tar.gz mv squirrelmail-webmail-1.4.22 www [/code]
Теперь нужно создать конфигурационный файл для Squirrell. Для этих целей существует конфигуратор.
www/configure [/code]
Или по старинке?можешь вручную отредактировать дефолтный конфигурационный файл www/config/config_default.php.
Для нас главное, что в нем нужно указать, — это пути, по которым будут располагаться временные файлы, в том числе прикрепляемые к письмам. По умолчанию пути такие:
Data Directory: /var/local/squirrelmail/data/. Attachment Directory: /var/local/squirrelmail/attach/.
Меняем их в?соответствии с реальным положением вещей.