当前位置: 首页 > 网络应用技术

没有显示XXE的浅分析(盲xxe)

时间:2023-03-05 23:46:12 网络应用技术

  XML是一种非常流行的标签语言。在分析外部实体的过程中,XML解析器可以根据url.External实体中指定的方案(协议)来查询各种网络协议和服务(DNS,FTP,HTTP,SMB等),对于创建动态非常有用文档中的参考文献,因此参考资源进行的任何更改都将在文档中自动更新。但是,在处理外部实体时,可以启动许多攻击应用程序。这些攻击包括泄漏本地系统文件。这些文件可能包括敏感数据,例如密码和私人用户数据,或使用各种方案的网络访问功能来操纵内部应用程序。通过将这些攻击与其他缺陷相结合,这些攻击的范围可以扩展到客户记忆损失,任意代码,执行,甚至服务中断,具体取决于这些攻击的上下文。

  XML文档具有自己的格式规范。此格式规范由DTD(文档类型定义)控制。

  上面的DTD定义了XML的根元素是消息,然后该元素下面有一些子元素。那么XML必须像以下内容一样写

  实际上,除了定义DTD中的元素(实际上,它是XML中的标签)之外,我们还可以定义DTD中的实体(对应于XML标签中的内容)。毕竟

  这是一个解释任何元素的元素,但是定义了XML的实体(实际上可以将实体视为变量,然后我们可以通过XML中的&符号引用它),然后可以将XML作为这种方式写入以这种方式写。

  示例代码:

  我们使用&xxe引用了上面定义的XXE实体,并且当输出输出时,&xxe将被“测试”代替。

  示例代码:

  当然,还有另一种使用参考公共DTD方法的参考方法。语法如下:

  我们已经将实体分为两个派系(内部实体以及外部和外部),但是从另一个角度来看,该实体也可以分为两个派系(通用实体和参数实体)。

  在DTD定义中使用,在XML文档中引用

  (1)在DTD中定义的使用(此处不少于空间),并且只能在DTD文件中使用DTD(2)中的参考,参数实体的语句可以引用其他实体(3),与通用实体。参数与一般实体相同。实体还可以引用外部参考

  示例代码:

  转:参数实体在我们的盲人xxe中发挥了至关重要的作用

  该实验的攻击场景模拟了服务何时可以接收和分析XML格式的输入,并且有一个恢复,我们可以输入自定义XML代码以通过引用外部实体方法引用服务器上的文件。

  将解析XML的PHP代码放在本地服务器上:

  xml.php

  其中:libxml_noent:将XML中的实体替换为相应的值libxml_dtdload:在Doctype中加载DTD文件

  触发xxe

  读取本地服务器C驱动器的标志文件

  来自外部实体阅读文件的报价

  参考方法是读取参考公共DTD的方法

  如果有备份情况,您可以直接在页面中看到有效负载的执行结果或现象。没有反向的情况也称为盲人xxe。您可以使用take -out数据频道提取data.content,然后将带有HTTP请求的内容发送到接收数据的服务器。

  xml.php

  test.dtd

  有效载荷

  从有效载荷中,我们可以看到三个参数实体%远程;%int;%发送;这是我们的使用顺序,远程远程调用%,并在远程服务器上的请求test.dtd呼叫后,与test.dtd income类似,然后test.dtd中的%file.dtd将是用于在服务器上获取敏感文件,然后在百分比发送之后填充%文件的结果(因为实体的值不能在百分比中,因此将其转换为HTML实体编码),然后我们再次调用%发送;将我们读取的数据发送到远程VPS,以便可以实现Take -Out数据的效果,并且XXE完美地求解XXEthere没问题。

  这样,我们读取标志文件的内容。

  https://xz.aliyun.com/t/3357#toc-10 0文章带您了解漏洞的脆弱性xxe脆弱性

  实验:十四周|盲人XXE(天上的网络安全实验室)单击以输入练习>>

  有关更多拍摄现场实验和在线安全学习材料,请单击此处>>

  原始:https://juejin.cn/post/7096382411621023752