Попытка выяснить, какие разрешения пользователя '_www' имеет на моем сервере OS X. Мне нужно выяснить, имеет ли он root-доступ, может ли он получить доступ к любым системным файлам или просто получить доступ к каталогу веб-сайтов верхнего уровня для Writes.Какие у вас есть разрешения?
ответ
Ну, вы можете посмотреть в /etc/group
, чтобы увидеть, какие группы _www
принадлежит:
$ grep _www /etc/group
_www:*:70:_devicemgr,_teamsserver
На правильно настроенном сервере, все точки запуска веб-сервера в качестве выделенного пользователя, чтобы ограничить привилегии этого пользователя в другом месте. Тем не менее, код веб-приложения, который обращается к файловой системе, способен читать вне DocumentRoot сервера.
Следовательно, любой файл, не принадлежащий _www
, но для которого он имеет разрешения на чтение и выполнение в родительском каталоге файла, теоретически может быть прочитан _www
, если код приложения не защищает его при чтении файловой системы. Аналогично, файлы в файловой системе, которые могут быть перезаписаны другими, могут быть изменены веб-сервером, если код приложения предоставляет им доступ.
Такие вопросы годные для использования, когда приложение использует пользовательский ввод, чтобы создать путь к файлу для чтения или записи, но не в состоянии защититься от входа, как: ../../../../../../../../../
, который, когда, возможно, в сочетании с NULL byte injection может производить имена файлов в приложении, как
Конечно, на современной системе /etc/passwd
фактически не хранит пароли, но может выявить локальных пользователей и другую ценную информацию потенциальному злоумышленнику.
Обычно только root имеет 'root'. – KingCrunch