首页 > 其他分享 >XML实体注入漏洞

XML实体注入漏洞

时间:2024-06-12 15:56:01浏览次数:8  
标签:XML xmlbeans cellStyle 实体 漏洞 THIN apache org

漏洞等级:高危

漏洞类型:XML实体注入

漏洞描述:XXE漏洞全称XML Extemal Endy niecionlxm以外部实体注入漏洞,X在漏洞发生在应用程序经析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件,造成文件读取、命令执行、内网端口扫描、攻击内网网站、发起d0s攻击等危害。xxe漏洞触发的点往往是可以上传xm文件的位置,没有对上传的xm,文件进行过滤,导致可上传恶意xm文件。

具体修复方案:

1.需要将poi  jar包升级到4.1.2版本,我当前使用的版本是3.16。

<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>4.1.2</version>
   <exclusions>
      <exclusion>
         <groupId>org.apache.xmlbeans</groupId>
         <artifactId>xmlbeans</artifactId>
      </exclusion>
   </exclusions>
</dependency>

 

2.升级完jar包后代码中引入的需要相关方法及属性就会报错,这时候需要我们手动调整这些错误。

以下是3.6及以下的版本显示:

cellStyle.setAlignment(HSSFCellStyle.ALIGN_CENTER);
cellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
cellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
cellStyle.setBottomBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
cellStyle.setLeftBorderColor(HSSFColor.BLACK.index);
cellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);

更高版本是这样的:

cellStyle.setAlignment(HorizontalAlignment.CENTER);
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);
cellStyle.setBorderBottom(BorderStyle.THIN);
cellStyle.setBottomBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
cellStyle.setBorderLeft(BorderStyle.THIN);
cellStyle.setLeftBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
cellStyle.setBorderRight(BorderStyle.THIN);
cellStyle.setRightBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());
cellStyle.setBorderTop(BorderStyle.THIN);
cellStyle.setTopBorderColor(HSSFColor.HSSFColorPredefined.BLACK.getIndex());

 

3.调整完成后可以启动成功,但是上传文件依然会报错,错误信息如下:

 Handler processing failed; nested exception is java.lang.NoSuchMethodError: org.apache.xmlbeans.XmlOptions.setEntityExpansionLimit(I)Lorg/apache/xmlbeans/XmlOptions;

这时候就需要我们手动排除poi里的xmbeans,重新 引入xmbeans,注意:xmlbeans只能引入一个,不要存在其他版本的xmlbeans,不然依然会报错。

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi</artifactId>
            <version>4.1.2</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.xmlbeans</groupId>
                    <artifactId>xmlbeans</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
<!-- xmlbeans -->
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>3.1.0</version>
</dependency>

注意:不是pom.xml只引入一个版本就行了,是引用的Maven仓库中只能存在一个版本的xmlbeans。

 

标签:XML,xmlbeans,cellStyle,实体,漏洞,THIN,apache,org
From: https://www.cnblogs.com/lemperor/p/18244033

相关文章

  • Xml25
    一、概念ExtensibleMarkupLanguage可扩展标记语言可扩展:标签都是自定义的。<user><student>功能存储数据 1.配置文件 2.在网络中传输xml与html的区别 1.xml标签都是自定义的,html标签是预定义。 2.xm......
  • dark1130_theme.xml sourceinsight 主题
    <ThemeList> <Theme Name="dark1130" > <DisplayColors> <ItemName="DefaultText"Color="#e0e0e0"/> <ItemName="WindowBackground"Color="#001515"/> <ItemName......
  • Mybatis 实体类中字段使用 ZonedDateTime,但达梦数据库使用无时区的 Timestamp 时发生
    背景开发的应用运行在东八区,无国际化需求,也无时区相关要求。后端使用SpringBoot和Mybatis,数据库使用达梦数据库,数据库中存储时间的类型为Timestamp(不存储时区信息)其中实体如下publicclassStudent{Stringid;ZonedDateTimeentryTime;}前端和后端约定时......
  • 爬虫 | xpath + lxml 库 解析爬取网页
    lxml库是用来解析XML和HTML网页内容的Xpath库则是用来查询数据(XPath表达式是一种在XML文档中查找信息的语言,它同样适用于HTML文档)简单示例:#先pipinstalllxmlimportrequestsfromlxmlimportetree#etree主要是用来解析和操作XML/HTML文档#步骤3:获取......
  • 【漏洞挖掘】——69、命令执行攻防原理
    命令执行当应用需要调用一些外部程序去处理内容时,就会用到一些执行系统命令的函数,例如:PHP中的system,exec,shell_exec等,当用户可以控制命令执行函数中的参数时可注入恶意系统命令到正常命令中从而造成命令执行攻击漏洞原理在操作系统中"&、|、||"都可以作为命令连接符使用,用......
  • 巧妙使用mapstruct来解决数据库entiy到实体dto的映射关系
    1.引入mapstruct<dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct</artifactId></dependency><dependency><groupId>org.mapstruct</groupId><artifactId>mapstruct-p......
  • pgAdmin未授权命令执行漏洞(CVE-2022-4223)
    ​https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v5.7/source/pgadmin4-5.7.tar.gz 下载pgadmin5.7的源码首先从代码层面进行分析接口 /validate_binary_path​最后调用了 subprocess.getoutput(​来执行了命令这一部分代码是对传入的路径进行检测,如果是在linu......
  • ER实体关系图与数据库模型图绘制
    属性分析1、用户表(user)、用户钱包表(user_wallet)(与user是1对1关系)、用户钱包交易日志表(user_wallet_log)(与user是1对多关系)。user:用户表通常包含用户的基本信息,例如用户ID(主键)、用户名、密码(通常加密存储)、邮箱、手机号、创建时间等。属性设计:user_id:用户ID(主键,......
  • 描述常见的Java安全漏洞和防范措施
    常见的Java安全漏洞及其防范措施可以归纳如下:一、常见的Java安全漏洞跨站脚本攻击(XSS)漏洞描述:攻击者通过在网页中插入恶意脚本来获取用户的敏感信息或执行恶意操作。防范措施:输入验证和过滤:对用户输入的数据进行严格验证和过滤,剔除恶意脚本。输出转义:在将用户数据输出......
  • SSRF 漏洞检测:防范未然的关键
    服务器端请求伪造(SSRF)是一种隐蔽且危险的安全漏洞,它允许攻击者欺骗服务器向其他服务器发送请求,从而访问或控制未经授权的系统。及时发现并修复SSRF漏洞对于保障系统安全至关重要。本文将介绍SSRF漏洞的检测方法,帮助您有效防范SSRF漏洞。SSRF漏洞的检测方法目前,检测......