type
status
date
slug
summary
tags
category
icon
password
看到网上爆出 clash-verge 存在提权漏洞,简单复现下。
https://github.com/clash-verge-rev/clash-verge-rev/issues/3428
0x00 定位漏洞
已知是提权到system的漏洞,那直接看 service 相关代码就好。
在
clash-verge-rev/src-tauri/src/core/service.rs
可以看到33211端口有 http 服务存在 4 个 api 接口并且没有任何鉴权机制。
/start_clash
启动Clash核心,接受POST请求,需要在请求体中提供JSON格式的配置信息,包含以下参数:core_type
: 核心类型(如"verge-mihomo")
bin_path
: 二进制文件路径
config_dir
: 配置目录路径
config_file
: 配置文件路径
log_file
: 日志文件路径一看就很有问题,文件路径是自己指定的,用powershell请求下试试
看下任务管理器,system权限的notepad进程已经启动了。
启动参数如下:
利用cmd的一些特性,可以构造如下参数执行任意命令。
0x01 进一步分析
和之前 clash 的漏洞一样,尝试使用浏览器js访问,不过不同于 clash 的api,服务的 api 受到 CORS的限制,不允许读取响应以及不允许设置Content-Type为application/json。这就导致 start_clash 这个api 不可能通过浏览器 js 利用。
为啥说基本不可能利用呢,因为有些条件苛刻的方法有可能绕过CORS。
比如使用 flash,但是现在哪还有支持 flash 的浏览器,也许可以做个假的基于 flash 的登录页面来钓攻击者的鱼?
看起来这个漏洞对普通用户基本没啥危害,普通用户电脑上也没啥需要提权的低权限用户。
- 作者:fatekey
- 链接:https://blog.fatekey.icu//article/clash-verge-rce
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。