前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Kali Linux Web渗透测试手册(第二版) - 6.7 - 利用XML外部实体注入

Kali Linux Web渗透测试手册(第二版) - 6.7 - 利用XML外部实体注入

作者头像
Power7089
发布2019-07-25 13:03:45
5250
发布2019-07-25 13:03:45
举报

标记红色的部分为今日更新内容。

6.0、介绍

6.1、寻找文件包含漏洞

6.2、文件包含和文件上传

6.3、手工验证SQL注入

6.4、基于错误的SQL注入

6.5、确认并利用SQL盲注漏洞

6.6、使用SQLMap查找和利用SQL注入

6.7、利用XML外部实体注入

6.8、检测和利用命令注入漏洞


6.7、利用XML外部实体注入

XML主要是一种用来描述文档或数据结构格式的语言;例如,HTML就是XML的一种使用方法。

XML实体就像是XML结构中定义的数据结构,其中一些实体能够从系统中读取文件,甚至执行命令。

在这小节中,我们将利用XML外部实体(XEE)注入漏洞从服务器上读取敏感文件并远程执行一些代码。

环境准备

在此之前,建议你阅读过文件包含或文件上传的那一小节。

实战演练

请参考以下步骤:

1. 浏览器打开:

http://192.168.56.11/mutillidae/index.php?page=xml-validator.php

2. 上面说这是一个XML验证器。让我们试着提交样例测试看看会发生什么。在XML框中,我们输入<somexml><message>HelloWorld</message></somexml>,然后点击Validate XML。在解析的结果中它应该只显示Hello World:

3. 现在,让我们看看它是否正确地处理了实体标记。输入以下内容:

在这里,我们只定义了一个实体将 Mr Bob设为其值。解析器在显示结果时解释了实体并替换该值:

4. 这就是内部实体的使用。让我们尝试一个外部实体的使用:

在这个结果,我们可以看到注入后返回文件的内容:

使用这种技术,我们可以读取系统中任何对运行web服务器用户可读的文件。

5. 我们还可以使用XEE加载web页面。在文件包含时,我们可以设法向服务器上传了一个webshell。让我们做到它:

在这个页面返回的结果中,包含执行服务器端的代码并返回命令执行后的代码:

原理剖析

XML提供了定义实体的可能性。XML中的实体只是一个名称,它具有与之相关联的值。每次在文档中使用实体时,它都会在处理XML文件时被其值替换。使用不同协议(例如file://来加载系统文件,或者http://来加载url),我们可以在没有适当安全措施的地方实现,入输入验证和XML解析器配置方面,可以提取敏感数据,甚至在服务器上执行命令。

在这小节中,我们使用file://协议使解析器从服务器加载任意文件,然后使用http://协议调用一个web页面,该页面恰好是同一服务器中的一个webshell,并使用它执行系统命令。

更多…

还有一种拒绝服务(DoS)攻击就是通过这个名为“billion laughs”的漏洞进行的。你可以在维基百科上了解更多:

https://en.wikipedia.org/wiki/Billion_laughs

PHP支持的XML实体有一个不同的封装(如file://或http://),如果在服务器中启用,就可以在不上传文件的情况下执行命令。您可以在下面这个网站中找到更多有关的协议的信息:

http://www.php.net/manual/en/wrappers.php

另请参阅

一个关于XXE漏洞经典案列,如何攻破一些主流的大厂商网站的,可以查看:

http://www.ubercomp.com/posts/2014-01-16_facebook_remote_code_execution

或者看这个最近的例子,看看Oracle Peoplesoft这种的利用:

https://www.ambionics.io/blog/oracle-peoplesoft-xxe-to-rce

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-01-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 小白帽学习之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档