XXE外部实体注入

XML:
可扩展标记语言

XML文档格式:

<!--第一部分: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 “外部的DTDURI>

3. 引用公共的DTD
<!DOCTYPE 根元素名称 PUBLIC "DTD标识名" "公共DTD的URI">

XXE:
XML外部实体注入(XML External Entity Injection)。
XXE漏洞发生在应用程序解析XML输入时,没有禁止对外部实体的加载,导致攻击者可以构造一个恶意的XML
(PHP解析XML用的是libxml,其在>=2.9.0版本后默认禁止)

simplexml_load_string()
用于接收格式正确的XML文档,并解析成SimpleXMLElement对象。

外部实体引用payload:

<?xml version = "1.0"?>
<!DOCTYPE ANY [
	<!ENTITY f SYSTEM "file:///etc/passwd">		//将file的内容复值给f
	]>
<name>&f;</name>		//读取f可读取file的值
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

汉堡哥哥27

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值