Himiko

Himiko
Рейтинг
560
Регистрация
28.08.2008
Должность
ООО "Системные интеграции", Генеральный директор. ООО "Медиа-группа "Автор", Исполнительный директор
15.04.1985
seolancer:
Если у Вас в SSH файлы можно прочесть
sudo -u apache cat /home/user/web/index.php
значит у Вас дырень в настройках прав.

Потёр... сразу не понял смысла...

chroot 😂

А вообще - itk уже не даст mod_php запустить с правами www.

Остаётся только корректные права ставить. И конфиги лучше держать с правами 600, они, кроме как юзеру сайта, не нужны.

Raistlin:
Ну как.... Запретит из этого виртуалхоста выходить за пределы его директории.

Попробуйте echo exec('ls -la /var/www'); (или даже echo exec('ls -la /'); ) и посмотрите. (хотя от настроек и прав зависит. Но не от basedir)

Himiko добавил 24.12.2010 в 10:03

Raistlin:
Анекдот... по дефолту друпал с mod_Php не может попасть в /tmp, хотя пытается (если ispmanager ставить). Собственно, работа openbasedir... Щас не знаю, т.к. конфиги не смотрел какие исп создает с mod_php.

Всё верно. Проблема, потому что он пытается сделать это через функции php, а не через shell-функции.

Raistlin:
У всех файлов права апача и опенбазедир чтоли? ну вариант.

1. Права apache у всех файлов? Тогда все и читаются им же.

2. open_basedir тут чем поможет?

Raistlin:
Да, и за разрешение доступа апачем как раз дают права. Ведь если поставить 640 скажем, файл просто не прочитается, верно? И, соответственно, не будет отображен... почему и ставят 644 обычно на файлы (чтобы оно читалось апачем). И, собственно, в режиме mod_php защищать должен open_basedir... Но тут начинается другой момент: если поддержки PHP на домене нет, панелька не прописывает openbasedir для виртуалхоста. А раз так - то подключается модуль в .htaccess... А вот если подключен cgi глобально, это еще может привести к 500 (от так). Соответственно, если openbasedir для виртуалхоста не прописывается панелью из-за cgi/fcgi, начинаем часто думать над правами (а должен ли этот файл читать апач)...

Ещё раз говорю, open_basedir не защитит от shell-функций, если они не запрещены. Но есть другие варианты их вызова, через вроде бы безобидные функции.

Вот на тему "должен ли файл читать apache - верно". Точнее должен ли его читать nginx. Apache (юзеру) не нужно читать php-файлы, они должны открываться с правами владельца сайта. Но при использовании nginx, он должен иметь возможность открывать статические файлы и естественно иметь доступ к папке с файлами. А nginx часто работает под тем же юзером, что и apache (www или www-data)


Да, если апач работает в режиме префорк, можно запретить mod_php... оставить только сиджиай. У меня даже если апач переведу в префорк, такая записочка в >htaccess даст 500, т.к. я еще полгода назад перевел всех на cgi...

А если мы добавим www-домен с "без поддержки php" ?) Тогда никаких 500 не будет.

Вырубить mod_php можно, но вот тот же phpmyadmin нужно будет заставить корректно работать при cgi.

Raistlin:
cgi/fcgi зависит именно от прав, т.к. на них openbasedir не действует.

Не причём тут cgi/fcgi. Просто если Apache идёт prefork и используется cgi/fastcgi, то можно через AddHandler заставить работать php от www, а не от юзера. Т.е. выключаем php и включаем через AddHandler. Получаем обычный mod_php с правами Apache (www). А если используется nginx, то эти права обычно позволяют открывать большинство файлов клиентов.

Raistlin:
А вот это если решите - тонну денег заработаете... Я серьезно. Я думаю, мало таких извращенцев, у которых httpd.worker и только CGI (я ztf и прочее не использую принципиально). Сейчас еще хочу per-user организовать... Думаю, ИМХО, будет правильнее.

Apache mpm-itk уже не позволяет получить права www, проверено. (по какой-то причине один раз удалось, не могу сейчас понять как так). А вот cgi/fastcgi без проблем.

Raistlin:
Как вариант - SELinux, как второй вариант - юзверям учиться ставить chmod.

Если используется nginx, то уже не прокатит, т.к. ему файлы нужно читать.

Если только ставить на php файлы одни права, а на статику другие. Хотя бы на файлы конфигурации (где важные данные, к примеру, подключения к базе) ставить права 600. Владелец файл прочитает, а другим - незачем.

Прикол ещё в том, что nginx часто работает под тем же юзером, что и apache по-умолчанию. Поэтому достаточно получить права www, чтобы открывать чужие файлы. И никакие open_basedir тут вообще ничем помочь не смогут.

Raistlin:
А, что? )))

http://www.youtube.com/watch?v=U-BMb1-5ElY

Сам пёрл и нипричем )))

Raistlin добавил 24.12.2010 в 08:31
на itk пёрл конечно мой не прокатит. Но смысл то тот же ))).

Ну это детсад, что на видео)

В данном случае права и владельцы были как бы корректны.

differnetlocal:

По теме топика: Из любопытства, получить информацию о уязвимости и методах, которыми она была найдена в индивидуальном порядке возможно?

Без проблем. Я вообще скрывать не собираюсь ничего, кому интересно, пишите в личку. Расскажу.

Кому нужно, те уже обратились за аудитом. Кстати, про mpm-itk я перегнул. (с ним один раз получилось только)

Raistlin, ваш вариант с Virtual пробовали на mpm-itk ?

Всего: 9394