
Я нахожу php-файлы сБит SGID и только для чтения и выполнения. Группа - этокорень. Это проблема?
Поскольку пользователю необходимо будет запустить интерпретатор PHP с использованием своей учетной записи, может ли это привести к повышению привилегий?
Нравится, пользовательwww-данныебегPHP-файлкакwww-данныеи вызовите файл с помощьюSGID бит, мог ли он стать root?
php path/to/file.php
решение1
Да; sgid:root запустит файл от имени пользователя root, если он запущен непосредственно в ОС с включенным sgid-on-!#, и если файл php может быть обманут и будет записан в произвольный файл из-за отсутствия очистки ввода и т. д.
Это большое «ЕСЛИ», но рекомендуется использовать глубокую защиту, поскольку ошибок много.
Тестовый образец;
./test.php && whoami
root
www-data
Где test.php содержит
#!/usr/bin/php
echo exec('whoami');
Разрешить setuid для скриптов оболочки
Отмечает, как современные реализации предлагают интересные способы использования преимуществ sgid.
https://www.in-ulm.de/~mascheck/various/shebang/#setuid
Обратите внимание, что атака #! simlink была проблемой с 1983 по 1993 год, до этого shebang не поддерживался, а после этого был реализован более безопасно.