XXE注入漏洞(XML注入漏洞)详解

最近学习了XXE注入漏洞,打算写一篇文章来巩固梳理一下。

什么是XML?

可扩展标记语言标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言

  • XML 是一种标记语言,很类似 HTML
  • XML 的设计宗旨是传输数据,而非显示数据
  • XML 标签没有被预定义。您需要自行定义标签
  • XML 被设计为具有自我描述性
  • XML 是 W3C 的推荐标准

教程:https://www.w3school.com.cn/xml/index.asp

第一个XML

保存为(*.xml)

<?xml version="1.0" encoding="UTF-8"?>
<pentest>
<to>IceCliffs</to>
<from>IceCliffs</from>
<heading>Reminder</heading>
<body>G1ve me a Sec</body>
</pentest>

输出

关于XML注入

假如一个用户在注册时,使用xml 来存储数据到xmldb数据库中,当用户填写用户名,密码和邮箱时,后台存储的文件格式及内容如下

XML 文档有自己的一个格式规范,这个格式规范是由一个叫做 DTD(document type definition) 的东西控制的,他就是长得下面这个样子

<?xml version="1.0"?>
<!DOCTYPE message [
<!ELEMENT message (receiver ,sender ,header ,msg)>
<!ELEMENT receiver (#PCDATA)>
<!ELEMENT sender (#PCDATA)>
<!ELEMENT header (#PCDATA)>
<!ELEMENT msg (#PCDATA)>

上面这个 DTD 就定义了 XML 的根元素是 message

<message>
<receiver>Myself</receiver>
<sender>Someone</sender>
<header>TheReminder</header>
<msg>This is an amazing book</msg>
</message>

 

点赞

发表评论

电子邮件地址不会被公开,只有你知道( ̄▽ ̄)"