当前位置: 首页 > news >正文

XML 注入漏洞原理以及修复方法

漏洞名称:XML注入

漏洞描述:可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具
有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。 XML是标准通用标记语言 (SGML) 的子集,非常适合Web 传输。XML 提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。发现目前一些普遍使用xml的场景中都存在一种古老的XML实体注入漏洞,这可能导致较为严重的安全问题,使得攻击者可能可以任意访问服务器以及应用所在网络的任何资源;

检测条件 :

1、 被测网站使用可扩展标记语言。

检测方法

1、 通过手工篡改网站中xml实体中的头部,加入相关的读取文件或者是链接,或者是 命 令 执 行 等 , 如 file:///path/to/file.ext ; http://url/file.ext ;php://filter/read=convert.base64-encode/resource=conf.php,类似如下代码所示:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE nsfocus-sec [
<!ELEMENT methodname ANY >
<!ENTITY xxe SYSTEM "file:///etc/passwd" >]>
<methodcall>
<methodname>&xxe;</methodname>
</methodcall>

篡改以后,如果可读取file文件或者达到植入的命令效果,则说明存在该漏洞。

修复方案

建议采取以下方式进行修复。

1、 检查所使用的底层xml解析库,默认禁止外部实体的解析。
2、 增强对系统的监控,防止此问题被人利用。
3、 使用第三方应用代码及时升级补丁
4、 对于PHP,由于simplexml_load_string函数的XML解析问题出在libxml库上,所以加载实体前可以调用这样一个函数以进行防护,参考代码: 对于XMLReader和DOM方式解析,可以参考如下代码:

<?php
// with the XMLReader functionality:
$doc = XMLReader::xml($badXml,'UTF-8',LIBXML_NONET);
// with the DOM functionality:
$dom = new DOMDocument();
$dom->loadXML($badXml,LIBXML_DTDLOAD|LIBXML_DTDATTR);
?>

http://www.lryc.cn/news/286823.html

相关文章:

  • x-cmd pkg | dasel - JSON、YAML、TOML、XML、CSV 数据的查询和修改工具
  • Oracle 19c RAC集群管理 ---------关键参数以及常用命令
  • 时限挑战——深度解析Pytest插件 pytest-timeout
  • Java入门篇:打造你的Java开发环境——从零开始配置IDEA与Eclipse
  • 文本批量处理大师:简化文本处理,释放无限生产力!
  • Go 方法
  • 深度学习与大数据在自然语言处理中的应用与进展
  • GPT4+Python近红外光谱数据分析及机器学习与深度学习建模
  • Java项目:12 Springboot的垃圾回收管理系统
  • HarmonyOS自定义弹出对话框CustomDialog并传递变量
  • React16源码: React中的renderRoot的错误处理的源码实现
  • 强化学习:MuJoCo机器人强化学习仿真入门(1)
  • 8.Gateway服务网关
  • JVM篇----第四篇
  • WPF引用halcon的HSmartWindowControlWPF控件一加上Name属性就,无缘无故运行后报错
  • Vue3组件库开发 之Button(2) 未完待续
  • k8s节点RouteCreated为false
  • Kafka(二)原理详解
  • Flutter 屏幕适配之相对尺寸适配
  • 在线预约小程序源码系统:适合任何行业的在线预约,快捷方便,省时省心 带完整的搭建教程
  • AI部署开发指南:用vs2019编译OnnxRuntime-v1.16.2
  • 【强化学习】QAC、A2C、A3C学习笔记
  • android usb2.0 协议基础(2)
  • C语言快速排序(非递归)图文详解
  • Java面试题136-150
  • 使用trace工具分析Mysql如何选择索引
  • 微信小程序(十二)在线图标与字体的获取与引入
  • 分类预测 | Matlab实现LSTM-Attention-Adaboost基于长短期记忆网络融合注意力机制的Adaboost数据分类预测/故障识别
  • java web mvc-04-Apache Wicket
  • 暴力破解常见的服务器