XXE 原理漏洞详解

XXE 原理漏洞及小例题详解

1 什么是XXE漏洞
XXE漏洞全程XML External Entity Injection 即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取,命令执行 内网端口扫描 攻击内网网站 发起DOS攻击等危害
可以类比SQL注入解析传入SQL语句,解析XML语句
2 什么是XML
一种类似html的语句,不同于html,他的标签可以自定义
在这里插入图片描述

3 什么是DTD
在这里插入图片描述
Document Type Definition 文档类型定义
一般和XML文件配合使用,用来约束XML文件

3.1内部DTD文档

<!DOCTYPE 根元素 [定义内容]>

3.2外部DTD文档
引入外部的DTD文件分为两种:
(1)当引用的DTD文件是本地文件时,用SYSTEM标识,并写上 “DTD的文件路径”,如下

<!DOCTYPE 根元素 SYSTEM"DTD文件路径">

(2)当引用的DTD文件是一个公共的文件时,采用PUBLIC标识,如下

<!DECTYPE 根元素 PUBLIC "DTD名称""DTD文件的URL">

例子:
在这里插入图片描述
看这段代码
第四行如果是TURE 就禁止外部实体注入,如果如图一样是FALSE 则可以进行
第五行提交个POST请求
这是一个正常的提交,在看一个不正常的
在这里插入图片描述

多加了:

<!DOCTYPE xxe SYSTEM "xxe.dtd">
<div>&xxe;</div>

意思是将注入的文件 xxe.dtd显示出来,有点类似于文件包含
如果我们把xxe.dtd换成重要的文件如/etc/passwd,则会造成泄露
我们如果将其换成

<!DECTYPE xxe PUBLIC "http://www.xx.com/a.txt">
<div>&xxe</div>

如果这个网站地址不存在这个文件就能会报错 ,换成端口也类似如:

<?!DECTYPE xxe PUBLIC "http:/locahost.com:">
<div>&xxe</div>

我们可以利用这个特性进行内网扫描

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值