06.xxe(1)

2019-03-08  本文已影响0人  新一mghc

基本格式


<!--第一部分:XML声明-->

<?xml version="1.0"?>

<!--第二部分:文档类型定义DTD-->

<! DOCTYPE note[<!--定义此文档是note类型的文档-->

<! ENTITY entity-name SYSTEM"URL/URL"><!--外部实体声明

]]]>

<!--第三部分:文档元素-->

<note>

<to>Dave</to>

<from>Tom</from>

<head> Reminder</head>

<body> You are a good man</body>

</note>

DTD:

Document Type Definition即文档类型定义,用来为XML文档定义语义约束。

  1. DTD内部声明

<! DOCTYPE根元素[元素声明]>

  1. DTD外部引用

<! DOCTYPE根元素名称 SYSTEM“外部DTD的URL>

  1. 引用公共DTD

<! DOCTYPE根元素名称 PUBLIC“DTD标识名”“公用DTD的URI">

外部实体引用 payload


<?xml version="1.0"?>

<!DOCTYPE ANY [

<!ENTITY f SYSTEM "file:///etc/passwd">

<x>&f;</x>

外部引用可以支持httpfileftp等协议。

如果一个接口支持接收xml数据,且没有对xml数据做任何安全上的措施,就可能导致XXE漏洞

simplexml_load_ string()

函数转换形式良好的XML字符串为 SimpleXMLElement对象

在PHP里面解析xml用的是libxml,其在≥29.0的版本中默认是禁止解析xml外部实体内容的。

XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致攻击者可以构造一个恶意的XML。

XML注入详解:

https://butian.360.cn/School/content?id=410

XML注入详解(二) xxe注入攻击:

https://butian.360.cn/School/content?id=411

上一篇 下一篇

猜你喜欢

热点阅读