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

admin 2022年6月26日23:14:27评论21 views字数 1795阅读5分59秒阅读模式

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

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

翻译来自掣雷小组

成员信息:

thr0cyte,Gr33k,花花,MrTools,R1ght0us,7089bAt


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

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

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:

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


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

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

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

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

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

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

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

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

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

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

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

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

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



原理剖析

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


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

--------------------------------------------------------------------

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

更多精彩内容,关注玄魂工作室

Kali Linux&nbsp;Web渗透测试手册(第二版)6.6使用SQLMap查找和利用SQL注入

Kali Linux Web渗透测试手册(第二版) 6.5 确认并利用SQL盲注漏洞

原文始发于微信公众号(玄魂工作室):Kali Linux Web渗透测试手册(第二版) - 6.7 - 利用XML外部实体注入

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年6月26日23:14:27
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Kali Linux Web渗透测试手册(第二版) - 6.7 - 利用XML外部实体注入http://cn-sec.com/archives/782498.html

发表评论

匿名网友 填写信息