记一次利用BLIND OOB XXE漏洞获取文件系统访问权限的测试

今天,我要和大家分享的是,我在某个邀请漏洞测试项目中,发现Bind OOB XXE漏洞的方法。由于涉及隐私,以下文章中涉及网站域名的部分我已作了编辑隐藏,敬请见谅。

漏洞分析

首先,与大多数挖洞者的探测模式一样,我对目标网站进行了全方位的服务资产踩点识别,在此过程中,我发现了其中一个子域名网站比较有意思,于是,我就对它进行了目录遍历,然后,就发现了其名为/notifications的服务端。在BurpSuite中,对这个/notifications服务端的请求和响应如下图所示:

在其响应内容中,我注意到,除了有XML内容外,还包含了一个XML SOAP语法体。由于没有GET参数可供测试,因此我决定向该/notifications服务端发送一个简单的,不指定任何内容类型(content-type)的POST请求进行探究,之后,在POST请求发出后,XML SOAP语法体不再出现,而且整个请求响应的代码为200:

看来,貌似该Web应用端对POST请求能做出很好的响应,且不会抛出405的请求方法错误,所以我又构造定义了包含content-type: application/xml样式的XML语法内容,用它来作POST请求,看看响应如何:

虽然这次的POST响应还是XML内容,但却与上一次不同,这种响应表面上看似像服务端对GET请求的响应,而且,这次的响应内容中包含的标签值不是上次的“TestRequestCalled”,而是“OK”。接着,我又发送了一个定义的JSON请求(content-type: application/json),来测试服务端的具体响应:

这一次,响应内容又是空的,和未指定任何内容类型的简单POST请求响应一样,由此,我推断该服务端能正常处理XML数据,这样一来,我想尝试利用BLIND XXE攻击方式来触发其漏洞。我通过在自己VPS上架设了一个dtd文件,然后利用外部实体引用途径来测试其XML解析机制,幸运的是,最终部署在我VPS上的这个外部dtd文件实体被成功解析引用,以下是其请求内容和最后的解析结果:

xxe-ftp-server.rb脚本应用

由于该系统使用了java框架,而俄罗斯OnSec实验室曾针对Java程序的XXE-OOB攻击作出了相关研究,并给出相应的payload,以及一个通过ftp服务读取系统目录的漏洞利用脚本xxe-ftp-server.rb,运行该脚本后,8088端口作为http服务端负责获取OOB攻击payload,而8077端口用于ftp连接服务,最终能成功读取到目标系统目录:

尽管最后该漏洞被确认为一个重复报,但我还是想把它分享出来,我自己也从中学到一些判断服务端应用的经验。

一些有用的XXE Payload

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

原文发表时间:2018-04-13

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员互动联盟

【线程池】线程池与工作队列

为什么要用线程池? 诸如 Web 服务器、数据库服务器、文件服务器或邮件服务器之类的许多服务器应用程序都面向处理来自某些远程来源的大量短小的任务。请求以某种方式...

36380
来自专栏CodeSheep的技术分享

为Hexo博客添加LiveRe评论系统

21530
来自专栏FreeBuf

Joomla!3.7.0 SQL注入攻击漏洞分析

Joomla是一套世界第二流行的内容管理系统。它使用的是PHP语言加上MySQL数据库所开发的软件系统,可以在Linux、 Windows、MacOSX等各种不...

24450
来自专栏web

vue.js环境搭建

28230
来自专栏架构师之路

网页端收消息,究竟是推还是拉?

抛开这些技术细节不谈,暂且认为服务端对每一个用户都有一个“待收消息”的队列,里面存放了需要给这个用户的一切消息。

13020
来自专栏耕耘实录

五方法破解Linux(CentOS7.4)系统的root密码

版权声明:本文为耕耘实录原创文章,各大自媒体平台同步更新。欢迎转载,转载请注明出处,谢谢

20820
来自专栏机器学习算法与Python学习

Python:爬虫系列笔记(2) -- 基本了解及urllib的使用

1.什么是爬虫 爬虫,即网络爬虫,大家可以理解为在网络上爬行的一直蜘蛛,互联网就比作一张大网,而爬虫便是在这张网上爬来爬去的蜘蛛咯,如果它遇到资源,那么它就会抓...

36960
来自专栏前端杂货铺

XSS分析及预防

XSS(Cross Site Scripting),又称跨站脚本,XSS的重点不在于跨站点,而是在于脚本的执行。在WEB前端应用日益发展的今天,XSS漏洞尤其容...

37970
来自专栏HaHack

化繁为简的企业级 Git 管理实战(二):多分支子模块持续集成

22120
来自专栏zingpLiu

tcpdump命令

  tcpdump是Linux下强大的抓包工具,不仅可以分析数据包流向,还可以对数据包内容进行监听。通过分析数据包流向,可以了解一条连接是如何建立双向连接的。 ...

15820

扫码关注云+社区

领取腾讯云代金券