🍬 博主介绍
👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~
✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】
🎉点赞➕评论➕收藏 == 养成习惯(一键三连)😋
🎉欢迎关注💗一起学习👍一起讨论⭐️一起进步📝文末有彩蛋
🙏作者水平有限,欢迎各位大佬指点,相互学习进步!
渗透方向的岗位,涉及到的知识点是很广泛的。
这里我总结了整个一系列的面试题,可能没有覆盖到全部的知识面,但是应该是比较全面的,本文主讲解web漏洞XXE漏洞方向的面试题。
如果整个系列的问题搞懂了大部分,那找个网安方向的工作基本上没什么问题了。
当然了,可能也不是说这些问题都会被问到,但这些题目都是和网安岗位相契合的。
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(一)SQL注入相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(二)XSS注入相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(三)CSRF相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(四)SSRF相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(五)文件上传相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(六)文件包含相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(七)逻辑漏洞相关面试题
[ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(八)暴力破解相关面试题
文章目录
- 🍬 博主介绍
- 1、什么是XXE漏洞?
- 2、什么是XML?
- 3、XML的文档格式是怎么样的?
- 1.第一部分:声明
- 2.第二部分:DTD(文档类型定义)
- 3.第三部分:文档的元素
- 4、能详细讲解一下DTD部分吗?
- 1.DTD介绍
- 2.DTD格式
- 3.外部实体里面的函数
- 5、XXE有什么危害?
- 6、XXE漏洞形成原因
- 7、XXE如何利用?
- 8、XXE的防御措施有哪些?
- 9、XXE挖掘思路
- 10、excel存在xxe漏洞吗?
- 11、你有用过什么XXE的检测工具吗?
- 12、oxml_xxe有用过吗?知道他的工作原理吗?
- 1.oxml_xxe是嵌入XXE Payload的一款工具
- 2.oxml_xxe的工作原理分为两种
- 13、oxml_xxe可以向哪些文件中嵌入XXE Payload吗?
- 14、XInclude攻击是什么?
1、什么是XXE漏洞?
1、XXE漏洞是XML外部实体注入(XML External Entity)的简称。
当应用是通过用户上传的XML文件或POST请求进行数据的传输,并且应用没有禁止XML引用外部实体,也没有过滤用户提交的XML数据,某些应用程序允许XML格式的数据输入和解析,可以通过引入外部实体的方式进行攻击,那么就会产生XML外部实体注入漏洞,即XXE漏洞。
2、什么是XML?
1、XML是一种类似于HTML(超文本标记语言)的可扩展标记语言。
是用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。
2、比如说我们经常看到一些.XML的配置文件就是用XML的这种格式来写的。
4、还可以用来传输数据,我们可以直接以XML的格式放到请求当中发给服务器(就像用post请求去发送一个数据一样)。
5、他可以向json 一样去传一组数据发送到我们服务端,服务端收到之后可以对数据进行解析读取,然后后处理等等。
3、XML的文档格式是怎么样的?
XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。
1.第一部分:声明
主要会定义一些版本,编码之类的东西。
2.第二部分:DTD(文档类型定义)
也就是他的文档类型定义,形成漏洞部分。
可以定义很多的实体内容,实体内容会对后面整个XML的文档去做一个对应的约束。
3.第三部分:文档的元素
也就是他的正文,在这个里面会通过一下标签去定义一些key和value属性跟值,这样的一些东西。
4、能详细讲解一下DTD部分吗?
1.DTD介绍
1、DTD(文档类型定义):为XML文档定义语法约束(XML里面的标签都是用户可以自定义的)。
2、我们可以通过在DTD里面去编写一个文档约束(规范)来约束XML文档里面标签的规范(就是的按照DTD里面的格式来写)。
2.DTD格式
第一个是内部声明
<!DOCTVYPE 根元素 [元素声明]>
第二个是外部实体(我们这次漏洞用的)
<!DOCTVYPE 根元素名称 SYSTEM "外部DTD的URI"
第三个是public类型的
<!DOCTVYPE 根元素名称 PUBLIC "DTD标识名" "公用DTD的URI">
3.外部实体里面的函数
除了支持file以外,还支持,http,ftp等协议。
5、XXE有什么危害?
1、检索文件,其中定义了包含文件内容的外部实体,并在应用程序的响应中返回。
2、执行SSRF攻击,其中外部实体是基于后端系统的URL定义的。
<!ENTITY xxe SYSTEM "http://127.0.0.1:8080" >探测端口;
<!ENTITY xxe SYSTEM "expect://id" >执行命令;
3、无回显读取本地敏感文件(Blind OOB XXE),敏感数据从应用服务器传输到攻击者的服务器上。
4、通过Blind XXE错误消息检索数据是否存在,攻击者可以触发包含敏感数据的解析错误消息。
6、XXE漏洞形成原因
1.支持接收XML数据
2.且没有对xml数据提供任何安全措施
3.后端开启了外部实体解析,且没有对传进来的数据做任何的过滤
7、XXE如何利用?
简单来说就是XML中可以通过调用实体来请求本地或者远程内容
1.构造一个XML文档
2.然后在这个文档里面,通过外部实体,去通过这些协议,去指定读取一些文件
(后台在收到这个数据之后就会对这个外部实体里面的内容去进行执行,然后导致一些意外的数据泄露)
8、XXE的防御措施有哪些?
1.通过黑名单过滤用户提交的XML数据
2.配置XML处理器使用禁用DTD、禁止外部实体解析
9、XXE挖掘思路
关注可能解析xml格式数据的功能处,较容易发现的是请求包参数包含XML格式数据,不容易发现的是文件上传及数据解析功能处,通过改请求方式、请求头Content-Type等方式进行挖掘,思路一般分三步:
1、检测XML是否会被成功解析以及是否支持DTD引用外部实体,有回显或者报错;
2、需注意没有回显则可以使用Blind XXE漏洞来构建一条带外信道提取数据;
3、最后可以尝试XInclude,某些应用程序接收客户端提交的数据,将其嵌入到服务器端的 XML文档中,然后解析文档,尝试payload:
<fooxmlns:xi=“http://www.w3.org/2001/XInclude”>
<xi:include parse =“text”href =“file:/// etc / passwd”/> </ foo>
10、excel存在xxe漏洞吗?
1、存在
2、Microsoft Office从2007版本引入了新的开放的XML文件格式,新的XML文件格式基于压缩的ZIP文件格式规范,由许多部分组成。
3、我们可以将其解压缩到特定的文件夹中来查看其包含的文件夹和文件,可以发现其中多数是描述工作簿数据、元数据、文档信息的XML文件。所以不正确的读取2007版本Microsoft office格式文件也存在着XXE攻击的可能性。
11、你有用过什么XXE的检测工具吗?
1、XXEinjector是一个使用Ruby编写的自动化xxe漏洞检测工具
2、可以通过给定一个http请求的包,然后设置好好参数就会自动化的进行fuzz,他会通过内置的规则进行自动化的测试,并且还支持二次注入(通过另一个请求触发漏洞)。
12、oxml_xxe有用过吗?知道他的工作原理吗?
1.oxml_xxe是嵌入XXE Payload的一款工具
oxml_xxe是向一些文件中文件中嵌入XXE Payload的工具
2.oxml_xxe的工作原理分为两种
1、一是直接建立一个文件,该模式会自动添加DOCTYPE并将XML实体插入到用户选择的文件中。
2、二是替换文件中的字符串,此模式会遍历查找文档中的符号§。并用XML实体(“&xxe;”)替换此符号的所有实例。注意,你可以在任何地方打开文档并插入§来替换它。常见的用例是web应用程序,它读取xlsx,然后将结果打印到屏幕上。利用XXE我们便可以将内容打印到屏幕上。
13、oxml_xxe可以向哪些文件中嵌入XXE Payload吗?
DOCX/XLSX/PPTX
ODT/ODG/ODP/ODS
SVG
XML
PDF (experimental)
JPG (experimental)
GIF (experimental)
14、XInclude攻击是什么?
1、xinclude可以理解为xml include是xml标记语言中包含其他文件的方式。
2、类似于php的include,python和java的import。可以使代码更整洁,我们可以将定义的功能函数放在function.php中,再在需要使用功能函数的文件中使用include包含function.php,这样就避免了重复冗余的函数定义,同样可以增加代码的可读性。
3、一些应用程序接收客户端提交的数据,会将其嵌入到服务器端XML文档中,然后解析文档。当客户端提交的数据被放置到后端SOAP(简单对象访问协议)请求中,然后由后端SOAP服务处理时,就会出现这种情况。
4、在这种情况下,我们不能执行典型的XXE攻击,因为无法控制整个XML文档,因此不能定义或修改DOCTYPE元素。
5、我们可以使用XInclude代替。XInclude是XML规范的一部分,它允许从子文档构建XML文档。我们可以在XML文档中的任何数据值中放置XInclude攻击,因此可以在只控制放在服务器端XML文档中的单个数据项的情况下执行攻击。
6、要执行XInclude攻击,需要引用XInclude名称空间并提供希望包含的文件的路径。