Connect

psql -h <Target_IP> -p <Target_Port> -U <Username>
psql -h 10.10.10.10 -p 5432 -U postgres

Code Execution

  • pg_execute_server_program권한을 보유한 경우, 쉘코드 실행 가능
  • Superuser권한이 있는경우, pg_execute_server_program권한을 부여(grant)하거나, 취소(revoke)할 수 있음.

권한 확인

Command

# 코드 실행 권한 확인
SELECT pg_has_role('<로그인_계정>', 'pg_execute_server_program', 'member');
 
# 사용자 계정 권한 확인
\du [UserName]

Expected Output

권한 부여 및 회수

  • 기본적으로 Superuser가 활성화된 계정은 Revoke 이후에도 pg_execute_server_program권한이 true로 노출되며, 코드 실행이 가능하다.
GRANT pg_execute_server_program TO <your_username>;
REVOKE pg_execute_server_program FROM <your_username>;