码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • xxe攻击(XML外部实体)


    1.定义

    XML用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素。

    http://www.w3school.com.cn/dtd/index.asp   了解地址 

    2.原理    

    XXE(XML外部实体注入) ,在应用程序解析XML输入时,当允许引用外部实体时,可构造恶意内容,导致读取任意文件、探测内网端口、攻击内网网站、发起DoS拒绝服务攻击、执行系统命令等。当运维人员使用了低版本php,libxml低于2.9.1或者程序员设置了libxml_disable_entity_loader(FALSE)就可以加载外部实体。     

    http://10.0.0.139:92/phpinfo.php   ctrl +f    搜索输入内容

     默认为false

    3.XXE攻击

    •  有回显

    ]>
     &hacker;    

    //定义DTD文件,格式为:root指定根节点名称,system声明要使用的外部DTD文件路径,如:

     win操作系统读出来就是有xxe漏洞   Linux 读/etc/passswd

    • 无回显

    建立*.dtd(攻击者服务器)
        //被攻击的文件
    ">  

    //内部的%号要进行实体编码成%   

    在被攻击机创建1.txt  攻击机使用apache


     apache的日志文件里面查看


    解码base64

     xml调用

    %remote;%int;%send;
    ]> 

    4.如何找xxe漏洞
     

    •  白盒测试

            查看代码里面是否使用了LoadXML( )函数

    •     黑盒测试

            抓包看响应体是否存在xml,accept头是否接受xml
            抓包修改数据类型,把json改成xml来传输数据,后面修改一句话
            http://web.jarvisoj.com:9882/   例子
             出来的样子

               json的数据提交

               改为xml,下面改为

      ]> &hacker;  
     打比赛的ctf地址

    •  特征

                看到url文件名是否 .ashx后缀扩展名
                响应体为xml                 

    5.防范方法

    1、升级php版本
    2、程序员修改代码
     PHP:
    libxml_disable_entity_loader(true);

    JAVA:
    DocumentBuilderFactory dbf =DocumentBuilderFactory.newInstance();
    dbf.setExpandEntityReferences(false);
    setFeature("http://apache.org/xml/features/disallow-doctype-decl",true);
    setFeature("http://xml.org/sax/features/external-general-entities",false)
    setFeature("http://xml.org/sax/features/external-parameter-entities",false);

    Python:
    from lxml import etree
    xmlData = etree.parse(xmlSource,etree.XMLParser(resolve_entities=False))
    3、过滤关键词

  • 相关阅读:
    Django报错:RuntimeError at /home/ 解决办法
    MySQL中的隐式转换造成的索引失效
    Idea中删除子模块后再重建同名模块maven无法识别
    2023年【广东省安全员A证第四批(主要负责人)】考试试卷及广东省安全员A证第四批(主要负责人)模拟考试
    流量2----2
    构建空间场景轻应用,Mapmost Alpha来啦【文末赠书(10本)--第一期】
    【408数据结构与算法】—堆排序(二十一)
    非线性二分类——机器学习
    求一个软件,能在微信小程序里面传照片的,微信小程序要使用真实的拍实物,我想要照片代替传,这个软件可以做出来吗?
    selenium/webdriver运行原理与机制
  • 原文地址:https://blog.csdn.net/2301_79194110/article/details/133238640
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号