阿里巴巴开源Nacos漏洞大揭秘:从隐患排查到完美修复

摘要:Nacos 是阿里巴巴开源的服务发现与配置管理平台,广泛应用于云原生架构中。然而,其存在多个安全漏洞,包括未授权访问、伪造 token、Hessian 反序列化漏洞、 Derby 数据库远程代码执行、Heapdump 捕获 Java 虚拟机(JVM)和Nacos 默认 server.Identity漏洞。这些漏洞可能导致数据泄露、业务中断和声誉受损。文章提出了升级版本、加固配置文件、限制网络访问、完善身份认证和定期审计等解决方案,以保障 Nacos 的安全性和稳定性。

目录

1.Nacos:强大开源项目暗藏危机

2. Nacos 的常见漏洞类型

2.1 未授权访问漏洞

2.2 伪造 token 漏洞

2.3 Hessian 反序列化漏洞

2.4 用Derby 数据库远程代码执行漏洞

2.5 Heapdump 捕获 Java 虚拟机(JVM)

2.6 Nacos 默认 server.Identity漏洞

3.漏者洞对企业的严重影响

4.全方位解决方案

4.1 升级到最新版本

5.Linux服务器上配置NACOS 仅允许内网访问

一、修改NACOS配置文件

二、配置防火墙规则

方案1:iptables(推荐)

方案2:firewalld

三、云平台安全组(如阿里云ECS)

四、验证配置

五、注意事项

6. 别配置文件加固与代码案例

6.1 安全策略设置

6.2 三个经典代码示例及解释

7.总结与展望


 1.Nacos:强大开源项目暗藏危机

在当今云原生应用的蓬勃发展的时代,Nacos 作为阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,无疑占据着举足轻重的地位。它就像是微服务架构中的 “智能管家”,为众多应用解决了服务发现与配置管理的难题 ,让服务之间的沟通协作更加顺畅,使得开发者能够更专注于业务逻辑的实现。凭借其简单易用的特性集,Nacos 帮助开发者快速实现动态服务发现、服务配置、服务元数据及流量管理,极大地提升了开发效率和应用的可维护性。

然而,就如同再坚固的堡垒也可能存在薄弱之处,Nacos 也未能幸免。在其广泛应用的背后,安全漏洞的隐患正悄然浮现,犹如隐藏在暗处的 “定时炸弹”,给使用者带来了潜在的风险。这些漏洞一旦被恶意攻击者利用,后果不堪设想可能导致数据泄露、服务中断等严重问题,给企业和用户造成巨大的损失。因此,深入了解 Nacos 存在的漏洞并寻求有效的解决方案,已经成为当务之急,这不仅关系到单个应用的安全稳定运行,更关乎整个云原生生态系统的健康发展。

2. Nacos 的常见漏洞类型

2.1 未授权访问漏洞

在 Nacos 的安全漏洞中,未授权访问漏洞是一个较为突出的问题。该漏洞的产生原理与 Nacos 的认证机制密切相关。在 Nacos 的 com.alibaba.nacos.core.auth.AuthFilter#doFilter 方法中,处理服务间通信时存在默认鉴权白名单。当代码解析请求时,会判断 User-Agent 值 ,若是以 “Nacos-Server” 字符串开头,便会跳过后续权限校验流程。这就好比一扇本应紧闭的安全大门,却因为一个简单的身份标识判断失误,而向非法闯入者敞开了缝隙。

攻击者利用这个漏洞,仅需发送特殊构造的数据,就能绕过身份认证,如同获得了一把万能钥匙,肆意调用任何接口。这可不是危言耸听,攻击者通过此漏洞,能够获取内部数据,甚至添加任意用户。一旦得逞,企业的敏感信息,如用户名和密码等,都将暴露在危险之中,就像个人隐私毫无遮拦地展现在陌生人面前。此漏洞影响范围广泛,Nacos <= 2.0.0-ALPHA.1 版本均受其威胁 ,许多早期版本的用户可能在不知不觉中就面临着巨大安全风险。

2.2 伪造 token 漏洞

