
PHP 권한 상승 시 시스템에서 비활성화된 함수로 인해 명령을 실행할 수 없는 상황을 해결합니다.
bypass_disablefunc.php에는 세 가지 GET 옵션이 있습니다: cmd, outpath, sopath.
옵션은 매우 간단합니다.
cmd는 당신의 악성 명령이고,
outpath는 명령 출력 파일 경로(읽기 및 쓰기 가능)이며,
sopath는 우리의 공유 객체 bypass_disablefunc_x64.so의 절대 경로입니다. 예를 들어:
첫 번째는 cmd 매개변수로, 실행할 시스템 명령(예: pwd)입니다;
두 번째는 outpath 매개변수로, 명령 실행 출력 결과를 저장할 파일 경로(예: / tmp / xx)로, 페이지에 표시하기 쉽습니다. 또한 이 매개변수와 관련해 웹에 읽기/쓰기 권한이 있는지, 웹이 디렉터리를 넘어 접근할 수 있는지, 파일이 덮어써지고 삭제된다는 점 등을 주의해야 합니다;
세 번째는 sopath 매개변수로, 시스템 함수를 가로챌 공유 객체의 절대 경로(예: /var/www/bypass_disablefunc_x64.so)를 지정합니다. 또한 이 매개변수와 관련해 웹이 디렉터리를 넘어 해당 파일에 접근할 수 있는지 주의해야 합니다.
추가로, bypass_disablefunc.php는 명령과 출력 경로를 이어붙여 완전한 명령줄로 만들기 때문에 cmd 매개변수에서 리다이렉션할 필요가 없습니다.
bypass_disablefunc_x64.so는 명령을 실행하기 위한 공유 객체로, gcc -shared -fPIC bypass_disablefunc.c -o bypass_disablefunc_x64.so 명령으로 bypass_disablefunc.c를 컴파일하여 만들어진 것입니다. 대상이 x86 아키텍처라면 -m32 옵션을 추가하여 bypass_disablefunc_x86.so를 다시 컴파일해야 합니다.
bypass_disablefunc.php와 bypass_disablefunc_x64.so를 대상 서버에 업로드할 방법을 찾은 후, 세 개의 GET 매개변수를 지정하면 bypass_disablefunc.php가 disable_functions를 우회할 수 있습니다.
알려진 문제: