Clash 远程命令执行漏洞,有主机上线! - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Akiio
V2EX    信息安全

Clash 远程命令执行漏洞,有主机上线!

  •  1
     
  •   Akiio 2022-02-25 17:03:30 +08:00 11206 次点击
    这是一个创建于 1334 天前的主题,其中的信息可能已经有所发展或是发生改变。
    42 条回复    2022-07-19 03:50:47 +08:00
    butanediol2d
        1
    butanediol2d  
       2022-02-25 17:16:27 +08:00   11
    这是 Clash for Windows 的漏洞,不是 Clash 的漏洞。
    yiXu
        2
    yiXu  
       2022-02-25 17:20:44 +08:00
    最新版已修复,而且漏洞应该只在 0.19.8
    yiXu
        3
    yiXu  
       2022-02-25 17:28:19 +08:00
    重新验证了下,0.19.5 可复现 issue 调用计算器。。。
    icebay
        4
    icebay  
       2022-02-25 17:30:50 +08:00
    自己搭的看了之后选择无视
    Jooooooooo
        5
    Jooooooooo  
       2022-02-25 17:41:48 +08:00
    这种漏洞有没有什么办法尽可能避免呢...

    一个 name 明明就是展示字符串, 居然还能执行命令.
    WeiYuanStudio
        6
    WeiYuanStudio  
       2022-02-25 17:47:52 +08:00   1
    佩服,订阅可以投毒了
    gadfly3173
        7
    gadfly3173  
       2022-02-25 17:51:09 +08:00   1
    @Jooooooooo #5
    1. 外部输入尽量走 escape ,比如 vue 自带的模板标签{{}}
    2. browserwindow 启用 sandbox

    显然作者偷懒,两个都没做
    noyle
        8
    noyle  
       2022-02-25 17:51:57 +08:00
    https://github.com/Fndroid/clash_for_windows_pkg/issues/2710#issuecomment-1050689930

    教辅:屑是一个新时代的贬义词,指一个人或事物很垃圾,很废物。
    via https://baike.baidu.com/item/%E5%B1%91/55729420
    Jooooooooo
        9
    Jooooooooo  
       2022-02-25 17:53:38 +08:00
    @gadfly3173 不太懂这个. 不过难道没有纯 string 这种结构吗?
    gadfly3173
        10
    gadfly3173  
       2022-02-25 17:59:59 +08:00
    @Jooooooooo #9 理论上对于 html 和 js 来说,精心构造的字符串插入页面可以绕过作者本身预期的行为,毕竟是运行时的语言。类似的就是 sql 注入。因此需要对用户输入进行转义。当然转义也可能有某些未被发现的边界情况,不过要绕过这种已经很困难了。
    fndroid
        11
    fndroid  
       2022-02-25 18:02:08 +08:00   6
    @gadfly3173

    接受批评,但这个问题和沙盒无关,因为用 img 加载了 twitter emoji 没用 textContent 处理,确实是我的问题
    Jooooooooo
        12
    Jooooooooo  
       2022-02-25 18:03:25 +08:00
    @gadfly3173 至少我知道的, 在 java 里的 mybatis 框架中, 就有纯 string 这种概念, 拿到的串只有字符含义, 没有任何执行含义, 不可能发生注入.

    类似这里, 本身就是个 name, 完全没有执行代码的业务可能, 赋予一个传啥展示啥的 string 含义也合理吧(我理解语言框架层面也应该去支持类似的逻辑功能)
    gadfly3173
        13
    div class="sep3"> gadfly3173  
       2022-02-25 18:10:00 +08:00
    @fndroid #11 启用 sandbox 的话应该是可以避免 child_process 的调用的吧,至少可以减少影响
    gadfly3173
        14
    gadfly3173  
       2022-02-25 18:11:32 +08:00
    @Jooooooooo #12 是的 这些都是有解决方案的,当然和 mybatis 的#{}一样,都需要去手动处理
    cozof
        15
    cozof  
       2022-02-25 18:33:16 +08:00 via iPhone
    这标题,梦回灰鸽子。
    Akiio
        16
    Akiio  
    OP
       2022-02-25 18:41:09 +08:00
    @butanediol2d 哈哈哈哈,标题党不嫌事大。
    @cozof 确实,可以一键上线了
    mxT52CRuqR6o5
        17
    mxT52CRuqR6o5  
       2022-02-25 20:02:06 +08:00
    @gadfly3173
    要是我自用的 electron 项目肯定不开 sandbox ,启用 sandbox 开发起来麻烦的不是一点半点,要是有 electron 的 node 模块一体化调用框架就好了
    gadfly3173
        18
    gadfly3173  
       2022-02-25 20:10:39 +08:00 via Android
    @mxT52CRuqR6o5 阿这,官方推荐还是渲染进程和主进程各干各的,不给渲染进程直接操作 node 的权利。这样也比较有分层的感觉,javaboy 还挺喜欢
    d5
        19
    d5  
       2022-02-25 20:28:10 +08:00   1
    梦回 灰鸽子 +1
    wangyu17455
        20
    wangyu17455  
       2022-02-25 20:59:07 +08:00
    然而我是直接用 clash核心的 23333
    iPhone12
        21
    iPhone12  
       2022-02-25 21:26:05 +08:00
    梦回红尘网安
    yanqiyu
        22
    yanqiyu  
       2022-02-25 21:28:04 +08:00 via Android
    @Jooooooooo electron 开沙盒
    yeqizhang
        23
    yeqizhang  
       2022-02-25 21:45:29 +08:00
    刚刚我的 15.1 复现可调起计算器,已经更新到最新了。还好逛了 v2 看到了爆漏洞....
    x86
        24
    x86  
       2022-02-25 22:00:08 +08:00
    有主机上线请注意
    zhou00
        25
    zhou00  
       2022-02-25 22:04:45 +08:00
    0.19.5 复现了,谢谢提醒,已更新最新版本
    ignor
        26
    ignor  
       2022-02-25 22:10:27 +08:00 via Android
    机场拿这个漏洞攻击用户相当于是砸自己招牌了吧…
    mxT52CRuqR6o5
        27
    mxT52CRuqR6o5  
       2022-02-25 22:21:33 +08:00 via Android
    @ignor 机场没理由攻击,公共转换服务可是有的
    Buges
        28
    Buges  
       2022-02-25 22:29:19 +08:00 via Android   1
    @ignor 这算啥,留日志减刑,一言不合把用户出道的也大有人在。
    CallMeReznov
        29
    CallMeReznov  
       2022-02-25 22:34:49 +08:00
    用的 clash.net................
    love4taylor
        30
    love4taylor  
    PRO
       2022-02-25 22:43:30 +08:00
    @ignor ( oneman )机场遍地是,这还真说不好。
    HFX3389
        31
    HFX3389  
       2022-02-25 22:47:10 +08:00
    Clash for windows 好像是不开源的
    xrzxrzxrz
        32
    xrzxrzxrz  
       2022-02-25 23:14:37 +08:00
    专门试了个老版本,0.13.6 ,也有漏洞..
    MoeMoesakura
        33
    MoeMoesakura  
       2022-02-26 08:12:21 +08:00
    @ignor 上次 nyanpass 的历史,,,
    wh1sper1023
        34
    wh1sper1023  
       2022-02-26 10:39:35 +08:00
    @Jooooooooo 因为他相当于是显示 html ,可以执行 js 代码。如果没有正确的转义或者开启沙箱的话,就可以直接用 js 执行系统命令
    titanlpy
        35
    titanlpy  
       2022-02-26 11:53:27 +08:00
    问题不大,机场不至于自砸招牌
    JohnSmith
        36
    JohnSmith  
       2022-02-26 16:11:14 +08:00
    @titanlpy #35 我偷摸着扫一遍你的加密货币,转走了都不知道是谁干的
    rpish
        37
    rpish  
       2022-02-27 11:14:46 +08:00
    magicdawn
        38
    magicdawn  
       2022-02-27 18:57:36 +08:00
    一个不开源的软件这么多 star, 离谱
    mxT52CRuqR6o5
        39
    mxT52CRuqR6o5  
       2022-03-02 16:30:36 +08:00
    @gadfly3173
    就比如我想展示一个本地文件的内容,如果可以直接用 node 模块,直接 require 个 fs 几行搞定(当然安全性就低了)
    开 sandbox 的话就得两边建好几个文件,声明 ipc 通信,把东西传来穿去,想一下就感觉很麻烦
    像字节有开源个前端框架 modern.js ,其中有个 [一体化 BFF 方案] 特性,前端代码里可以直接 import 后端代码里写的 api 函数,框架自动转成 http 请求
    所以我就想如果有基于 electron 的框架也能做到类似的事情就好了( render process 直接 import main process 的代码,自动转换成 ipc 通信)
    dragonQueen
        40
    dragonQueen  
       2022-03-05 19:06:05 +08:00
    @magicdawn 在 release 页面,我看有 source code 的下载项
    magicdawn
        41
    magicdawn  
       2022-03-06 13:01:31 +08:00
    @dragonQueen #40 原来开源是这么玩的
    cxy2244186975
        42
    cxy2244186975  
       2022-07-19 03:50:47 +08:00 via Android
    梦回黑客防线
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2351 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 15:50 PVG 23:50 LAX 08:50 JFK 11:50
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86