Springblade框架(又名Bladex)渗透测试漏洞利用总结

admin 2024年7月4日23:05:45评论7 views字数 1772阅读5分54秒阅读模式

Springblade框架(又名Bladex)渗透测试漏洞利用总结

一、前言

Springblade框架(又称为BladeX)是基于spring微服务二次开发的框架,主要应用于java后端的开发中。之前在公众号文章中分析过框架相关漏洞,这里就总结渗透测试遇到该框架的利用方法。

二、资产收集

如何查询使用该框架的网站呢?

bladex会使用自带的/blade-auth/oauth/token接口进行登录,因此可以根据接口这类关键字搜索资产

Springblade框架(又名Bladex)渗透测试漏洞利用总结

或者根据下面bladex未授权请求返回的信息:缺失令牌,鉴权失败 来查询

Springblade框架(又名Bladex)渗透测试漏洞利用总结

Springblade框架(又名Bladex)渗透测试漏洞利用总结

此外还能通过关键字Failed to handle request来查询可能开放在公网上面的blade-gateway服务

Springblade框架(又名Bladex)渗透测试漏洞利用总结

Springblade框架(又名Bladex)渗透测试漏洞利用总结

三、不同模块的利用方法

下面我根据Springblade的不同模块,分别分析利用的方法

Springblade框架(又名Bladex)渗透测试漏洞利用总结

框架主要是由GatewayApplication分发请求到不同模块上,因此渗透测试时直接访问前端页面抓包即可,因为前端是直接和GatewayApplication对接的

Blade-gateway

对应GateWayApplication模块

直接在网页中请求端口会显示如下语句:

Failed to handle request

Springblade框架(又名Bladex)渗透测试漏洞利用总结

GateWayApplication基本就是基于spring-cloud-gateway开发的,因此也就继承了Spring Cloud Gateway的RCE漏洞

攻击者可以通过创建路由,造成命令执行

这里post请求

/actuator/gateway/routes/hacktest1

返回包显示201 created则创建路由成功

Springblade框架(又名Bladex)渗透测试漏洞利用总结

创建恶意路由如下

Springblade框架(又名Bladex)渗透测试漏洞利用总结

请求刷新路由

/actuator/gateway/refesh

Springblade框架(又名Bladex)渗透测试漏洞利用总结

之后成功执行命令,在返回包中显示whoami执行结果

Springblade框架(又名Bladex)渗透测试漏洞利用总结

这个漏洞出现在bladex的3.1.0版本之前,往后的版本就被修复了

Blade-auth

对应AuthApplication模块

此处涉及到JWT Token验证身份漏洞,默认的jwt加密密文默认写死,值如下:

bladexisapowerfulmicroservicearchitectureupgradedandoptimizedfromacommercialproject

Springblade框架(又名Bladex)渗透测试漏洞利用总结

对应的是jwt加密时的密钥

Springblade框架(又名Bladex)渗透测试漏洞利用总结

这里在payload中写入身份验证参数,填入user_idname参数(参数只要有值就行),role_name指定为administrator即可,左边就生成了伪造的jwt token

Springblade框架(又名Bladex)渗透测试漏洞利用总结
添加如下验证请求头

Blade-auth: bearer 伪造的jwt token

访问下面接口查询所有用户信息

/blade-user/user-list

接口有对请求用户身份的验证

Springblade框架(又名Bladex)渗透测试漏洞利用总结

判断当前role_name是否为administrator,由于之前伪造jwt时候添加了administrator身份字段,此处可以直接绕过

Springblade框架(又名Bladex)渗透测试漏洞利用总结

请求获取所有用户的信息,包含用户名、手机、密码等

Springblade框架(又名Bladex)渗透测试漏洞利用总结

该接口请求的是blade_user

Springblade框架(又名Bladex)渗透测试漏洞利用总结

Blade-log

对应LogApplication模块

此处查询出所有登录成功、失败的日志

Springblade框架(又名Bladex)渗透测试漏洞利用总结

对应查询的blade_log_api

Springblade框架(又名Bladex)渗透测试漏洞利用总结

请求该接口,响应中的params参数中会记录接口请求的参数,因此可以直接拿到登录接口中使用

Springblade框架(又名Bladex)渗透测试漏洞利用总结

请求登录接口传参登录成功

Springblade框架(又名Bladex)渗透测试漏洞利用总结

Blade-resource

对应ResourceApplication模块

结合JWT token伪造来请求获取oss配置信息,一般是minio

Springblade框架(又名Bladex)渗透测试漏洞利用总结

查询分页接口,获取blade_oss表中的oss配置信息

Springblade框架(又名Bladex)渗透测试漏洞利用总结

请求获取数据如下:

Springblade框架(又名Bladex)渗透测试漏洞利用总结

根据accessKey和secretKey登录minio等OSS,可以进一步获取敏感信息和权限等

Springblade框架(又名Bladex)渗透测试漏洞利用总结

Blade-develop

对应DevelopApplication模块

此处接口查询数据库中保存的数据库信息

Springblade框架(又名Bladex)渗透测试漏洞利用总结

对应查询的表为blade_datasource

Springblade框架(又名Bladex)渗透测试漏洞利用总结

泄露数据库账号密码

Springblade框架(又名Bladex)渗透测试漏洞利用总结

SQL注入

在Mapper中导出用户信息excel表格时,想要根据当前页面筛选条件来导出结果,就会传参当前的SQL条件

代码中使用了如下语句接收用户的SQL

${ew.customSqlSegment}

Springblade框架(又名Bladex)渗透测试漏洞利用总结

对应接口如下

/blade-user/export-user

Springblade框架(又名Bladex)渗透测试漏洞利用总结

在Blade-auth伪造身份的前提下可以拼接报错查询,获取数据库字段名称

Springblade框架(又名Bladex)渗透测试漏洞利用总结

原文始发于微信公众号(HackingWiki漏洞感知):Springblade框架(又名Bladex)渗透测试漏洞利用总结

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月4日23:05:45
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Springblade框架(又名Bladex)渗透测试漏洞利用总结https://cn-sec.com/archives/2800298.html

发表评论

匿名网友 填写信息