![읽기 전용이고 실행되는 SGID 비트가 있는 PHP 파일에 보안 문제가 있습니까? [복사]](https://linux55.com/image/146780/%EC%9D%BD%EA%B8%B0%20%EC%A0%84%EC%9A%A9%EC%9D%B4%EA%B3%A0%20%EC%8B%A4%ED%96%89%EB%90%98%EB%8A%94%20SGID%20%EB%B9%84%ED%8A%B8%EA%B0%80%20%EC%9E%88%EB%8A%94%20PHP%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EB%B3%B4%EC%95%88%20%EB%AC%B8%EC%A0%9C%EA%B0%80%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F%20%5B%EB%B3%B5%EC%82%AC%5D.png)
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년까지 문제가 되었으며 그 이후에는 더 안전하게 구현되었습니다.