php 파일을 찾았어요SGID 비트 및 읽기 전용 및 실행. 그룹은뿌리. 이것이 문제입니까?
사용자가 PHP 인터프리터를 실행하려면 우리 계정을 사용해야 하는데 이로 인해 권한이 상승됩니까?
예를 들어, 사용자www-데이터달리기PHP~처럼www-데이터그리고 파일을 호출SGID 비트, 그는 루트가 될 수 있습니까?
php path/to/file.php
답변1
예, sgid-on-!#이 활성화된 운영 체제에서 직접 실행하고 입력 위생 부족 등으로 인해 PHP 파일이 임의 파일을 작성하도록 속일 수 있는 경우 sgid:root는 파일을 루트로 실행합니다.
이것은 큰 IF이지만 버그가 많기 때문에 심층적으로 방어하는 것이 좋습니다.
테스트 수트;
./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 공격은 shebang이 지원되지 않기 전인 1983년부터 1993년까지 문제가 되었으며 그 이후에는 더 안전하게 구현되었습니다.