XML防火墙
1. 背景
XML: 元素、属性、实体、PCDATA、CDATA
DTD: 元素<!ELEMENT 元素名称 类别/元素内容>
属性<!ATTLIST 元素名称 属性名称 默认值>
实体声明 <!ENTITY 实体名称 “实体的值”> 内部/外部
实体 &实体名称;
命令空间:(xmlns(:ns-prefix)=”nsURI”),这个nsURI没有实际意义,仅仅是作为一个标识。
SOAP:逻辑上是一种协议,内容上是一种固定格式的XML
<soap:Envelope>
<soap:Header>…</soap:Header>
<soap:Body>
…
<soap:Fault>…</soap:Fault>
</soap:Body>
</soap:Envelope>
HTTP+XML=SOAP方法,Content-Type: application/soap+xml
WEB Services:一种使用开放协议的可重复使用的组件/服务,用于提供一些对外公开的网络服务接口,基于SOAP传输数据
常用的WebServices接口:http://blog.csdn.net/eric_guodongliang/article/details/7188646
WSDL:逻辑上是WebServices的描述语言,内容上是一种固定格式的XML
<definitions>
<types>…</types>
<message>…</message>
<portType>…</portType>
<binding>…</binging>
</definitions>
UDDI:一种目录服务,企业可以利用其对WebServices进行注册和搜索
RSS:Really SimpleSyndication
<channel>
<title>…<title>
<link>…<link>
<description>…<description>
<item>…<item><item>…<item><item>…<item>
</channel>
2. 攻击
攻击原理
基于XML的攻击比如XSS,SQLI,DoS让一些WebServices容易被攻击。
此外,WebServices还可能有些与自身业务有关的漏洞,比如:
每个WebServices有一个相关的WSDL(Web Services Description Language)文档,它包含了这个service一些重要的细节。通过分析service的WSDL,一个黑客可以详细知道这个WSDL是用来做什么的,哪个部分可用来攻击,比如通过一些畸形SOAP消息或其他XML解析攻击方式。
用XML包装的XSS脚本可能导致未授权访问
利用处理SOAP消息的XML解析器实施XML攻击,递归实体扩展,参数伪造,超多空白等,导致XML解析器超载运行,也可能导致一些无法预知的效果。
XML实体递归引用DoS
XML外部实体注入
攻击应用
l RSS
l ATOM
l OpenDocument
l XML-RPC
l SOAP
l SAML
l SVG
l XML import
攻击危害
l 拒绝服务
l 枚举目录
l 文件读取
l 内网探测
l 端口扫描
l 文件上传
l 命令执行