Ist eine PHP-Datei mit SGID-Bit und schreibgeschützter Ausführung ein Sicherheitsproblem?

Ist eine PHP-Datei mit SGID-Bit und schreibgeschützter Ausführung ein Sicherheitsproblem?

Ich finde PHP-Dateien mitSGID-Bit und schreibgeschützt & ausführenDie Gruppe istWurzel. Ist das ein Problem?

Könnte es zu einer Rechteausweitung kommen, weil ein Benutzer den PHP-Interpreter mit seinem eigenen Konto ausführen muss?

Wie der Benutzerwww-DatenLaufenphpalswww-Datenund rufen Sie die Datei auf mitSGID-Bit, könnte er Root werden?

php path/to/file.php

Antwort1

Ja; sgid:root führt die Datei als Root aus, wenn es direkt auf einem Betriebssystem mit aktiviertem sgid-on-!# ausgeführt wird und wenn die PHP-Datei aufgrund fehlender Eingabebereinigung usw. dazu verleitet werden kann, in eine beliebige Datei zu schreiben.

Das ist ein großes WENN, aber aufgrund der Vielzahl an Fehlern ist eine mehrstufige Verteidigung anzuraten.

Testergebnis;

./test.php && whoami
root
www-data

Wobei test.php enthält

#!/usr/bin/php
echo exec('whoami');

Erlaube „setuid“ in Shell-Skripten

Hinweise, wie moderne Implementierungen mit interessanten Möglichkeiten umgehen, SGID zu nutzen

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

Hinweise: Der #!-Simlink-Angriff war von 1983 bis 1993 ein Problem. Vorher wurde Shebang nicht unterstützt und danach sicherer implementiert.

verwandte Informationen