읽기 전용이고 실행되는 SGID 비트가 있는 PHP 파일에 보안 문제가 있습니까? [복사]

읽기 전용이고 실행되는 SGID 비트가 있는 PHP 파일에 보안 문제가 있습니까? [복사]

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

쉘 스크립트에 setuid 설정 허용

최신 구현이 sgid 활용을 처리하는 방법에 대한 흥미로운 방법을 문서화합니다.

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

참고 #! simlink 공격은 shebang이 지원되지 않기 전인 1983년부터 1993년까지 문제가 되었으며 그 이후에는 더 안전하게 구현되었습니다.

관련 정보