XML 漏洞

2023-12-22

xml 一直是面向服务的应用程序 (SOA) 的支柱,并且在未来它将变得非常有用。 由于 xml 简单、灵活,因此很容易受到攻击,攻击者可以将其用于自己的目的。 因此,一些攻击是强制解析攻击、XML外部实体(XEE)攻击、XML dos(xdos)攻击、XML炸弹。
任何人都可以详细讲述这些攻击吗?
如何在单个系统中实际模拟这些攻击?


首先我们需要区分effect的攻击来自feature那是被利用的。

可以利用的 XML 的特殊功能包括

  • XML 实体
  • 解析器和验证器的专有扩展
  • 循环/递归引用
  • 远程访问

效果可以是

  • DOS
  • 信息披露

我认为“炸弹”没有准确的定义,但它指的是特别“紧凑”且“扩展”的攻击。 “强制解析攻击”利用 XML 模型的性质来压垮解析器。

下面的例子取自XML 拒绝服务攻击和防御 http://msdn.microsoft.com/en-us/magazine/ee335713.aspx。 另外,如果你懂法语,请阅读优秀的杂志“".

实施例1

使用实体的炸弹会导致 DOS,因为它会耗尽内存

<?xml version="1.0"?>
<!DOCTYPE kaboom [
  <!ENTITY a "aaaaaaaaaaaaaaaaaa...">
]>
<kaboom>&a;&a;&a;&a;&a;&a;&a;&a;&a;...</kaboom>

如果您有 50'000 个“aaaa...aaa”和 50'0000&a:&a;...&a;,200KB的有效负载在内存中扩展到超过2GB

实施例2

实体可用于以未经授权的方式访问另一个文件。这会导致信息泄露。

<?xml version="1.0"?>
<!DOCTYPE letter [
     <!ENTITY file SYSTEM "/sensitive.txt" >
]>
<tag> &file; </tag>

实施例3

