2012-02-20 5 views
1

Попытка выяснить, какие разрешения пользователя '_www' имеет на моем сервере OS X. Мне нужно выяснить, имеет ли он root-доступ, может ли он получить доступ к любым системным файлам или просто получить доступ к каталогу веб-сайтов верхнего уровня для Writes.Какие у вас есть разрешения?

+1

Обычно только root имеет 'root'. – KingCrunch

ответ

3

Ну, вы можете посмотреть в /etc/group, чтобы увидеть, какие группы _www принадлежит:

$ grep _www /etc/group 
_www:*:70:_devicemgr,_teamsserver 

На правильно настроенном сервере, все точки запуска веб-сервера в качестве выделенного пользователя, чтобы ограничить привилегии этого пользователя в другом месте. Тем не менее, код веб-приложения, который обращается к файловой системе, способен читать вне DocumentRoot сервера.

Следовательно, любой файл, не принадлежащий _www, но для которого он имеет разрешения на чтение и выполнение в родительском каталоге файла, теоретически может быть прочитан _www, если код приложения не защищает его при чтении файловой системы. Аналогично, файлы в файловой системе, которые могут быть перезаписаны другими, могут быть изменены веб-сервером, если код приложения предоставляет им доступ.

Такие вопросы годные для использования, когда приложение использует пользовательский ввод, чтобы создать путь к файлу для чтения или записи, но не в состоянии защититься от входа, как: ../../../../../../../../../, который, когда, возможно, в сочетании с NULL byte injection может производить имена файлов в приложении, как

Конечно, на современной системе /etc/passwd фактически не хранит пароли, но может выявить локальных пользователей и другую ценную информацию потенциальному злоумышленнику.

Смежные вопросы