当前位置: 首页 > news >正文

XXE基础知识整理(附加xml基础整理)

  • 全称:XML External Entity

    • 外部实体注入攻击
    • 原理
      • 利用xml进行读取数据时过滤不严导致嵌入了恶意的xml代码;和xss原理雷同

    • 危害
      • 外界攻击者可读取商户服务器上的任意文件;
      • 执行系统命令;
      • 探测内网端口;
      • 攻击内网网站。
      • 商户可能出现资金损失的情况
    • 防御
      • 升级libxml的版本>2.9.1
        • 该版本之后默认不解析外部实体
      • 禁用外部实体解析
      • 过滤用户的提交文本中的关键词<!DOCTYPE等
      • 不允许xml中有自己声明的DTD
      • 设置xml解析使用静态的DTD文件;不允许引用外部的DTD
    • 查找方法
      • 抓包,查看MIME类型是否为xml
      • 抓包,post请求+以下一种格式则可能存在xxe
        • content-type:application/xml text/xml application/json
      • 页面文件为.ashx格式
        • 可以修改文本类型为application/xml进行注入尝试
      • 这对前端无回显的情况
        • 将网站生成的连接作为实体引入
        • 通过该网站进行查看是否有回显:DNSLOG Platform (dig.pm)
  • XML语言:可扩展的标记语言

    • 用于程序之间的数据通信;常用于配置文件中
    • 文档结构
      • xml声明
        • <?xml version=“1.0” encoding=“UTF-8”?>
      • DTD:文档类型定义(文档框架)
        • 内部文档声明
          • <!DOCTYPE 根元素名称 [声明元素的位置] >
          • <!DOCTYPE note[<!ELEMENT note(to,from,heading,body)> <!ELEMENT to(#PCDATA)> <!ELEMENT form(#PCDATA)><!ELEMENT heading(#PCDATA)><!ELEMENT body(#PCDATA)>]>
        • 外部文档声明
          • <!DOCTYPE 根元素名称 SYSTEM "文件名"
          • <!DOCTYPE note SYSTEM "http:127.0.0.1/1.txt">
        • 实体:<!ENTITY >
          • 普通实体
            • <!DOCTYPE ANY[<!ENTITY xxe "123">]> <value>&xxe</value> 内部引用
            • <!DOCTYPE ANY[<!ENTITY xxe "http://127.0.0.1/1.txt">]> <value>&xxe</value> 外部引用
          • 参数实体(只能用于DTD中)
            • <!DOCTYPE root[<!ENTITY %A "<!ENTITY xxe "123">">%A;]> <value>&xxe</value>
            • <!DOCTYPE root[<!ENTITY %A SYSTEM "http://127.0.0.1/1.txt">%A;]> <value>&xxe</value>
      • 元素
        • 实体:用于定义普通文本的变量

        • PCDATA:需要被解析的字符数据

        • CDATA:不被解析的字符数据
        • 元素类型(声明时用)
          • EMPTY :不能包含子元素和文本;但可以有属性
          • ANY :可以包含DTD中的任意元素
          • #PCDATA :可以使用任意字符数据;但不能有子元素
        • 属性
          • 属性声明语法
            • <!ATTLIST 元素名称 属性名称 属性类型 默认值>
            • <!ATTLIST student id CDATA #REQUIRED>
          • 属性类型
            • CDATA
            • (en1|en2|..)
            • ID
          • 默认值
            • #REQUIRED :必须有
            • #IMPLIED :不是必须的
            • #FIXED value :固定值
    • 规则和限制
      • 基础规则
        • xml文档中有且只能有一个根元素
        • 区分大小写
        • 标签格式必须闭合而且一一对应;只有双标签;否则出错
        • 特殊字符必须用文本实体编码代替;& " ' < >等
        • 实体编码必须以&开头;结束;格式要规范
        • 允许多余空格保留
      • 元素命名规则
        • 不能有xml(大小写)开头的名字
        • 不能数字和标点符号开头
        • 不能包含空格
        • 名字中可以有字符、数字、特殊符号
      • 属性规则
        • 不能包含多个值
        • 不能包含子节点
        • 值必须用引号包裹;引号都会用双引号进行解析

相关文章:

XXE基础知识整理(附加xml基础整理)

全称&#xff1a;XML External Entity 外部实体注入攻击 原理 利用xml进行读取数据时过滤不严导致嵌入了恶意的xml代码&#xff1b;和xss原理雷同 危害 外界攻击者可读取商户服务器上的任意文件&#xff1b; 执行系统命令&#xff1b; 探测内网端口&#xff1b; 攻击内网网站…...

【pytorch】anaconda使用及安装pytorch

https://zhuanlan.zhihu.com/p/348120084 https://blog.csdn.net/weixin_44110563/article/details/123324304 介绍 Conda创建环境相当于创建一个虚拟的空间将这些包都装在这个位置&#xff0c;不需要了可以直接打包放入垃圾箱&#xff0c;同时也可以针对不同程序的运行环境选…...

SpringBoot过滤器获取响应的参数

一、背景 在项目开发过程中&#xff0c;需要对于某些接口统一处理。 这时候就需要获取响应的报文&#xff0c;再对获取的报文进行统一处理。 二、了解过滤器 首先了解一下过滤器拦截器的区别&#xff1a; JAVA中的拦截器、过滤器&#xff1a;https://blog.csdn.net/qq_38254…...

数据挖掘实战-基于决策树算法构建北京市空气质量预测模型

&#x1f935;‍♂️ 个人主页&#xff1a;艾派森的个人主页 ✍&#x1f3fb;作者简介&#xff1a;Python学习者 &#x1f40b; 希望大家多多支持&#xff0c;我们一起进步&#xff01;&#x1f604; 如果文章对你有帮助的话&#xff0c; 欢迎评论 &#x1f4ac;点赞&#x1f4…...

SOLID原理:用Golang的例子来解释

随着软件系统变得越来越复杂&#xff0c;编写模块化、灵活和易于理解的代码非常重要。实现这一目标的方法之一是遵循SOLID原则。这些原则是由罗伯特-C-马丁&#xff08;Robert C. Martin&#xff09;提出的&#xff0c;以帮助开发人员创建更容易维护、测试和扩展的代码。 本文将…...

mysql是如何使用索引的?

摘自官网 MySQL使用索引进行以下操作: WHERE条件中,快速查找匹配的行。(快速查询数据) 从准备查询的数据中消除多余行。如果可以在多个索引之间进行选择,则MySQL通常会使用查找最少行数的索引。 如果表具有多列索引,那么优化器可以使用索引的任何最左前缀来查找行。 举例来…...

自动驾驶IPO第一股及商业化行业标杆 Mobileye

一、Mobileye 简介 Mobileye 是全球领先的自动驾驶技术公司&#xff0c;成立于 1999 年&#xff0c;总部位于以色列耶路撒冷。公司专注于开发视觉感知技术和辅助驾驶系统 (ADAS)&#xff0c;并在自动驾驶领域处于领先地位。Mobileye 是高级驾驶辅助系统&#xff08;ADAS&#…...

Linux前后端程序部署

1.总述 首先安装包类型分为 二进制发布包安装:找到对应自己的linux平台版本(CentOS还是redhat等),的具体压缩文件,解压修改配置 源码编译安装:需要自己进行编译 对于redhat安装包,可以使用rpm命令进行安装,但是rpm命令安装不能够解决依赖库的问题,常用的rpm命令,只用于卸载…...

手把手 S32K344移植FreeRTOS

版本信息 RTD:2.0.0.2022 S32DS:3.4.0.2020 下载 从S32K3参考软件下载FreeTROS FreeRTOS安装链接&#xff1a;https://www.nxp.com/webapp/swlicensing/sso/downloadSoftware.sp?catidSW32K3-REFSW-D 根据S32DS版本和S32K3 RTD 2.0.0 Package找到对应的FreeRTOS的zip安装…...

《云原生安全攻防》-- 云原生安全概述

从本节课程开始&#xff0c;我们将正式踏上云原生安全的学习之旅。在深入探讨云原生安全的相关概念之前&#xff0c;让我们先对云原生有一个全面的认识。 什么是云原生呢? 云原生&#xff08;Cloud Native&#xff09;是一个组合词&#xff0c;我们把它拆分为云和原生两个词来…...

综合分享1

VM及安装配置windows server 2008 1&#xff09;安装配置VM 确保是否正确安装&#xff1a; 1&#xff09;检查本地“网络与internal设置”中的虚拟网卡是否创建成功&#xff08;vmnet1和vmnet8&#xff09; 2&#xff09;必须通过services.msc查看vmware的所有是否已经…...

Redis -- set集合

挑战自己&#xff0c;每天进步一点点&#xff0c;成就将属于不停止脚步的你。 目录 Redis集合&#xff1f; 集合基本命令 sadd smembers sismember scard spop srandmember smove srem 集合间操作 sinter sinterstore sunion sdiff sdiifstore Redis集合&#…...

明天是几号(c++题解)

题目描述 题目描述 在某国&#xff0c;每年有 个月&#xff0c;每个月有 天。 求 年 月 日的下一天的日期。 输入格式 第一行&#xff1a;两个整数 。 第二行&#xff1a;三个整数 输出格式 输出三个整数&#xff0c;表示 年 月 日的下一天的日期。 样例 样例…...

PHP安装后错误处理

一&#xff1a;问题 安装PHP后提示错误如下 二&#xff1a;解决 1&#xff1a;Warning: Module mysqli already loaded in Unknown on line 0解决 原因&#xff1a;通过php.ini配置文件开启mysqli扩展的时候&#xff0c;开启了多次 解决&#xff1a;将php.ini配置文件中多个…...

Unity3D开发之鼠标单双击判断

在开发游戏和交互式应用程序时&#xff0c;经常需要对用户的鼠标点击进行准确的响应。其中&#xff0c;单击和双击事件的判断是常见需求之一。本文将介绍如何在Unity中优雅地实现鼠标单双击判断&#xff0c;使代码结构清晰、易读、易维护。 背景 在许多项目中&#xff0c;我们…...

openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围

文章目录 openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围214.1 性能因素214.2 调优范围确定 openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围 数据库性能调优通常发生在用户对业务的执行效率不满意&#xff0c;期望通过调优加快业务执行的情况下。正…...

JAVA——Stream流

1.Stream流的作用&#xff08;流水线&#xff09; 结合了Lambda表达式&#xff0c;简化集合、数组的操作&#xff1b; 2.Stream流的使用步骤 ①先得到一条Stream流&#xff08;流水线&#xff09;&#xff0c;并将数据放上去&#xff1b; ②利用Stream流中的API进行各种操作…...

QXlsx Qt操作excel(1)

QXlsx 是一个用于处理Excel文件的开源C库。它允许你在你的C应用程序中读取和写入Microsoft Excel文件&#xff08;.xlsx格式&#xff09;。该库支持多种操作&#xff0c;包括创建新的工作簿、读取和写入单元格数据、格式化单元格、以及其他与Excel文件相关的功能。 关于QXlsx的…...

20240131在ubuntu20.04.6下使用whisper不同模式的比对

20240131在ubuntu20.04.6下使用whisper不同模式的比对 2024/1/31 16:07 首先你要有一张NVIDIA的显卡&#xff0c;比如我用的PDD拼多多的二手GTX1080显卡。【并且极其可能是矿卡&#xff01;】 2、请正确安装好NVIDIA最新的驱动程序和CUDA。可选安装&#xff01; 3、配置whisper…...

HTTP相关问题

目录 1.从输入URL到页面展示到底发生了什么&#xff1f; 2.HTTP状态码有哪些&#xff1f; 2.1 2XX(成功状态码) 2.2 3XX(重定向状态码) 2.3 4XX(客户端错误状态码) 2.4 5XX(服务端错误状态码) 3.HTTP 请求头中常见的字段有哪些&#xff1f; 4.HTTP和HTTPS有什么区别&…...

ANDOVER PS120/240电源模块

ANDOVER PS120/240 电源模块是一款工业控制系统用电源设备&#xff0c;主要用于为控制器、I/O 模块及相关设备提供稳定的直流或交流电源。一、基本概述型号&#xff1a;PS120/240类型&#xff1a;电源模块用途&#xff1a;为工业控制系统提供稳定可靠的电力支持二、主要功能提供…...

高光谱图像处理实战:5分钟搞懂Pansharpening动态卷积网络(DyPNN)原理与应用

高光谱图像处理实战&#xff1a;5分钟搞懂Pansharpening动态卷积网络&#xff08;DyPNN&#xff09;原理与应用 遥感图像处理领域近年来迎来了一项突破性技术——动态卷积网络&#xff08;DyPNN&#xff09;在高光谱图像融合中的应用。这项技术彻底改变了传统Pansharpening方法…...

Ostrakon-VL-8B环境配置:Ubuntu 22.04 + CUDA 12.1 + PyTorch 2.3 验证清单

Ostrakon-VL-8B环境配置&#xff1a;Ubuntu 22.04 CUDA 12.1 PyTorch 2.3 验证清单 想快速在Ubuntu系统上跑通Ostrakon-VL-8B这个强大的视觉理解模型&#xff0c;但被各种环境依赖搞得头大&#xff1f;别担心&#xff0c;这份清单就是为你准备的。 Ostrakon-VL-8B是一个专门…...

Cisco Packet Tracer实战:从零搭建一个带冗余和ACL策略的企业网络(附完整配置命令)

Cisco Packet Tracer企业网络实战&#xff1a;冗余架构与ACL策略深度解析 第一次在Packet Tracer中搭建完整企业网络时&#xff0c;我被VLAN间通信、HSRP热备切换和ACL策略的连锁反应彻底难住了。记得那个深夜&#xff0c;当错误配置的ACL导致整个财务部门网络瘫痪时&#xff0…...

动手学深度学习|LeNet 超详细讲解:第一个经典卷积神经网络是怎么工作的?

前言在学习完卷积层、池化层之后&#xff0c;我们终于来到了卷积神经网络发展史上一个非常经典的模型——LeNet。它虽然结构不深&#xff0c;放到今天看甚至有点“朴素”&#xff0c;但它的意义非常大&#xff1a;LeNet 是深度学习历史上最早一批成功应用的卷积神经网络之一。很…...

ROS2(2)配置:从WSL网络到Docker容器GUI显示的完整链路

1. WSL2网络架构解析与ROS2容器网络配置 在WSL2Docker环境中运行ROS2时&#xff0c;网络问题是最常见的拦路虎。我刚开始用这个组合时&#xff0c;经常遇到镜像拉取超时、容器内无法访问外网的情况&#xff0c;后来才发现问题出在对WSL2网络机制的理解不足上。 WSL2采用虚拟化技…...

UEFI开发实战指南 – 从环境搭建到国产平台适配

1. UEFI开发环境搭建全攻略 第一次接触UEFI开发时&#xff0c;我被各种陌生的术语搞得晕头转向。经过几个实际项目的摸爬滚打&#xff0c;终于摸清了门道。UEFI开发环境的搭建其实就像搭积木&#xff0c;只要掌握关键步骤&#xff0c;新手也能快速上手。 在Windows系统下搭建环…...

开源项目配置管理:ComfyUI-Manager路径优化与跨环境部署指南

开源项目配置管理&#xff1a;ComfyUI-Manager路径优化与跨环境部署指南 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various…...

突破可视化边界:Charticulator重新定义数据叙事的技术实践

突破可视化边界&#xff1a;Charticulator重新定义数据叙事的技术实践 【免费下载链接】charticulator Interactive Layout-Aware Construction of Bespoke Charts 项目地址: https://gitcode.com/gh_mirrors/ch/charticulator 在数据可视化领域&#xff0c;传统工具往往…...

Comfy UI Docker 镜像构建实战:从零到部署的完整指南

1. 环境准备与基础配置 在Windows 11上通过WSL搭建Comfy UI开发环境&#xff0c;首先要确保系统版本支持WSL 2。打开PowerShell输入wsl --version检查&#xff0c;如果显示版本低于2.0&#xff0c;需要执行wsl --install进行升级。我推荐使用Ubuntu 22.04作为子系统&#xff0c…...