
私はphpファイルを見つけるSGIDビットと読み取り専用と実行グループは根これは問題でしょうか?
ユーザーは自分のアカウントで PHP インタープリターを実行する必要があるため、権限昇格につながる可能性がありますか?
例えば、ユーザーwwwデータランニングphpとしてwwwデータそしてファイルを呼び出しますSGID ビット、彼はルートになることができましたか?
php path/to/file.php
答え1
はい。sgid:root は、sgid-on-!# が有効になっている OS 上で直接実行され、入力のサニタイズ不足などにより php ファイルが任意のファイルに書き込まれる可能性がある場合、ファイルを root として実行します。
それは大きな「もしも」ですが、バグがたくさんあるので、多層防御が推奨されます。
テスト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 はサポートされておらず、それ以降はより安全に実装されました。