热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

XXE外部实体注入

XXE外部实体注入1.XML简介原理XML的应用DTD文档类型定义2.XXE原理XXE危害XXE注入点实例1.XML简介原理XML是一个可扩展标记语言,用做存储标记数据,定义数据类




XXE 外部实体注入


    • 1. XML简介
      • 原理
      • XML的应用
      • DTD 文档类型定义

    • 2. XXE原理
      • XXE危害
      • XXE注入点
      • 实例



1. XML简介


原理

XML是一个可扩展标记语言,用做存储标记数据,定义数据类型。

主要目的是要在不同的机器之间进行通信的数据规范

XML的根元素和子元素允许用户自定义。一个标签用于描述一段数据。

###为什么需要XML


  1. 两个程序间进行数据通信
  2. 给一台服务器,做一个配置文件,当服务器程序启动时,去读取它应当监听的端口号,还有连接数据库的用户名和密码

XML的应用


  1. 解决了程序间数据传输的问题

  2. XML可以做配置文件


    XML文件做配置文件可以说非常普遍,比如我们的Tomcat服务器的server.xml,web.xml。再比如我们的structs中的structs-config.xml文件,和hibernate的hibernate.cfg.xml等等。


  3. XML可以充当小型的数据库


    XML文件可以做小型数据库,也是不错的选择,我们程序中可能用到一些经常要人工配置的数据,如果放在数据库中读取不合适(因为这会增加维护数据库的工作),则可以考虑直接用XML来做小型数据库。这种方式直接读取文件显然要比读数据库快。比如msn中保存用户聊天记录就是用XML文件。



DTD 文档类型定义

​ DTD是用来规范和约束XML的书写

​ 定义实体:就是为一段内容指定一个名称,使用时通过这个名称就可以引用其所代表的的内容。

​ 基本格式:

​ 实例:






编写XML文件引入DTD文件



<班级>
<学生>
<名字>周小星
<年龄>23
<介绍>学习刻苦

<学生>
<名字>林晓
<年龄>25
<介绍>是一个好学生



2. XXE原理

​ 程序在解析XML时,解析了XML中的外部实体引用。

​ 攻击者可以利用外部实体读取任意文件,进行内网探测,执行远程代码和拒绝服务攻击


XXE危害


  1. 敏感信息泄露
  2. 可以探测主机的存活,端口的开放

XXE注入点


  1. URL输入框
  2. 登录框

实例

http://10.10.10.30/xml/example1.php?xml=这个位置填写的是XML标签

构造攻击POC,读取/etc/passwd文件

http://10.10.10.30/xml/example1.php?xml= ]>123&xxebbsjl;

上述payload证明了,XML引用了DTD



推荐阅读
  • phpcms v9无法连接数据库怎么办
    CMS教程|PHPCMSphpcmsCMS教程-PHPCMSqq骂人源码,vscode搜索不到中文插件,ubuntu输入法下载,f14tomcat,sqliteknex,网页设计图 ... [详细]
  • 六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现...
    六十五、主动模式和被动模式、添加监控主机、添加自定义模板、处理图形中的乱码、自动发现一、主动模式和被动模式主动或者被动是相对客户端来讲的被动模式,服务端会主动连接客户 ... [详细]
  • 前言微服务架构(MicroserviceArchitecture)是一种架构概念,旨在通过将功能分解到各个离散的服务中以实现对解决方案的解耦。你可以将其看作是在架构层次而非获取服务 ... [详细]
  • ASP.NET Core WebAPI 开发新建WebAPI项目  转
    转 http:www.cnblogs.comlinezerop5497472.htmlASP.NETCoreWebAPI开发-新建WebAPI项目ASP.NETCoreWebAPI ... [详细]
  • UDP协议开发
    UDP是用户数据报协议(UserDatagramProtocol,UDP)的简称,其主要作用是将网络数据流量压缩成数据报形式,提供面向事务的简单信息传送服务。与TCP协议不同,UD ... [详细]
  • 根据时间更改网站背景的脚本。热!
    我在网上找到了它,并以自己的方式对其进行了自定义;作者的功劳就在那里。实际上,这是一个用于更改背景颜色的脚本,并且在我看来& ... [详细]
  • 导读:很多朋友问到关于入门学什么php框架简单的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • docker整体了解
    Docker是一个基于LXC技术构建的容器引擎,基于Go语言开发,遵循Apache2.0协议开源Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移 ... [详细]
  • php array_unique函数的用法?
    后端开发|PHP问题php,array_unique函数后端开发-PHP问题array_unique()是PHP中的内置函数,语法为array_unique(array,sort_ ... [详细]
  • php实现中文文件下载
    php教程|PHP源码php实现中文文件下载php教程-PHP源码php代码爱之谷2015源码,ubuntu16桌面,tomcat9解压缩半,python爬虫带页面,php批量删除 ... [详细]
  • Visual Studio 2015 开发 ASP.NET 5 有何变化?
    Visual Studio 2015 开发 ASP.NET 5 有何变化? ... [详细]
  • nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • Java序列化对象传给PHP的方法及原理解析
    本文介绍了Java序列化对象传给PHP的方法及原理,包括Java对象传递的方式、序列化的方式、PHP中的序列化用法介绍、Java是否能反序列化PHP的数据、Java序列化的原理以及解决Java序列化中的问题。同时还解释了序列化的概念和作用,以及代码执行序列化所需要的权限。最后指出,序列化会将对象实例的所有字段都进行序列化,使得数据能够被表示为实例的序列化数据,但只有能够解释该格式的代码才能够确定数据的内容。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
author-avatar
mobiledu2502876467
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有