zoukankan      html  css  js  c++  java
  • Fortify漏洞之XML External Entity Injection(XML实体注入)

      继续对Fortify的漏洞进行总结,本篇主要针对  XML External Entity Injection(XML实体注入) 的漏洞进行总结,如下:

    1.1、产生原因:

      XML External Entities 攻击可利用能够在处理时动态构建文档的 XML 功能。XML 实体可动态包含来自给定资源的数据。外部实体允许 XML 文档包含来自外部 URI 的数据。除非另行配置,否则外部实体会迫使 XML 解析器访问由 URI 指定的资源,例如位于本地计算机或远程系统上的某个文件。这一行为会将应用程序暴露给 XML External Entity (XXE) 攻击,从而用于拒绝本地系统的服务,获取对本地计算机上文件未经授权的访问权限,扫描远程计算机,并拒绝远程系统的服务。

    下面的 XML 文档介绍了 XXE 攻击的示例: 

    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE foo [
    <!ELEMENT foo ANY >
    <!ENTITY  xxe  SYSTEM "file:///dev/random" >]><foo>&xxe;</foo>


    如果 XML 解析器尝试使用 /dev/random 文件中的内容来替代实体,则此示例会使服务器(使用 UNIX 系统)崩溃。

    例:

     

    图1.1.1:未对XML实体解析方法做安全配置的实例

     

    1.2、修复方案:

    应对 XML unmarshaller 进行安全配置,使它不允许将外部实体包含在传入的 XML 文档中。为了避免 XXE injection,请勿将直接处理 XML 源的 unmarshal 方法用作 java.io.File、java.io.Reader 或 java.io.InputStream。使用安全配置的解析器解析文档并使用将安全解析器作为 XML 源的 unmarshal 方法,如下面的示例所示:

    例:

     

    图1.2.1:对XML实体解析方法做安全配置的实例

  • 相关阅读:
    error: conflicting type qualifiers for &#39;xxxxx&#39;
    每天进步一点点——负载均衡之DNS域名解析
    hdu 1348 Wall(凸包模板题)
    offsetTop和scrollTop的差别
    OnContextMenu事件
    写给即将面临毕业的程序猿们
    hibernate uniqueResult方法
    UpdatePanel的用法
    Spring MVC 3 深入总结
    优麒麟(UbuntuKylin)不是国产Linux操作系统
  • 原文地址:https://www.cnblogs.com/meInfo/p/9017086.html
Copyright © 2011-2022 走看看