SGID 비트가 있고 읽기 전용이며 보안 문제를 실행하는 PHP 파일입니까?

SGID 비트가 있고 읽기 전용이며 보안 문제를 실행하는 PHP 파일입니까?

나는 PHP 파일을 찾습니다SGID 비트 및 읽기 전용 및 실행. 그룹은뿌리. 이것이 문제입니까?

사용자가 자신의 계정으로 PHP 인터프리터를 실행해야 하기 때문에 권한 상승이 발생할 수 있습니까?

마찬가지로 사용자는www-데이터달리기PHP~처럼www-데이터그리고 파일을 호출SGID 비트, 그는 루트가 될 수 있습니까?

php path/to/file.php

답변1

예; sgid:root는 sgid-on-!#이 활성화된 OS에서 직접 실행되거나 입력 위생 부족 등으로 인해 PHP 파일이 임의의 파일에 쓰도록 속일 수 있는 경우 파일을 루트로 실행합니다.

이는 큰 IF이지만 버그가 많기 때문에 심층적인 방어가 권장됩니다.

테스트 수트;

./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이 지원되지 않았으나 그 이후에는 더 안전하게 구현되었습니다.

관련 정보