实战 | 从SpringBoot 未授权访问到Getshell

admin 2023年7月7日14:44:16评论166 views字数 2082阅读6分56秒阅读模式

点击蓝字 关注我们

实战 | 从SpringBoot 未授权访问到Getshell

免责声明

本文发布的工具和脚本,仅用作测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断。

如果任何单位或个人认为该项目的脚本可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明,我们将在收到认证文件后删除相关内容。

文中所涉及的技术、思路及工具等相关知识仅供安全为目的的学习使用,任何人不得将其应用于非法用途及盈利等目的,间接使用文章中的任何工具、思路及技术,我方对于由此引起的法律后果概不负责。

添加星标不迷路

由于公众号推送规则改变,微信头条公众号信息会被折叠,为了避免错过公众号推送,请大家动动手指设置“星标”,设置之后就可以和从前一样收到推送啦

实战 | 从SpringBoot 未授权访问到Getshell

一、Spring Boot

Spring 是 JAVA web 里非常常见的组件了, 自然也是研究的热门, 好用的漏洞主要是 Spring Boot 相关的漏洞。

Spring Boot 基本上是 Spring 框架的扩展。Actuator 是 Springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator ,开发者可以很方便地对应用系统的某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点( endpoints )来获取应用系统中的监控信息。

测绘指纹

FOFA

app="vmware-SpringBoot-Framework"
body=" Whitelabel Error Page"

图标

在网站标题中会有一个树叶的图标

实战 | 从SpringBoot 未授权访问到Getshell

实战 | 从SpringBoot 未授权访问到Getshell

默认页面:

Whitelabel Error Page页面

实战 | 从SpringBoot 未授权访问到Getshell

swagger接口页面/swagger-ui.html:

实战 | 从SpringBoot 未授权访问到Getshell

1.关键字搜索并访问接口

在图虎上利用关键词 body="Whitelabel Error Page" 找到利用springboot框架搭建的网站 尝试未授权访问 添加后缀/actuator 发现成功访问接口

实战 | 从SpringBoot 未授权访问到Getshell

2.查看接口配置信息

进入/actuator/env 查看相关配置信息(/actuator/env 查看全部环境属性,可以查询到一些敏感信息 例如redis的ip和端口 数据库的账号和密码 但大部分密码都存在加密) 查找关键词 password 发现 存在数据库密码 但进行加密 查看不了

实战 | 从SpringBoot 未授权访问到Getshell

3.查看其他接口

再次查看其他接口 发现/actuator/heapdump没有禁止访问 (/heapdump Heapdump,即堆转储文件,是一个Java进程在某个时间点上的内存快照。HeapDump记录了JVM中堆内存运行的情况,保存了Java对象、类以及线程栈以及本地变量等信息,最重要的是里面可能存有数据库密码信息。) 访问 自动下载heapdump文件

实战 | 从SpringBoot 未授权访问到Getshell

实战 | 从SpringBoot 未授权访问到Getshell

4.分析heapdump文件

利用MemoryAnalyzer工具打开heapdump分析。

利用查找语句

select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))

实战 | 从SpringBoot 未授权访问到Getshell

然后再次返回到 /actuator/env 查看数据库存在的端口 查看到是 3501端口

实战 | 从SpringBoot 未授权访问到Getshell

然后利在cmd命令下

mysql -h xxxxx -P xxxx -u root -p

连接数据库

实战 | 从SpringBoot 未授权访问到Getshell

连接成功

5.翻找数据库

在数据库中找到 管理员登录的账号和密码

实战 | 从SpringBoot 未授权访问到Getshell

然后利用御剑查找网站后台登录接口

实战 | 从SpringBoot 未授权访问到Getshell

实战 | 从SpringBoot 未授权访问到Getshell

登录成功

6.多次尝试后成功上传getshell

实战 | 从SpringBoot 未授权访问到Getshell

发现ueditor编辑器组件,测试文件上传发现无法上传jsp脚本文件,但是可以通过ueditor的在线文件管理功能和已有的一些路径信息,可以确认网站的web绝对路径

E:/xxxx/project/xxxxx/

实战 | 从SpringBoot 未授权访问到Getshell

实战 | 从SpringBoot 未授权访问到Getshell

结合前面拿到的mysql权限,可以尝试直接往web目录中写入webshell

先查看mysql读写权限,可以看到secure_file_priv= 即没有对读写权限有所限制

实战 | 从SpringBoot 未授权访问到Getshell

直接使用select 'XXX' into outfile 'web服务根路径';尝试写入webshell

首先尝试写入了一个蚁剑jsp码到ueditor的绝对路径中

实战 | 从SpringBoot 未授权访问到Getshell

访问发现上传成功了,但是没有解析

实战 | 从SpringBoot 未授权访问到Getshell

后面分析发现是jsp码的换行符引起的,换一个哥斯拉的jsp码试试

实战 | 从SpringBoot 未授权访问到Getshell

访问发现正常解析并且连接成功

实战 | 从SpringBoot 未授权访问到Getshell

直接就是system权限

实战 | 从SpringBoot 未授权访问到Getshell



欢迎关注SecHub网络安全社区,SecHub网络安全社区目前邀请式注册,邀请码获取见公众号菜单【邀请码】

#


企业简介   


赛克艾威 - 专注政企安全服务


       北京赛克艾威科技有限公司(简称:赛克艾威),成立于2016年9月,具有中国网络安全审查技术与认证中心安全风险评估服务三级资质CCRC,信息安全保障人员资质CISAW(安全评估专家级)。


安全评估|渗透测试|漏洞扫描|安全巡检

代码审计|钓鱼演练|应急响应|安全运维

重大时刻安保|企业安全培训

实战 | 从SpringBoot 未授权访问到Getshell

联系方式

电话|010-86460828 

官网|https://sechub.com.cn

实战 | 从SpringBoot 未授权访问到Getshell

关注我们

实战 | 从SpringBoot 未授权访问到Getshell
实战 | 从SpringBoot 未授权访问到Getshell
实战 | 从SpringBoot 未授权访问到Getshell

公众号:sechub安全

哔哩号:SecHub官方账号


原文始发于微信公众号(SecHub网络安全社区):实战 | 从SpringBoot 未授权访问到Getshell

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月7日14:44:16
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   实战 | 从SpringBoot 未授权访问到Getshellhttps://cn-sec.com/archives/1858877.html

发表评论

匿名网友 填写信息