【pikachu渗透靶场&Web安全从入门到放弃】之 XXE漏洞原理和案例实验演示—— “叉叉易”

 

48.10-2 xxe漏洞原理和案例实验演示(Av96582332,P48)

 

XXE(

xml external entity injection"

 

 

第一部分: 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

根元素 [元素声明 ]>

2. DTD 外部引用

<!DOCTYPE

根元素名称 SYSTEM “ 外部 DTD 的 URI”>

3. 引用公共 DTD

<!DOCTYPE

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

 

 

外部实体引用

payload:

<?xml version = "1.0"?>

<!DOCTYPE ANY

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

<x>&f;</

外部引用可以支持

http,file ftp 等协议。

如果一个接口支持接收

xml 数据,且没有对 xml 数据做任何安全上的措施,就可

能导致 XXE 漏洞。

 

simplexml_load_string()

函数转换形式良好的

XML 字符串为 SimpleXMLElement 对象

PHP 里面解析 xml 用的是 libxml, 其在 2.9.0 的版本中 默认是禁止解析 xml 外

部实体内容的。

 

 

待补充理解

 

发布了27 篇原创文章 · 获赞 5 · 访问量 1684

猜你喜欢

转载自blog.csdn.net/vanarrow/article/details/105589234