Nacos 的伪造 token 漏洞同样不容忽视,它的出现源于默认配置中的一个严重缺陷。在 Nacos 中,token.secret.key 值在默认情况下是固定死的,就像一把所有人都知道密码的锁,失去了应有的安全防护作用。这个固定的默认值位于 conf 下的 application.properties 文件中,默认的 key 为 “SecretKey012345678901234567890123456789012345678901234567890123456789” ,如此简单且定的密钥,为攻击者伪造 token 提供了可乘之机。

伪造 Token 漏洞利用代码

java

String secretKey = "SecretKey012345678901234567890123456789012345678901234567890123456789";
long currentTimeMillis = System.currentTimeMillis() + 3600000; // 设置未来时间戳
String token = JWT.create().withClaim("exp", currentTimeMillis).sign(secretKey);

解释:这段代码利用了 Nacos 默认的固定 token.secret.key,通过设置未来时间戳并使用 JWT 工具生成伪造的 Token,攻击者可利用此 Token 绕过身份验证。

攻击者利固用这个漏洞进行攻击的步骤并不复杂。首先,他们会选取一个时间戳,这个时间戳需要比当前系统时间更晚,就像设置了一个未来的 “定时攻击点”。接着,利用JSON Web Tokens - jwt.io网站进行 token 的伪造 。在这个网站上,攻击者填入固定的默认 key,修改相关参数,轻松生成伪造的 token。最后,使用伪造的 token 进行登录,原本需要严格身份验证的系统,就这样被攻击者轻易突破,他们可以获取到敏感信息,甚至进一步控制整个系统。受影响的版本范围为 0.1.0 <= Nacos <= 2.2.0 ,大量的 Nacos 用户都可能因为这个漏洞而陷入安危机。

2.3 Hessian 反序列化漏洞

Hessian 反序列化漏洞是 Nacos 安全漏洞中的又一 “重灾区”,它主要出现在 Nacos 处理某些基于 Jraft 的请求过程中。Nacos 默认的 7848 端口负责处理集群模式下 raft 协议的通信,该端口的服务在处理部分 jraft 请求时,采用 Hessian 进行反序列化 。然而,令人担忧的是,这里的反序列化过程并未设置有效的限制,就像一个没有安检的通道,让危险物品得以顺利通过,从而导致应用存在远程代码执行漏洞。

Hessian 反序列化漏洞利用代码

java

URL url = new URL("http://nacos-server:7848/raft/node");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("POST");
connection.getOutputStream().write(constructHessianPayload());

解释:这段代码通过向 Nacos 的 7848 端口发送构造的 Hessian 反序列化数据,利用未限制的反序列化过程,实现远程代码执行。

对于不同版本的 Nacos,受此漏洞影响的情况也有所不同。在 1.4.0 <= Nacos < 1.4.6 版本中,若使用 cluster 集群模式运行,便会受到该漏洞的威胁;而在 2.0.0 <= Nacos < 2.2.3 版本中,无论采用单机还是集群模式运行,都难以幸免。攻击者利用这个漏洞,能够实现远程代码执行,就像在系统内部埋下了一颗随时可能爆炸的 “炸弹”,可以对系统进行任意操作,获取关键数据,甚至破坏整个系统的稳定性。目前,已经有一些漏洞利用工具,如https://github.com/c0olw/NacosRce/releases ,可以于探测该漏洞,这也进一步凸显了防范此漏洞的紧迫性。

2.4 用Derby 数据库远程代码执行漏洞

Derby 数据库远程代码执行漏洞也是 Nacos 安全隐患的重要组成部分。该漏洞的成因是 Alibaba Nacos 部分版本中 derby 数据库默认可以未授权访问 ,这就如同一个没有设防的数据库仓库,任由攻击者随意进出。恶意攻击者利用这一漏洞,可以未授权执行 SQL 语句,就像获得了数据库的最高权限,能够随心所欲地操作数据。更严重的是,攻击者可以通过执行 SQL 语句,远程加载恶意构造的 jar 包 ,最终实现任意代码执行,让整个系统完全处于攻击者的掌控之下。

Derby 数据库远程代码执行漏洞利用代码

java

String sql = "CREATE TRIGGER myTrigger AFTER INSERT ON myTable FOR EACH ROW EXECUTE PROCEDURE myProcedure()";
PreparedStatement statement = connection.prepareStatement(sql);
statement.execute();

