SGID ビットがあり、読み取り専用で実行可能な PHP ファイルはセキュリティ上の問題がありますか?

SGID ビットがあり、読み取り専用で実行可能な PHP ファイルはセキュリティ上の問題がありますか?

私は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');

シェルスクリプトでsetuidを許可する

最近の実装が sgid を活用する興味深い方法をどのように扱っているかについて説明します。

https://www.in-ulm.de/~mascheck/various/shebang/#setuid

#! simlink 攻撃は 1983 年から 1993 年にかけて問題となり、それ以前は shebang はサポートされておらず、それ以降はより安全に実装されました。

関連情報