yapi远程mock代码漏洞导致服务器被入侵

382 阅读2分钟

原文:tangtianfeng.cn/archives/ya…

起因

前几天想用yapi记录下接口文档并接口测试,于是便通过docker在服务器安装了yapi和mongoDB,完成了一系列配置之后,顺利进入yapi。

谈到安全问题,关于mongoDB需要特别注意:在默认部署情况下,MongoDB无需身份验证,即可登录。不法分子只要在互联网上发现MongoDB的地址和端口就能通过工具直接访问MongoDB,并拥有MongoDB全部权限。

使用mongoDB切记一定要启动访问权限限制,如何操作,可参考官方文档。如果你的mongoDB数据库直接在公网上裸奔的话,估计不出2天就被勒索了。

本人已被勒索多次……

难受

yapi的漏洞

具体怎么通过漏洞攻击参考github issue#2233

攻击者注册yapi账户,创建项目,自定义全局mock脚本。

源码中执行全局mock脚本的地方:

image-20220409194955548

脚本通过safeify执行

image-20220409195208140

image-20220409195252044

攻击者嵌入脚本,创建子进程下载病毒文件并授权执行。

image-20220409195444051

受害人群

yapi的github下,有不少issues都提到这个安全漏洞,在issue#2229中,我看到大部分人受到与我相似的攻击。

image-20220402214812001

可惜yapi的代码已经半年多没有维护了,

逮到病毒文件

我在yapi容器中找到了这两个病毒文件,想知道这两文件执行后干了什么。

把文件下载到windows sandbox中,是类unix系统的可执行文件,没有后缀名,加后缀.exe改为windows可执行文件但无法执行。

使用sublime text打开,文件内容如下

image-20220402213902126

两个文件差不多都是这样,看起来像一个字节码文件,我不太懂这个,有了解的朋友麻烦留言科普一下。