解释:这段代码利用 Derby 数据库默认未授权访问的漏洞,通过执行 SQL 语句创建触发器,进而加载恶意 JAR 包,实现远程代码执行。

受此漏洞影响的版本为 Nacos <= 2.4.0-BETA ,在这些版本中,用户的系统就像一座没有城墙保护的城市,极易受到攻击。一旦攻击成功利用该漏洞,企业的数据安全将遭受重创,可能导致数据泄露、系统瘫痪等严重后果,给企业带来巨大的经济损失和声誉损害。

2.5 Heapdump 捕获 Java 虚拟机(JVM)

Heapdump 是一种用于捕获 Java 虚拟机(JVM)内存快照的工具,通常用于调试和分析内存问题。然而,在某些情况下,heapdump 文件可能会泄露敏感信息,如明文密码、访问密钥等,从而导致安全漏洞,例如:

https://域名/nacos/actuator/heapdump

 

 遇到这个问题建议参考下面:5.Linux服务器上配置Nacos仅允许内网访问。

2.6 Nacos 默认 server.Identity漏洞

漏洞描述:Nacos 是阿里巴巴推出来的一个新开源项目,是一个更易于构连云原生应用的动态服务发现。配置管理和服务管理平台。致力于帮助发现、配置和管理徽服务。Nacos提供了一组简单易用的特性条,可以快速实现动态服务发现、服务配置、服务元数据及流堡管理。Nacos 提供多种鉴权方式,使用配置文件缺省参效security可未授权登陆到 Nacos 应用。例如:https://域名/nacos

解决方案:

修改缺省配置:该漏洞主要以撞击 Nacos的缺省配置进行未授权访问,以此来绕过鉴权。修改配置文件

(src/nain/resources/application properties)中下列属性以修复此漏洞。

nacos.core.auth.server.identity.key

nacos.core.auth.server. identity.vaLue

3.漏者洞对企业的严重影响

Nacos 存在的这些漏洞,犹如一颗颗隐藏在暗处的 “定时炸弹”,一旦被触发,对企业的影响将是多方面且极其严重的。

在数据安全方面,未授权访问漏洞和伪造 token 漏洞可能导致企业核心数据泄露。以某电商企业为例,其使用 Nacos 进行服务配置管理,由于未及时修复未授权访问漏洞,被攻者利用,大量用户信息、订单数据以及商品库存信息等被窃取。这些数据不仅涉及用户隐私,更是企业运营的关键信息,一旦泄露,企业可能面临用户信任危机,还可能因违反数据保护法规而遭受巨额罚款,就像一座大厦的根基被撼动,企业的稳定发展受到严重威胁。

业务中断也击是常见的后果之一。Hessian 反序列化漏洞和 Derby 数据库远程代码执行漏洞可能使系统遭受攻击,导致服务无法正常运行。一家金融科技公司,因 Nacos 的 Hessian 反序列化漏洞被攻击,其核心交易系统陷入瘫痪,交易无法进行,客户无法正常登录和操作账户。在业务中断的这段时间里,每一秒都意味着巨大的经济损失,不仅交易手续费收入化为泡影,还可能因无法按时完成交易而面临违约赔偿,对企业的财务状况造成沉重打击。

企业声誉受损同样不容忽视。当企业因 Nacos 漏洞遭受攻击并导致数据泄露或业务中断时,负面消息会迅速在网络上传播,引发公众关注。消费者可能会对企业的安全性产生质疑,从而转向竞争对手的产品或服务。以某知名互联网企业为例,曾因 Nacos 漏洞导致用户数据泄露,事件曝光后,该企业的股价大幅下跌,市场份额也出现明显下滑,多年积累的品牌形象瞬间崩塌,后续花费大量的人力、物力和时间才逐渐挽回部分声誉,但损失已难以完全弥补。

4.全方位解决方案

4.1 升级到最新版本

