背景
在渗透测试涉及到 PostgreSQL(以下简称 PG) 的时候,如果已经拿到数据库 DBA 的账号和密码,那么就可以任意加载恶意动态库。就算最新版本的 PG 已经限制数据库只能从 C:\Program Files\PostgreSQL\xx\lib
(windows)或者 /var/lib/postgresql/xx/lib
加载动态库,但是 DBA 还是可以用 Large Objects
这个特性随意写入动态库到指定的文件夹,然后加载。
这篇文正我们看一下如何搭建 PostgreSQL Extension 在 Visual Studio 2022 下的开发环境。
环境配置
大家根据自己开发的版本,选择相应的文件下载,这个链接里可以找到老版本。
下载之后解压或者安装,找到安装目录,接下来配置 Include Dir 会用。
这里假设 PostgreSQL 9.3 的安装根目录在:
C:\Program Files (x86)\PostgreSQL\9.3
开始配置,直接上图。
- 创建工程
语言选择 C++
,然后选择 Dynamic-Link Library (DLL)
。