使用某些解析器的能力来访问远程资源(参见http://www.ibm.com/developerworks/xml/library/x-tipgentity.html) http://www.ibm.com/developerworks/xml/library/x-tipgentity.html,现在看看如果文件bigfile.xml是2GB。这可能会导致 DOS。

<?xml version="1.0"?>
<!DOCTYPE letter [
     <!ENTITY file  SYSTEM "http://www.mysite.com/bigfile.xml" >
]>
<tag> &file; </tag>

实施例4

这种递归会导致内存耗尽,并可能导致 DOS。

<!ENTITY companyname "Contoso Inc.">
<!ENTITY divisionname "&companyname; Web Products Division">

如果这是功课,那么你还应该考虑如何才能protect自己免受此类攻击。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XML 漏洞 的相关文章

随机推荐

  • 如何从上限集合中删除文档?

    当我尝试删除 MongoDB 集合中的文档时 它没有删除 因为集合已被限制 我的问题是为什么 在这种情况下是否有解决方案或其他功能可以删除该文档 否 您无法从上限集合中删除文档 并且没有可能的解决方法 你唯一能做的就是drop http d
  • 如何将打印预览的页边距设置为0?

    我哪里做错了 This is the normal print preview But I want to see this picture without dragging margin arrows 这是CSS代码和预览 是的 可以更改
  • Android proguard,保持内部类

    我的android程序有一个class A 其中有两个static inner class 他们被发现被剥夺 dex应用proguard后 public class A static class B static class C 我已将以下
  • 元素顺序对于内联 SVG 重要吗?

    在 Google Chrome 24 中 如果某个元素被
  • Rails link_to 锚点与远程: true & method: :post

    由于某种原因 锚点不适用于 method post 我的视图文件index haml some code here h3 Description results render result box result box haml 部分 ro
  • 在哪里可以找到 默认显示的文档?

    我假设它是内联的或块的 但我想在文档中验证它 但在 MDN 上找不到它 https developer mozilla org en US docs Web HTML Element input https developer mozill
  • java 已启动但返回退出代码 = -805306369

    谁能帮我解决这个错误 java 已启动但返回退出代码 805306369 C Windows System32 javaw exe jar C Program Files Java eclipse jee helios SR2 win32
  • 同位素附加问题

    我正在使用同位素构建一个平滑的网格画廊 目前我在附加功能方面遇到问题 http isotope metafizzy co docs methods html append http isotope metafizzy co docs met
  • 如何 git commit --amend 作为分支基础的提交

    我有 master head 的分支 foo 我想修改 master head 并让这些更改在分支 foo 上生效 我做了以下事情 git checkout master git add git commit amend git check
  • 使用 PlayFramework 2.4.2 的 ProvisionException

    我正在将一个项目从 Play 2 2 4 迁移到 2 4 2 但遇到了一个我无法理解和解决的异常 Unexpected exception ProvisionException Unable to provision see the fol
  • 如何在Python中计算水分通量散度

    我想计算南部非洲的水汽通量散度 MFD 我在特定一天使用 850 hPa 的 u 和 v 风分量以及 850 hPa 的比湿度 我已按照此处描述的步骤进行操作 使用Python计算u和v的风散度 np gradient https stac
  • 在 Visual Studio Code 中设置文件“launch.json”的 Python 路径

    我使用 Visual Studio Code 已有几年了 我发现它是一个非常好的 IDE 我用 Python 编程的次数比任何其他语言都多 令我困扰的是我没有抽出时间使用 IDE 的调试器 尽管它是一个功能 按调试播放按钮时出错 Faile
  • dplyr 总结函数返回值何时为向量值?

    The dplyr summarize 函数可以对数据应用任意函数 但函数似乎必须返回标量值 我很好奇是否有一种合理的方法来处理返回向量值的函数 而无需多次调用该函数 这是一个有点愚蠢的最小示例 考虑一个给出多个值的函数 例如 f lt f
  • ubuntu 18.10 - 如何使用 java 安装 JavaFX

    我安装了openjdk8和11 JavaFX 都没有附带 我安装了 openjfx 和 libopenjfx java 软件包 但无法让我的应用程序运行 sudo apt list installed grep jfx WARNING ap
  • 两个geom_points添加图例

    我使用以下代码绘制 2 geom point 图 source http www openintro org stat data arbuthnot R library ggplot2 ggplot geom point aes x yea
  • Hibernate、Java 9 和 SystemException

    我一直在尝试在 Java 9 Spring Boot 1 5 x Maven 项目中运行 Hibernate 5 2 11 应用程序 但缺少类 Caused by java lang NoClassDefFoundError javax t
  • 找不到 com.google.android.gms:strict-version-matcher-plugin:1.1.0

    无法解析配置 类路径 的所有文件 找不到 com google android gms strict version matcher plugin 1 1 0 在以下位置进行了搜索 https jcenter bintray com com
  • 当新值与上一个值相同时 StateFlow 不会发出

    我有一个登录表格 我用StateFlow发送LoginResult 调用API后 来自ViewModel to Activity 在活动中 如果登录失败 我将显示错误对话框 第一次运行良好 但从第二次登录失败后 错误对话框将不再显示 我测试
  • Rails 3.1 间歇性“脚本头过早结束”

    所以我开始将我们的应用程序从 Rails 3 0 9 升级到 Rails 3 1 它在开发环境中运行良好 是时候将其放到临时服务器上了 这样我们就可以运行一些完整的验收测试 但是哦 不 我们正面临着可怕的 内部服务器错误 页面有一半的时间返
  • XML 漏洞

    xml 一直是面向服务的应用程序 SOA 的支柱 并且在未来它将变得非常有用 由于 xml 简单 灵活 因此很容易受到攻击 攻击者可以将其用于自己的目的 因此 一些攻击是强制解析攻击 XML外部实体 XEE 攻击 XML dos xdos