PostgreSQL管理工具pgAdmin 4中XSS漏洞的发现和利用

本文我将给大家讲述我是如何发现及利用pgAdmin4桌面客户端中的XSS漏洞。在看完本文之后,请尽快升级到1.4版本。

前言

由于我一只手误触到新MacBookPro上那大得离谱的触摸板,pgAdmin 4页面不断放大缩小。这让我开始思索pgAdmin 4是否为Web应用。

如果这是一个Web应用(当时的我并没有那么肯定),我们是否可以尝试进行攻击呢?我第一件事做的就是进行简单的insert以及select操作。出乎预料的是,竟然能够完成操作!

这也意味着pgAdmin 4用户可以查看不可信数据(主要是来自Web应用的任意数据),也即存在注入攻击漏洞。接下来得找一个方法在获得的上下文中完成一些有趣的事情。我们必须要注意到2件事,一是环境对我们的限制,二是在正常环境下应用程序是如何执行各种操作的(即它是如何进行查询操作的)。

第一次失败

我有尝试使用BeEF中强大的hook脚本,但是它未能返回连接。我这个人很不耐烦,果断放弃了这个相对来说十分快速的方法,转而使用更简单可靠的(但是比较慢)的alert对该App进行黑盒测试。尽管我有其源代码,但我想真正理解代码执行时的环境约束。对环境观察了一段时间之后发现,如果可以找到任意一个全局变量或者属于窗口的对象,或许对于我们想像用户般执行操作会有帮助。然而一无所获,大约15分钟后我就放弃了。

构造一个查询语句

得知该应用程序可以进行查询操作,我仅仅只需要弄清楚它是如何实现的就可以了。我弹出window.location获取到监听服务的端口,之后使用tcpdump进行抓包。

将本机通信流量记录下之后我执行了如下查询:

tcpdump -vvnni lo0 -w pgadmin.pcap port 53108

这使得我获得由localhost:53108发起的各种各样的API调用。通过数据包抓取获得的细节这里就不在过多阐述。对于查询操作,我将其缩小为4个步骤来执行:

第二次失败

我认为对本地服务执行CSRF攻击或许有的玩,但事实证明pgAdmin每次启动端口都会改变,此外还会请求一个token令牌进行设置,就目前来看我们没得玩啊。

Exploit

以下为可用的exploit以及进行查询之后将结果发送到requestb.in的演示视频。https://youtu.be/3Dwpz5IYsCg

代码执行

做人如果没有梦想就跟咸鱼有什么分别!各位看客都看到这里了,我们就来搞搞RCE如何?如果连接到数据库的用户有些权限,执行以下3个请求将会帮助你获得一个非常不错的shell:

1、使用Python语言

create language plpythonu

2、创建一个调用函数,你也可以将其放进上面的PoC中:

3、执行函数

select pwn()

时间线

03-16-2017 – 发现问题

03-17-2017 – 构造exploit

03-17-2017 – 向security@postgresql.org进行报告

03-20-2017 – Dave Page确认漏洞

03-31-2017 – 约一周后更新版本

04-10-2017 – 公布补丁

原文发布于微信公众号 - FreeBuf(freebuf)

原文发表时间:2017-04-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏北京马哥教育

【MySQL拾遗】mysql主从复制以及扩展

一、MySQL简单复制相关概念: mysql复制的意义:Mysql复制是使得mysql完成高性能应用的前提 mysql复制的机制: SLAVE端线程: ...

36440
来自专栏CIT极客

【奇淫巧技】各种冷门的实用技巧成就技术帝!

44480
来自专栏流柯技术学院

Jmeter3.0发布,版本更新都更新了什么

Jmeter已发布了3.0,一个大版本的开源测试工具,加入了一些新的特性及软件的改进。

22930
来自专栏FreeBuf

缓冲区溢出漏洞可导致内核崩溃,苹果多款操作系统均受影响

国外大神Kevin Backhouse刚刚放出了一篇博文,对苹果操作系统内核中发现的堆缓冲区溢出漏洞(CVE-2018-4407)进行了一番解构。

12320
来自专栏lgp20151222

傻瓜式的go modules的讲解和代码

国内关于gomod的文章,哪怕是使用了百度 -csdn,依然全是理论,虽然golang的使用者大多是大神但是也有像我这样的的弱鸡是不是?

54420
来自专栏腾讯NEXT学位

新人如何搭建(copy)一个属于自己的博客

45240
来自专栏琯琯博客

awesome-sysadmin-cn资源

系统管理员 资源列表,内容包括:备份/克隆软件、云计算/云存储、协作软件、配置管理、日志管理、监控、项目管理 备份 备份软件 Amanda:客户端-服务器模型备...

715120
来自专栏零基础使用Django2.0.1打造在线教育网站

零基础使用Django2.0.1打造在线教育网站(十七):我要学习配置

努力与运动兼备~~~有任何问题可以加我好友或者关注微信公众号,欢迎交流,我们一起进步!

21210
来自专栏恰童鞋骚年

操作系统核心原理-3.进程原理(上):进程概要

进程管理、内存管理和文件管理是操作系统的三大核心功能,那么什么是进程呢?顾名思义,进程就是进展中的程序,或者说进程是执行中的程序。当一个程序被加载到内存之后就变...

21620
来自专栏腾讯Bugly的专栏

Android 进程保活招式大全

目前市面上的应用,貌似除了微信和手Q都会比较担心被用户或者系统(厂商)杀死问题。本文对 Android 进程拉活进行一个总结。 Android 进程拉活包括两个...

72170

扫码关注云+社区

领取腾讯云代金券