XXE(XML外部实体注入)漏洞

  • xxe&xml

    • 探针

      • 黑盒

        • content-type
          • 获取得到Content-Type或数据类型为xml时,尝试xml语言payload进行测试
        • svg&excel引用
        • 数据格式
      • 白盒

        • 可以通过应用功能追踪代码定位审计
        • 可通过脚本特定函数搜索定位审计
        • 可通过伪协议玩法绕过相关修复等
    • 利用

      • 无回显

        • dtd实体带外访问,将数据参数发送
        • HTTP带外访问,加载实体
        • file读取文件,先读取
        • 接受文件接受数据处理
      • 有回显

        • file协议,读取文件

          • 读取文件

            • <?xml version="1.0"?>
            • <!DOCTYPE xiaodi [
            • <!ENTITY test SYSTEM "file:///d:/1.txt">
            • ]>
            • <user><username>&test;</username><password>xiaodi</password></user>
          • 外部实体引用dtd

            • <?xml version="1.0" ?>
            • <!DOCTYPE test [
            • %file;
            • ]>
            • <user><username>&send;</username><password>xiaodi</password></user>
        • HTTP带外访问
      • 伪装协议玩法
    • 前置

      • 缘由:传输和存储数据
        • xml
      • 危害:文件读取,端口探针
    • 修复

      • 禁用dtd实体引用
      • 过滤关键字:<!DOCTYP <!ENTITY, SYSTEM PUBLIC
      • 方案
        • 禁用外部实体

          • PHP
            • libxml_disable_entity_loader(true);
          • Java
            • DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();dbf.setExpandEntityReferences(false);
          • python
            • from lxml import etreexmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
    • 原理及漏洞

相关推荐
spencer_tseng4 小时前
[j2cache ehcache.xml]/tmp/.ehcache-diskstore.lock (Permission denied)
xml·linux·python·ehcache·[j2cache
DevOpenClub1 天前
PDF 多格式解析如何避免混用输出:TEXT、HTML、XML 与 TAG 数据契约
xml·前端·数据库·pdf·html
Java小白笔记1 天前
MyBatis XML Mapper 标签与 CRUD 原理实战
xml·数据库·mybatis
风萧萧19992 天前
JAVA :JSONObject转换为XML
xml·java·python
马优晨4 天前
pom.xml 中 jquery webjars 依赖解释
xml·前端·jquery·jquery webjars·webjars依赖
楚识科技5 天前
定制 OCR 服务:非标证件与表格的 XML 字段映射实践
xml·ocr
光泽雨6 天前
JSON /XML转换
xml·json
我命由我123457 天前
UI 设计 7 种排列方式
xml·学习·ui·html·产品运营·产品经理·学习方法
ly768912 天前
XML 从入门到实践:语法、命名空间、XPath、XSD 与 Java 安全解析
xml·java·python