首页 > 其他分享 >XXE

XXE

时间:2024-07-12 15:10:32浏览次数:10  
标签:XML 外部 实体 DTD 文档 XXE

XXE

XXE

全称为XML Enternal Entity Injection,中文名称:XML外部实体注入

XXE漏洞

DTD引用外部实体时导致的漏洞

解析时未对XML外部实体加以限制,攻击者可以将恶意代码注入到XML中,导致服务器加载恶意的外部实体引发文件读取,SSRF,命令执行等

特征:在HTTP的Request报文出现一下请求报文,即表明此时是采用XML进行数据传输,就可以测试是否存在XML漏洞

Content-type:text/xml application/xml

XML

什么是xml

xml(可扩展标记语言 ):用于储存,传输和重建任意数据的标记语言和文件格式

XML 是一种提供规则来定义任何数据的标记语言

表述文档信息

<?xml version="1.0" encoding="UTF-8"?>

每个XML文件都必须有一个根元素

XML注入

  • 当系统对用户输入"<",">"没有做转义的处理,可以修改XML的数据格式,或者添加新的XML节点,形成攻击

注入攻击

当注册访问用户时(用户自己输入用户名)

image-20240711171019807

所以攻击注入时 可构造 user1</user><user role="admin">user2,用来拼接XML

image-20240711171030679

防护

白名单:用正则 对用户的输入做严格的校验

实体引用

实体就好比变量,必须在DTD中定义申明,

image-20240711165302144

DTD文档类型定义

XXE存在的地方,合法的XML文档构建模块,可以被声明在XML文档中,也可以作为一个外部的引用

1.内部DTD文档
<!DOCTYPE 根元素[定义内容]>
 
2.外部DTD文档
<!DOCTYPE 根元素 SYSTEM "DTD文件路径">
 
3.内外部DTD文档结合
<!DOCTYPE 根元素 SYSTEM "DTD文件路径" [定义内容]>

外部实体

外部实体比内部实体多一个system

image-20240711220142657

%xxe执行后会加载外部实体 evil.dtd 并执行,得到的结果会放在

DTD内部引用实体值(参数),格式:%参数

实例

image-20240711202547991

image-20240711202709284

XXE漏洞利用

参考链接

XXE同SQ类似 分有回显和无回显

有回显的情况可以直接在页面中看到payload的执行结果或现象,无回显的情况又称为 blind xxe(类似于布尔盲注、时间盲注)

文件读取

有回显

测试源码

image-20240712144804228

payload

image-20240712144845177

无回显

两种参考模板

image-20240712145817355

image-20240712145825129

利用协议 php://filter 来获取文件的内容(无法直接查看文件内容)

命令执行

php环境下安装expect扩展

image-20240712150026355

payload

image-20240712150102055

SSRF

SSRF的触发点通常是在ENTITY实体中

paylaod

image-20240712150144518

绕过

  • ENTITY、SYSTEM、file等关键词被过滤,可以采用编码的方式进行绕过,16进制等等
  • 若http被过滤,可以采用data://协议、file://协议、php://filter协议等等绕过

标签:XML,外部,实体,DTD,文档,XXE
From: https://www.cnblogs.com/Yolololo/p/18298416

相关文章

  • [CSAWQual 2019]Web_Unagi XXE漏洞练习题
    题目地址:BUUCTF在线评测这道题就是简单的xxe漏洞的注入。进来之后我们进行一个信息收集,在upload下可以看到有个here的超链接。点进去之后得到了如下的一些信息。可以猜到是需要我们利用文件上传包含xxe漏洞利用来得到flag。<?xmlversion='1.0'?><!DOCTYPEusers[<!ENT......
  • 生产实习--启明星辰 第四天(Web网络安全基础知识,sql注入,xss攻击,csrf与ssrf,xxe攻击,未授
    web安全的基础知识基本定义Web安全,也称为网络安全或在线安全,是指保护网站、网页和Web服务免受各种威胁和攻击的技术和实践。这些威胁可能来自恶意软件、网络攻击、数据泄露、身份盗窃、服务中断等。Web安全的目标是确保Web应用程序和用户数据的安全、完整和可用性。一般流程......
  • 6.2 XXE和XML利用
    pikaqu靶场xml数据传输测试-有回显,玩法,协议,引入1、构造payload写文件<?xmlversion="1.0"encoding="UTF-8"?><!DOCTYPEnote[<!ENTITYwrite"goodboy,thisisatest">]><note>&write;</note>读文件&......
  • XXE漏洞(Pikachu)
    原理要补好多知识~XXE漏洞全称XMLExternalEntityInjection即XML外部实体注入。XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、命令执行、内网端口扫描、攻击内网网站、发起Dos攻击等危害。XXE漏洞触发的点往......
  • 用友U8 Cloud smartweb2.RPC.d 存在XXE漏洞
    用友U8Cloud漏洞复现1.Cloudsmartweb2.RPC.d存在XXE漏洞漏洞描述用友U8Cloudsmartweb2.RPC.d存在xml外部实体注入漏洞,攻击者可以通过此漏洞读取系统文件,获取敏感信息等。fofa语句:app="用友-U8-Cloud"漏洞:POST/hrss/dorado/smartweb2.RPC.d?__rpc=trueHTTP/1.1Ho......
  • xxe-基于Pikachu的学习
    XXE漏洞XML外部实体注入(XXE)的原理和应用_xml注入原理-CSDN博客XXE(XML外部实体注入)漏洞分析——pikachu靶场复现_pikachuxxe-CSDN博客原理XML外部实体注入漏洞(XMLExternalEntityInjection)简称XXE,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意......
  • XML和XXE基础
    XML和XXE基础1.0XML和XXE简介简介:XML(eXtensibleMarkupLanguage)是一种可扩展标记语言,它是由万维网联盟(W3C)制定的标准格式,主要用于数据存储、传输以及文档结构的描述。XML的设计目的是为了提供一种灵活且结构化的数据交换手段,使得数据能够在不同的系统和应用程序之间方便地......
  • 再遇java无回显XXE
    来自:[网鼎杯2020青龙组]FileJavahgame遇到一个无回显XXE,这次找java题恰好又找到一个,虽然是四年前的题,但思路大差不差,都是传dtd文件,然后反弹shell,那么重点我们就来看代码审计部分。进入发现是一个文件上传:随便传一个文件看看:给了一个下载地址,访问试试:能直接下载下来,抓个包......
  • XXE笔记
    搭建环境搭建xxe环境dockerpullrrodrigo/xxelabdockerrun-d--name="xxe"-p80:80rrodrigo/xxelabXXE原理当允许引用外部实体时,可通过构造恶意的XML内容,导致读取任意文件、执行系统命令、探测内网端口、攻击内网网站等后果。一般的XXE攻击,只有在服务器有回显或者报错......
  • XXE注入详解
    XML介绍XML全称可扩展标记语言(EXtensibleMarkupLanguage),XML跟HTML格式类似,但是作用不同,XML侧重于数据传输,HTML注重于标记语言,也就是说XML其实是一种数据传输的手段XML格式<?xmlversion="1.0"encoding="UTF-8"standalone="yes"?><!--xml文件的声明--><bookstore>......