我发现 php 文件SGID 位和只读&执行。该团体是根。这是一个问题吗?
因为用户需要使用我们的帐户运行 php 解释器,这是否会导致权限升级?
比如,用户www-数据跑步php作为www-数据并调用该文件SGID位,他能成为root吗?
php path/to/file.php
答案1
是的;如果直接在启用了 sgid-on-!# 的操作系统上运行,并且由于缺乏输入卫生等原因,php 文件可能被欺骗写入任意文件,则 sgid:root 将以 root 身份运行该文件。
这是一个很大的 IF,但建议进行深度防御,因为错误很多。
测试suid;
./test.php && whoami
root
www-data
其中 test.php 包含
#!/usr/bin/php
echo exec('whoami');
记录现代实现如何处理利用 sgid 的有趣方式
https://www.in-ulm.de/~mascheck/various/shebang/#setuid
注意#! simlink 攻击是从 1983 年到 1993 年的一个问题,在此之前 shebang 不受支持,之后它得到了更安全的实施。