XXE漏洞挖掘和防护

news/2025/1/12 8:49:08/

今天继续给大家介绍渗透测试相关知识,本文主要内容是XXE漏洞挖掘和防护。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、XXE漏洞挖掘

对XXE类型的漏洞,我们挖掘思路如下所示:

(一)白盒代码审计

如果我们能够拿到目标系统源码,那么我们就可以进行白盒代码审计。白盒代码审计的主要思路有2个,一个是针对XML处理函数进行查找;第二个是检查可控变量的格式、传输以及使用。

(二)黑盒人工测试

如果我们拿不到目标系统源代码,那么我们就只能进行黑盒测试。除了利用现有的工具进行扫描外,黑盒人工测试主要是针对以下几点:
1、关注提交数据的类型。如果是XML格式的,就可以进行测试。
2、关注数据包的Content-Type值。如果是text/xml或者是application/xml,就可以关注该数据包。还可以尝试更改Content-Type值,例如原来的Content-type是json,发送的也是json格式的数据,我们将Content-Type类型改为XML,数据也改为XML后,尝试是否可以成功。

二、XXE漏洞防护

XXE漏洞的防护,除了传统的加装WAF外,主要有以下2种:
1、禁用外部实体。
如果目标站点禁用了外部实体,那么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))

2、过滤用户输入。
但是,如果站点业务要求我们不能禁用外部实体,那么我们就只能对用户的输入进行严格的过滤,以期能够防止用户输入能够引起XXE漏洞的代码。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200


http://www.ppmy.cn/news/6162.html

相关文章

【图神经网络】Pytorch图神经网络库——PyG创建消息传递网络

PyG创建消息传递网络消息传递基类:MessagePassingGCN层的实现实现Edge Convolution内容来源:将卷积算子推广到不规则域通常表示为邻域聚合或消息传递方案。在第(k−1)(k-1)(k−1)层中节点iii的节点特征用xi(k−1)∈RF\mathrm{x}_{i}^{(k-1)}\in \mathbb{…

300行HTML+CSS+JS代码实现动态圣诞树

文章目录1. 前言2. 效果展示3. 准备🍑 下载编译器🍑 下载插件4. 源码🍑 HTML🍑 JS🍑 CSS5. 结语1. 前言 一年一度的圣诞节和考研即将来临,那么这篇文章将用到前端三大剑客 HTML CSS JS 来实现动态圣诞树…

前端(htmlCSSJavaScript)基础

关于前端更多知识请关注官网:w3school 在线教程全球最大的中文 Web 技术教程。https://www.w3school.com.cn/ 1.HTML HTML(HyperText Markup Language):超文本标记语言 超文本:超越了文本的限制,比普通文本更强大。除了文字信息…

硬盘恢复工具软件哪个好?分享这些硬盘数据恢复工具软件

您刚刚删除了一些非常重要的文件! 不要惊慌……您仍然有很大的机会可以以很少甚至免费的方式取回它们。 我们正在深入研究当今最好的硬盘恢复软件。 我们认为有一个明显的赢家,但我们提供了一些其他选项,以防您需要更高级的功能或使用不同…

c# winform 重启自己 简单实现

1.情景 有些时候,系统会出问题,问题原因很难排除,但是重启问题就能修正,这时候我们就需要在一个检测到问题的时机,让系统进行一次重启。 2.代码 using System; using System.Windows.Forms;namespace 程序重启自己 …

PHP 精度计算问题(精确算法)

1. PHP 中的精度计算问题 当使用 php 中的 -*/ 计算浮点数时, 可能会遇到一些计算结果错误的问题 这个其实是计算机底层二进制无法精确表示浮点数的一个 bug, 是跨域语言的, 比如 js 中的 舍入误差 所以大部分语言都提供了用于精准计算的类库或函数库, 比如 php 中的 bc 高精…

Kaggle手写识别-卷积神经网络Top6%-代码详解

目录 1. Introduction 简介 2. Data preparation 数据准备 2.1 Load data 加载数据 2.2 Check for null and missing values 检查空值和缺失值 2.3 Normalization 规范化 2.4 Reshape 重塑 2.5 Label encoding 标签编码 2.6 Split training and valdiation set 拆分训…

国民技术 N32G45xxxx 编码器encoder

最近项目用到了一些单片机的编码器功能,有以下几种: 协议模式(串口,485-RTU,IIC等); 脉冲模式(2相,3相等); 而这两种模式的编码器分别具有不同的优劣点。 优点: 协议模式: 在经过实际测试后,发现协议模式的编码器,操作比较简单,通常只需要通过对应的通 信接口接收…