渗透测试信息收集步骤/Kali Linux Web渗透测试手册(第二版) - 6.7 - 利用XML外部实体注入_新手白帽子入门教程
翻译来自 :掣雷小组
成员信息:
, Gr33k, 花花,, ,
标 记红色的部分为今日更新内容。
6.0、介绍
6.1、寻找文件包含漏洞
6.2、文件包含和文件上传
6.3、手工验证SQL注入
6.4、基于错误的SQL注入
6.5、确认并利用SQL盲注漏洞
6.6、使用查找和利用SQL注入
6.7、利用XML外部实体注入
6.8、检测和利用命令注入漏洞
6.7、利用XML外部实体注入
XML主要是一种用来描述文档或数据结构格式的语言;例如,HTML就是XML的一种使用方法。
XML实体就像是XML结构中定义的数据结构,其中一些实体能够从系统中读取文件,甚至执行命令。
在这小节中,我们将利用XML外部实体(XEE)注入漏洞从服务器上读取敏感文件并远程执行一些代码。
环境准备
在此之前,建议你阅读过文件包含或文件上传的那一小节。
实战演练
请参考以下步骤:
1.浏览器打开:
2.上面说这是一个XML验证器。让我们试着提交样例测试看看会发生什么。在XML框中,我们输入,然后点击 XML。在解析的结果中它应该只显示Hello World:
3.现在,让我们看看它是否正确地处理了实体标记。输入以下内容:
在这里,我们只定义了一个实体将 Mr Bob设为其值。解析器在显示结果时解释了实体并替换该值:
4.这就是内部实体的使用。让我们尝试一个外部实体的使用:
在这个结果,我们可以看到注入后返回文件的内容:
使用这种技术,我们可以读取系统中任何对运行web服务器用户可读的文件。
5.我们还可以使用XEE加载web页面。在文件包含时,我们可以设法向服务器上传了一个。让我们做到它:
在这个页面返回的结果中,包含执行服务器端的代码并返回命令执行后的代码:
原理剖析
XML提供了定义实体的可能性。XML中的实体只是一个名称,它具有与之相关联的值。每次在文档中使用实体时,它都会在处理XML文件时被其值替换。使用不同协议(例如file://来加载系统文件,或者来加载url),我们可以在没有适当安全措施的地方实现,入输入验证和XML解析器配置方面,可以提取敏感数据,甚至在服务器上执行命令。
在这小节中,我们使用file://协议使解析器从服务器加载任意文件,然后使用协议调用一个web页面,该页面恰好是同一服务器中的一个,并使用它执行系统命令。
网络安全学习路线图(思维导图)
网络安全学习路线图可以是一个有助于你规划学习进程的工具。你可以在思维导图上列出不同的主题和技能,然后按照逻辑顺序逐步学习和掌握它们。这可以帮助你更清晰地了解自己的学习进展和下一步计划。
1. 网络安全视频资料
2. 网络安全笔记/面试题
3. 网安电子书PDF资料
~