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))
    • 原理及漏洞

相关推荐
2301_818732063 天前
项目启动报错,错误指向xml 已解决
xml·java·数据库·后端·springboot
csdn2015_4 天前
generatorConfig.xml 配置 Controller、Service 完整教程
xml·mybatis
特立独行的猫a4 天前
从XML到Compose的UI变革:现代(2026)Android开发指南
android·xml·ui·compose·jetpack
spencer_tseng5 天前
Stream not available [SysDictDataMapper.xml]
xml·java
qq_297574675 天前
MySQL迁移到瀚高数据库 常用转换函数对照表(附XML示例,直接复用)
xml·数据库·mysql
好好研究6 天前
SpringBoot整合SpringMVC
xml·java·spring boot·后端·mvc
从此不归路7 天前
Qt5 进阶【12】JSON/XML 数据协议处理:与后端/配置文件的对接
xml·开发语言·c++·qt·json
方芯半导体8 天前
EtherCAT “通信 + 控制“ 的全国产化控制方案,ESC芯片(FCE1323)与国产MCU芯片功能板解析
xml·网络·单片机·嵌入式硬件·网络协议·机器人·自动化
好好研究8 天前
总结SSM设置欢迎页的方式
xml·java·后端·mvc
R-sz9 天前
mybatis的XML,如何多值匹配,支持单值(=)和多值(IN)查询
xml·mybatis