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

这篇具有很好参考价值的文章主要介绍了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方式解析,可以参考如下代码:文章来源地址https://www.toymoban.com/news/detail-822498.html

<?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);
?>

到了这里,关于XML 注入漏洞原理以及修复方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 脆弱的SSL加密算法漏洞原理以及修复方法_检测到目标服务支持ssl弱加密算法漏洞修复

    可以这样建立一个仅使用SSLv2协议及其密码算法的服务器: httpd.conf SSLProtocol -all +SSLv2 SSLCipherSuite SSLv2:+HIGH:+MEDIUM:+LOW:+EXP 3、 如何建立一个仅接受强加密请求的SSL服务器: 如下设置为仅使用最强的七种密码算法: httpd.conf SSLProtocol all SSLCipherSuite HIGH:MEDIUM 4、 如何建立一个仅接受

    2024年04月13日
    浏览(46)
  • spring(1):基于XML获取Bean对象以及各种依赖注入方式

    1.1 根据id获取 1.2 根据类型获取 1.3 根据id和类型获取 注意: 当根据类型获取bean时,要求IOC容器中指定类型的bean有且只能有一个。 例如以下XML文件,当IOC容器中一共配置了两个,根据类型获取时会抛出异常。 根据类型来获取bean时,在满足bean唯一性的前提下,其实只是看:

    2024年01月25日
    浏览(41)
  • Spring依赖注入之setter注入与构造器注入以及applicationContext.xml配置文件特殊值处理

    依赖注入之setter注入 在管理bean对象的组件的时候同时给他赋值,就是setter注入,通过setter注入,可以将某些依赖项标记为可选的,因为它们不是在构造对象时立即需要的。这种方式可以减少构造函数的参数数量,使得类的构造函数更加简洁。 注:既然是setter注入,则对象的

    2024年01月25日
    浏览(42)
  • 基于Xml方式Bean的配置-Bean的依赖注入以及·自动装配

    Bean的依赖注入方式 注入方式 配置方式 通过Bean的set方法注入 通过构造Bean的方法进行注入 其中,ref是reference的缩写形式,翻译为:涉及,参考的意思,用于引用其它Bean的id,value用于指定属性值 注入数据类型 普通数据类型:String、int、boolean,通过value属性指定 引用数据类型

    2024年02月07日
    浏览(47)
  • 【burpsuite安全练兵场-服务端10】XML外部实体注入(XXE注入)-9个实验(全)

       博主:网络安全领域狂热爱好者(承诺在CSDN永久无偿分享文章)。 殊荣:CSDN网络安全领域优质创作者,2022年双十一业务安全保卫战-某厂第一名,某厂特邀数字业务安全研究员,edusrc高白帽,vulfocus、攻防世界等平台排名100+、高校漏洞证书、cnvd原创漏洞证书等。 擅长:

    2024年02月02日
    浏览(36)
  • 【网络安全】SQL注入漏洞的修复建议

    SQL注入是Web应用程序常见的安全漏洞之一,攻击者通过恶意构造的SQL查询语句,成功在应用程序的数据库中执行任意操作,导致数据泄露、篡改或其他安全问题。 本篇技术博客将详细介绍SQL注入漏洞的修复建议,包括过滤危险字符和使用预编译语句,通过具体的代码案例帮助

    2024年02月06日
    浏览(45)
  • 【网络安全】「漏洞原理」(一)SQL 注入漏洞之概念介绍

    严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。 SQL 注入(SQL Injection) 是一种常见的网络攻击技术,它利用应用程序

    2024年02月06日
    浏览(42)
  • 【网络安全】「漏洞原理」(二)SQL 注入漏洞之理论讲解

    严正声明:本博文所讨论的技术仅用于研究学习,旨在增强读者的信息安全意识,提高信息安全防护技能,严禁用于非法活动。任何个人、团体、组织不得用于非法目的,违法犯罪必将受到法律的严厉制裁。 【点击此处即可获取282G网络安全零基础入门学习资源】 信息搜集在

    2024年02月06日
    浏览(44)
  • XML External Entity-XXE-XML实体注入

    概念 本课程介绍如何执行 XML 外部实体攻击以及如何滥用和防范该攻击。 目标 用户应该具备 XML 的基本知识 用户将了解 XML 解析器的工作原理 用户将学习如何执行 XXE 攻击以及如何防范它。 XML 实体允许定义标签,在解析 XML 文档时这些标签将被内容替换。一般来说,实体分

    2024年02月06日
    浏览(35)
  • 安卓-AndroidManifest.xml修复

    解析编译之后的AndroidManifest文件格式:http://www.520monkey.com/archives/575 案例apk jadx打开发现AndroidManifest.xml异常,无法正常显示 那么我们用apktool反编译试试 可以看到报错了,显示不能解析此xml文件,原因是预期是0x001c0001,得到的是0x01001c00,可以看到是头部出错误了 那么预期的

    2023年04月17日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包