XML注入(XXE)
XML所有元素都必须要有一个结束标志
大小写敏感
所有元素嵌套必须正确
所有的XML文档都必须要有一个根标志
XML包括XML声明,DTD文档类型定义(可选),文档元素
DTD即文档类型定义,用来为XML文档定义语义约束
DTD可以嵌入在XML文档中(内部声明),也可独立放在一个文件中(外部声明),由于其支持的类型有限,无法对元素或属性的内容进行详细规范,在可读性和可扩展性方面也比不上XML Schema
引用方式
DTD内部声明
<!DOCTYPE 根元素 [元素声明]>
DTD外部引用
<!DOCTYPE 根元素名称 SYSTEM "外部DTD的URI">
引用公共DTD
<!DOCTYPE 根元素名称 PUBLIC "DTD标识名" "公用DTD的URI">
DTD内部声明:
<!ENTITY writer "me">
XML:
<author>&writer;</author>
一个实体由三部分构成:
一个&
一个实体名称
一个;
示例:<!DOCTYPE FOO [
<!ELEMENT foo ANY>
<!ENTITY xxe "Thinking">
<foo>&xxe;</foo>
DTD外部引用
示例:
<!DOCTYPE foo [
<!ELEMENT foo ANY>
<!ENTITY xxe SYSTEM "file:///c:/win.ini">
]>
<foo>&xxe;</foo>
引用公共DTD
格式
<!ENTITY 实体名称 PUBLIC "public_ID" "URI">
示例
<!ENTITY public_dtd PUBLIC "DTD_name" "DTD_location">
在公共类型DTD加载的时候,首先会使用DTD_name来检索,如果无法找到,则通过DTD_location来寻找此公共DTD
利用DTD_location。在一定的环境下可以用来做内网探测
XXE注入,即XML外部实体注入
通过XML实体,"SYSTEM"关键词导致XML解析器可以从本地文件或远程URI中读取数据。攻击者可以通过XML实体传递自己构造的恶意值,使处理程序解析它。当引用外部实体时,通过构造恶意内容,可导致读取任意文件,执行系统命令,探测内网端口等危害。
XXE分类
1.基础XXE注入:外部实体注入本地DTD
2.基于盲注的XXE注入:XML解析器在响应中不显示任何错误
3.基于错误的XXE注入:成功解析之后,XML解析器始终显示SAME响应,可用解析器将文件内容"打印"到错误响应中。
XML注入(XXE)的更多相关文章
- XML注入介绍--XXE,XEE,xpath等
XML注入指在请求的XML中插入攻击利用代码.根据不同的场景,可能会形成以下的漏洞形式: (1)XEE ----xml entity xpansion(xml实体膨胀,用于dos) 具体介绍:http ...
- WEB安全第五篇--其他注入的奇技淫巧:XML注入、Xpath注入、Json注入、CRLF注入
零.前言 最近做专心web安全有一段时间了,但是目测后面的活会有些复杂,涉及到更多的中间件.底层安全.漏洞研究与安全建设等越来越复杂的东东,所以在这里想写一个系列关于web安全基础以及一些讨巧的pay ...
- WEB安全——XML注入
浅析XML注入 认识XML DTD XML注入 XPath注入 XSL和XSLT注入 前言前段时间学习了.net,通过更改XML让连接数据库变得更方便,简单易懂,上手无压力,便对XML注入这块挺感兴趣 ...
- Apache Cocoon XML注入 [CVE-2020-11991]
受影响版本: Apache Cocoon <= 2.1.x 程序使用了StreamGenerator这个方法时,解析从外部请求的xml数据包未做相关的限制,恶意用户就可以构造任意的xml表达式, ...
- 【网络安全】SQL注入、XML注入、JSON注入和CRLF注入科普文
目录 SQL注入 一些寻找SQL漏洞的方法 防御SQL注入 SQL注入相关的优秀博客 XML注入 什么是XML注入 预防XML注入 JSON注入 什么是JSON注入 JSON注入的防御 CRLF注入 ...
- phpshe xml注入
*php商城系统 xml注入* **页面样式* *Xml原理参考:* https://www.cnblogs.com/20175211lyz/p/11413335.html *漏洞函数simplexm ...
- 【研究】XML外部实体注入(XXE)
在正式发布的2017 OWAST Top10榜单中,出现了三种新威胁: A4:XML外部实体注入漏洞(XXE) A8:不安全的反序列化漏洞 A10:不足的记录和监控漏洞 验证XXE: 构造请求 < ...
- [NCTF2019]Fake XML cookbook-1|XXE漏洞|XXE信息介绍
1.打开之后显示如图所示: 2.根据题目名字就能看出来和xml有关,和xml有关的那就是注入,brup抓包看下数据包,结果如下: 3.查看post数据,确实很像xml实体注入,那就进行尝试以下,将po ...
- spring xml 注入 map 时 map 标签报错
如图所示: 在XML配置文件中并没有问题,问题出在实体类,在类中属性 maps 用 Map定义即可,用HashMap定义就会出现如上错误 K-I-N-G-D-O-M
随机推荐
- 读取properties配置文件,value值为中文时出现乱码
已确保idea工具默认设置都是UTF-8格式: 然后在配置类上,指定编码: @PropertySource(value = "classpath:short_message.prop ...
- 从excel表中生成批量SQL,将数据录入到数据库中
excel表格中有许多数据,需要将数据导入数据库中,又不能一个一个手工录入,可以生成SQL,来批量操作. 1.首先在第二行的H列,插入函数:=CONCATENATE("INSERT ...
- GAN的入门级理解(按文章顺序)
1.https://www.leiphone.com/news/201706/ty7H504cn7l6EVLd.html 我的理解:一开始,G网络利用一组随机噪声生成一堆合成的垃圾照片,交给D网络判断 ...
- JAVA中接口与抛出异常的相关知识
1.接口概念:接口可以理解为一种特殊的类,由全局常量和公共的抽象方法所组成. 类是一种具体实现体,而接口定义了某一批类所需要遵守的规范,接口不关心这些类的内部数据,也不关心这些类里方法的实现细节,它只 ...
- [server]利用python构建的服务器地址问题
http://0.0.0.0:8000/ 利用github开源项目搭建AI上色师时,遇到了建立server却无法访问的问题,ip如上. 其实很简单,0.0.0.0并不是有效的ip地址,用localho ...
- Java学习笔记(5)
齿状二维数组的声明及使用 或者 int[][] triangleArray = new int[5][]; triangleArray[0] = new int[5]; triangleArray[1 ...
- GDB程序调试
GDB使用流程 1.编译生成可执行文件: gcc -g tst.c -o tst2.启动GDB gdb tst3. 在main 函数处设置断点 break main4. 运行程序 run GDB 命令 ...
- Flash Alternativa 3D引擎-基础理论
自由行走的花 网站设计,flash网站设计与动画制作,web,as3 2010-12-31 14:29 [转]Flash Alternativa 3D引擎-基础理论 <本文转载自:http:// ...
- django学习:一些疑惑
昨天学习了django的第二天,有一些收获. django的语法很严谨,看上去明明对齐的,但是他却提示说缩进不一致.后来我把前面的空全部删除,全部采用空格,这样就通过了,看样子还是要编程有一个好习惯, ...
- ubuntu安装tensorboardx
先安装tensorboardX,因为tensorboard依赖于tensorflow中的一些东西,所以安装完tensorboard之后,需要再安装tensorflow pip install tens ...