记一次渗透一波三折找到的springboot利用

记一次渗透一波三折找到的springboot利用

0x01 前言

​ 在渗透某企业的时候(好久之前的了,写个总结),拐了七八个弯,终于在这个企业的某c段找到了个springboot未授权访问,真是拐了七八个弯,先从某管理系统入手,扫目录,弱密码,注入,还发现了fck文件编辑器,但是都没有用,最后还是突然发现该企业真实ip的特点->除了cdn的ip大多数都在一个ipc段,然后在某个ip找到了springboot的页面

0x01 springboot利用

​ 首先得找到springboot的whitepage页,还有个特点是有一个小绿叶的图标,存在这个可能还有Swagger UI,这个后面会说到。

image-20210915221517932

image-20210915222544193

​ 然后就是springboot的常用的接口泄露路径,参考LandGrey/SpringBootVulExploit: SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全评估 check list (github.com)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/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

0x02 实战

​ 于是我直接扫描了以上目录,发现接口暴露的还挺多,就有上面所说的swigger ui

image-20210915223723575

swiggerui的界面如下,这上面都是一些api接口,利用这些接口可以尝试查看敏感信息,注入,文件上传等操作(不过我找到的这个站的swiggerui都是些查询信息的接口,只给测试数据,不知道具体参数也无法获得敏感信息)

image-20210915224128906

​ 这些接口的利用方式如LandGrey/SpringBootVulExploit: SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全评估 check list (github.com)

这里根据这个站,我也尝试了很多方式,总结一下利用的重要接口

1./env/actuator/env

正常访问(get)会直接泄露环境变量、内网地址、配置中的用户名等信息;当程序员的属性名命名不规范,例如 password 写成 psasword、pwd 时,会泄露密码明文(不过我遇到的这个站就是***号显示密码)

2.能POST请求/env,即可在/env中添加属性

3.能POST请求/refresh/actuator/refresh刷新属性,很多RCE漏洞都得靠这个,目的是为了刷新/env的配置。

以上这几个是很多漏洞的基本要求,做不到可能就只能看看信息泄露,和**/trace**的信息利用了,很遗憾,我这个站这些操作都进行不了,如下访问/refresh提示404

image-20210915225502251

0x03 实战利用

​ 既然不存在RCE漏洞利用的可能,就只能转向信息泄露了,我这个站访问/heapdump,发现可以下载到内存文件

image-20210915225745297

根据github上的教程,使用Eclipse Memory Analyzer(java的内存分析工具)进行分析内存,方法:先打开要分析的文件,然后点击OQL按钮,输入

1
2
select * from org.springframework.web.context.support.StandardServletEnvironment
或者select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))

image-20210915230313469

点击红色感叹号,然后查看查询出来的键值就是./env中的带***的密码了

image-20210915230726784

这波成功get到一堆重要密码,点到为止


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!,本博客仅用于交流学习,由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。 文章作者拥有对此站文章的修改和解释权。如欲转载此站文章,需取得作者同意,且必须保证此文章的完整性,包括版权声明等全部内容。未经文章作者允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。若造成严重后果,本人将依法追究法律责任。 阅读本站文章则默认遵守此规则。