升级到最新版本是解决 Nacos 漏洞的重要举措。获取最新版本的 Nacos,可以前往其官方 GitHub 仓库(https://github.com/alibaba/nacos/releases ),这里会及时发布 Nacos 的各个版本,包括修复了众多漏洞的最新版本。在下载时,要注意选择适合自己系统环境的版本,如 ZIP 包适用于 Windows 系统,TAR 包则更常用于 Linux 系统。

以将 Nacos 单机从 1.3.0 升级到 2.3.0 为例,升级步骤如下:首先,去 Nacos 的官方 GitHub 仓库下载 2.3.0 版本的安装包;在进行任何升级操作之前,务必备份现有 Nacos 的数据,尤其是 nacos/conf 目录下的配置信息,可通过将整个 Nacos 目录复制到另一个位置来完成备份;在运行 Nacos 的服务器上,通过 “sh shutdown.sh” 命令停止服务,确保 Nacos 已经完全停止后,再进行下一步操作;删除旧的 Nacos 1.3.0 版本,并将刚刚下载的 2.3.0 版本解压到相应的目录;如果你使用了 MySQL 数据库进行数据存储,忘了查看新的 Nacos 版本是否有数据库结构变化,通常,2.x 版本相对于 1.x 会有部分结构调整,所以需要在升级前运行对应的 SQL 脚本,可以在 nacos/distribution/conf/nacos-mysql.sql 目录中找到相应的 SQL 文件;一切准备就绪后,使用 “sh startup.sh -m standalone” 命令启动新的 Nacos 服务,然后访问 Nacos 控制台,检查服务是否正常启动。

在升级过程中,有诸多注意事项。对于使用 MySQL 存储配置的用户,千万不要忘记先备份数据库,因为 SQL 表结构可能会有变化,确保在运行升级脚本前备份好原始数据。Nacos 2.x 需要的 JDK 版本是 1.8 或更高,升级前务必确保 JDK 版本满足要求。尽管 Nacos 会保留一些默认配置,但升级可能引入新的配置项,建议对比原有的 application.properties 与新版本中的默认配置,避免遗漏重要配置项。

5.Linux服务器上配置NACOS 仅允许内网访问

例如:为了在Linux服务器上配置NACOS 2.0.3仅允许内网访问,您可以通过以下步骤实现:


一、修改NACOS配置文件

  1. 定位配置文件

进入NACOS的配置目录,编辑 application.properties

cd nacos/conf
vi application.properties
  1. 绑定内网IP

找到以下配置项,将服务绑定到内网IP(例如 192.168.1.100):

# 绑定内网IP(替换为您的实际内网IP)
server.ip=192.168.1.100
# 可选:明确指定端口(默认8848)
server.port=8848

这样NACOS只会监听指定内网IP的请求。


二、配置防火墙规则

使用iptablesfirewalld限制访问:

方案1:iptables(推荐)
# 允许内网访问8848端口(假设内网网段为192.168.1.0/24)
iptables -A INPUT -p tcp --dport 8848 -s 192.168.1.0/24 -j ACCEPT
# 拒绝其他来源的访问
iptables -A INPUT -p tcp --dport 8848 -j DROP
# 保存规则(根据系统选择命令)
service iptables save    # CentOS 6
iptables-save > /etc/sysconfig/iptables  # CentOS 7+
方案2:firewalld
# 添加内网网段到可信区域
firewall-cmd --permanent --zone=trusted --add-source=192.168.1.0/24
# 开放端口并限制来源
firewall-cmd --permanent --add-port=8848/tcp
firewall-cmd --permanent --remove-port=8848/tcp --zone=public
# 重新加载配置
firewall-cmd --reload

三、云平台安全组(如阿里云ECS)

  1. 登录云控制台,找到目标ECS实例。
  2. 进入安全组配置,修改入方向规则:
    • 允许:源IP为内网网段(如 192.168.1.0/24),端口 8848
    • 拒绝:其他所有IP访问8848端口。

四、验证配置

  1. 内网测试

在内网另一台机器执行:

curl http://192.168.1.100:8848/nacos/health

应返回 {"status":"UP"}

  1. 外网测试

在外网使用:

curl http://公网IP:8848/nacos/health

应提示连接超时或被拒绝。


五、注意事项

  • 集群通信:若为集群部署,确保 cluster.conf 中的节点IP为内网地址。
  • 多端口处理:NACOS可能使用其他端口(如7848集群RPC),需一并限制。
  • 重启服务:配置后重启NACOS生效:
cd nacos/bin
sh shutdown.sh
sh startup.sh

通过以上步骤,NACOS将仅在内网可访问,外网请求会被防火墙或安全组拦截。

6. 别配置文件加固与代码案例

配置文件加固是提升 Nacos 安全性的关键环节。在 Nacos 的配置文件中,有多个关键配置项需要修改。

开启鉴权是必不可少的一步。在 conf/application.properties 文件中,将 “nacos.core.auth.enabled” 属性设置为 “true” ,这就好比给 Nacos 系统上了一把锁,只有通过身份验证的用户才能访问。开启鉴权后,所有对 Nacos 服务的访问都需要进行身份验证,有效防止了未授权访问的发生。例如,在一个企业内部的微服务架构中,开启鉴权后,外部的非法访问者无法随意获取服务配置信息,保障了企业数据的安全。

关闭 “userAgentAuthWhite” 同样重要。在配置文件中,将 “nacos.core.auth.enable.userAgentAuthWhite” 属性设置为 “false” ,这是为了防止因 User - Agent 判断失误导致的未授权访问漏洞。如前文所述,默认情况下,User - Agent 值以 “Nacos - Server” 字符串开头会跳过权限校验流程,关闭该配置后,就能有效堵住这个安全漏洞。

修改 token.secret.key 也是增强安全性的重要措施。在 application.properties 文件中,找到 “nacos.core.auth.plugin.nacos.token.secret.key” 属性 ,将其默认的固定值修改为一个高强度的密钥。例如,使用一个由大小写字母、数字和特殊字符组成的 32 位以上的随机字符串,这样可以有效防止伪造 token 漏洞,因为攻击者难以猜测到如此复杂的密钥,从而无法轻易伪造 token 进行登录。

6.1 安全策略设置

制定并实施全面的安全策略是保障 Nacos 安全运行的核心。

在网络访问控制方面,要严格限制 Nacos 服务的访问来源。可以通过防火墙设置,只允许特定的 IP 地址或 IP 段访问 Nacos 服务。比如,在企业内部网络中,只允许微服务所在的服务器 IP 地址访问 Nacos,禁止外部网络的直接访问,就像为 Nacos 筑起了一道坚固的 “防火墙”,阻挡了外部非法访问者的入侵。同时,合理配置端口访问策略,关闭不必要的端口,只开放 Nacos 服务运行所需的端口,如默认的 8848 端口用于 HTTP 访问 ,减少端口暴露带来的安全风险。

身份认证策略的完善也至关重要。采用强密码策略,要求用户设置复杂的密码,包含大小写字母、数字和特殊字符,并且定期更换密码,增加密码的安全性。多因素认证也是提升安全性的有效手段,除了用户名和密码,还可以结合短信验证码、指纹识别等方式进行身份验证。例如,在一些对安全性要求极高的金融行业应用中,用户登录 Nacos 时,不仅需要输入正确的用户名和密码,还会收到一条包含验证码的短信,只有输入正确的验证码才能成功登录,大大增加了系统的安全性。

定期安全审计是及时发现安全隐患的重要方法。通过审计 Nacos 的操作日志,可以了解系统的运行情况,发现潜在的安全问题。例如,审计日志中可能会记录到异常的登录尝试,如短时间内多次错误的登录请求,这可能是攻击者在尝试破解密码,通过及时发现这些异常行为,可以采取相应的措施,如暂时封禁该 IP 地址,防止进一步的攻击。同时,定期对系统进行安全漏洞扫描,使用专业的扫描工具,如 Nessus、OpenVAS 等,及时发现并修复系统中存在的漏洞,确保 Nacos 系统的安全性。

6.2 三个经典代码示例及解释

  1. 未授权访问漏洞代码示例

    java
    com.alibaba.nacos.core.auth.AuthFilter#doFilter
    • 解释:在 AuthFilterdoFilter 方法中,若请求的 User-Agent 以“Nacos-Server”开头,则会跳过权限校验。攻击者可利用此漏洞绕过身份认证,访问敏感接口。

  2. 伪造 token 漏洞代码示例

    properties
    nacos.core.auth.plugin.nacos.token.secret.key=SecretKey012345678901234567890123456789012345678901234567890123456789
    • 解释:默认的 token.secret.key 是固定的,攻击者可利用此密钥伪造 token,通过工具(如 jwt.io)生成伪造的 token,从而绕过身份验证。

  3. Hessian 反序列化漏洞代码示例

    java
    Nacos 默认的 7848 端口处理集群模式下的 raft 协议通信,使用 Hessian 进行反序列化。
    • 解释:Hessian 反序列化未设置限制,攻击者可通过该端口发送恶意请求,实现远程代码执行,威胁系统安全。

7.总结与展望

Nacos 作为云原生应用中不可或缺的服务发现与配置管理平台,其安全问题不容忽视。我们详细剖析了 Nacos 常见的未授权访问漏洞、伪造 token 漏洞、Hessian 反序列化漏洞以及 Derby 数据库远程代码执行漏洞 ,这些漏洞一旦被利用,会给企业带来数据泄露、业务中断和声誉受损等严重后果。

针对这些漏洞,我们也提出了一系列全面的解决方案,包括及时升级到最新版本,获取官方修复补丁;对配置文件进行加固,开启鉴权、关闭 userAgentAuthWhite 以及修改 token.secret.key ;制定并实施严格的安全策略,如网络访问控制、身份认证策略以及定期安全审计等。通过这些措施,可以有效降低 Nacos 的安全风险,保障系统的稳定运行。

在未来,我们期待 Nacos 官方能够继续加强安全方面的研发投入,不断完善安全机制。持续优化鉴权、认证等核心安全模块,及时修复新发现的漏洞,为用户提供更加安全可靠的产品。也希望广大开发者和企业用户能够高度重视 Nacos 的安全问题,积极采取有效的防护措施,共同营造一个安全稳定的云原生生态环境,让 Nacos 在保障安全的前提下,更好地发挥其在微服务架构中的关键作用,推动云原生应用的蓬勃发展。

10 个关键词解释:

  1. Nacos:阿里巴巴开源的服务发现与配置管理平台,广泛应用于微服务架构中。

  2. 未授权访问:攻击者无需身份验证即可访问系统资源的漏洞。

  3. 伪造 token:攻击者通过伪造身份验证令牌绕过安全机制。

  4. Hessian 反序列化:一种序列化协议,若未限制反序列化内容,可能导致远程代码执行。

  5. Derby 数据库:一种轻量级数据库,若未授权访问,攻击者可执行 SQL 语句。

  6. 服务发现:动态定位和管理服务实例的机制。

  7. 配置管理:集中管理应用配置信息的机制。

  8. 身份认证:验证用户身份的过程,确保只有授权用户可访问系统。

  9. 网络访问控制:限制外部访问的策略,如通过防火墙设置。

  10. 安全审计:定期检查系统日志和漏洞,发现并修复安全隐患。

感谢读者:

在本文的结尾,我们向所有投入时间阅读本文的读者表示衷心的感谢。我们希望本文提供的信息能够帮助您更好地理解阿里巴巴开源Nacos漏洞大揭秘:从隐患排查到完美修复的关键作用,以及它如何帮助企业应安全性和合规性等挑战。

您的参与和贡献将有助于我们不断进步,为您提供更高质量的内容和服务。再次感谢您的支持,期待在未来的交流中与您相遇。

希望这篇博客能够为您在学习《阿里巴巴开源Nacos漏洞大揭秘:从隐患排查到完美修复》中提供一些启发和指导。如果你有任何问题或需要进一步的建议,欢迎在评论区留言交流。让我们一起探索IT世界的无限可能!


博主还分享了本文相关文章,请各位大佬批评指正:

1、构建高可用和高防御力的云服务架构:从DDoS高防到PolarDB

2、构建高可用和高防御力的云服务架构第一部分:深入解析DDoS高防(1/5)

3、构建高可用和高防御力的云服务架构第二部分:SLB负载均衡(2/5)

4、构建高可用和高防御力的云服务架构第三部分:ECS集群(3/5)

5、构建高可用和高防御力的云服务架构第四部分:REDIS(4/5)

6、构建高可用和高防御力的云服务架构第五部分:PolarDB(5/5)

评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

正在走向自律

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值