分类分类
2015-05-08 11:24作者:zhao
0x00 XML简介
XML可扩展标记语言,被设计用来传输和存储数据。其形式多样
例如:
1.文档格式(OOXML,ODF,PDF,RSS,DOCX...)
2.图片格式(SVG,EXIF Headers,...)
3.配置文件(自定义名字,一般是.xml)
4.网络协议(WebDAV,CalDAV,XMLRPC,SOAP,REST,XMPP,SAML,XACML,...)
某些在XML中被设计出来的特性,比如 XML schemas(遵循XML Schemas 规范)和documents type definitions(DTDs)都是安全问题来源。纵然被公开的讨论了上十年,还是有一大批一大批的软件死在针对XML的攻击上。
其实XML实体机制很好理解,可以直接用“转义”来理解:%和&foo从原始意义上来说是一样的,只是后者是由我们自己来定义任意内容。
拿DTD来说,DTD中能声明实体来定义变量(或是文字类的宏),以便在接下来的DTD或者XML文档中使用。一般实体在DTD中定义,用来访问内部资源,获取里面的文字并用来替换自己的xml文档,而外部实体用来访问外部资源(也就是说,这些资源能来自本地计算机,也可以是远程主机)。在解析外部实体的过程中,XML的分析器可能会使用众多网络协议和服务(DNS,FTP,HTTP,SMB等等)这取决于URLs里面被指定成什么。外部实体用来处理那些实时更新的文档是很有用的,然而,攻击也能在解析外部实体的过程中发生。攻击手段包括:
读取本地文件(可能包含敏感信息 /etc/shadow)
内存侵犯
任意代码执行
拒绝服务
本文将对长期以来出现的xml攻击方法进行一个总结。
相关