Closed threedr3am closed 3 years ago
该接口用户derby数据库运维查询,由于derby数据库无法通过外部登陆(内存型数据库,只能通过程序进入),因此必须有一个接口能够查询数据做运维。 可以考虑优化一下 加一个鉴权,只有管理员可以访问。
是的,强烈建议加上鉴权。因为,管理台console使用了一套账号鉴权体系,这个设计即表明了就算内网访问,也是需要鉴权的,并且有账号之分。而derby这个运维查询接口,同样是内网访问,但默认情况下却无需认证、鉴权,而且读到数据库的账号密码信息后,反过来可以登进管理台。
@KomachiSion
------------------------------------------------------------------------(english)
Hello, I am threedr3am. I found a nacos interface. When nacos is deployed in the default configuration, it can be accessed without authentication and execute arbitrary SQL queries, which leads to the disclosure of sensitive information.
Source address: https://github.com/alibaba/nacos
The audit code can find that there is an interface in the config server, and the SQL statement can be executed without any authentication, and all data can be leaked
The vulnerability lies in the module: com.alibaba.nacos.config.server.controller.ConfigOpsController in nacos-config
As you can see, the code only limits the need to include select, so any select query statement can be executed
Through the test, you can use the following statement to query all database information
The most important thing is that the interface does not require any authentication and can be accessed directly
After reading the account number and the password after the hash, we can analyze it through the open source program source code because of the salt generation algorithm used when nacos creates the account.
Look at the source code com.alibaba.nacos.console.security.nacos.NacosAuthConfig
As you can see, they are all default and users cannot modify them
Therefore, refer to the tool class com.alibaba.nacos.console.utils.PasswordEncoderUtil
In this way, the password represented by the hash value can be quickly blasted locally
Deployment process:
poc:
All versions
------------------------------------------------------------------------(中文)
你好,我是threedr3am,我发现了一个nacos的接口,在默认配置部署nacos的情况下,它无需认证即可被访问,并执行任意sql查询,导致敏感信息泄露。
一、漏洞详情
源码地址:https://github.com/alibaba/nacos
审计代码可以发现,config server中有个接口,没有做任何的鉴权,即可执行sql语句,可以泄漏全部数据
漏洞点在于module:nacos-config的com.alibaba.nacos.config.server.controller.ConfigOpsController中
可以看到,代码只限制了需要包含select,因此,导致可以执行任意的select查询语句
通过测试,可以用以下的语句查询到所有数据库信息
最重要的是,该接口不需要任何认证,直接就可以访问
通过读取到账号以及hash之后的密码后,因为nacos创建账号时使用的salt生成算法我们通过开源的程序源码已经能分析出来
看源码com.alibaba.nacos.console.security.nacos.NacosAuthConfig
可以看到,都是默认的,使用者没法做修改
因此,参考工具类com.alibaba.nacos.console.utils.PasswordEncoderUtil
通过这样的方式,可以在本地快速的爆破出hash值表示的密码
二、漏洞复现
部署流程:
poc:
三、影响范围
所有版本