CVE-2022-24434 – Dicer组件PoC
此存储库包含针对CVE-2022-24434的概念验证(PoC),这是一个影响Dicer npm包的漏洞。
PoC目标版本: 0.3.1(确保使用的dicer代码确为v0.3.1)
📂 项目结构
确保目录结构如下:
1
2
3
4
|
.
├── dicer/ # 克隆的Dicer仓库(必须为v0.3.1版本)
├── server.js # 存在漏洞的服务器脚本
└── dicer_poc.js # 漏洞利用PoC脚本
|
⚙️ 环境设置
选项A — 克隆仓库并切换到v0.3.1(如果使用仓库,推荐此方法)
1
2
3
4
5
6
7
8
9
10
|
git clone https://github.com/mscdex/dicer.git
cd dicer
# 获取所有标签并切换到v0.3.1(标签名可能是"v0.3.1"或"0.3.1")
git fetch --all --tags
# 尝试标签检出(如果标签是'v0.3.1')
git checkout tags/v0.3.1 -b poc-0.3.1 || git checkout tags/0.3.1 -b poc-0.3.1
npm install # 如有需要,安装dicer仓库依赖
cd ..
|
选项B — 安装0.3.1版本的包(如果更喜欢使用npm而不是克隆仓库)
如果不希望克隆完整仓库,可以创建包含特定版本的本地node_modules:
1
2
3
4
5
6
7
|
mkdir tmp_project && cd tmp_project
npm init -y
npm install dicer@0.3.1
# 将安装的包文件夹node_modules/dicer复制到父文件夹作为'dicer'
cp -R node_modules/dicer ../dicer
cd ..
rm -rf tmp_project
|
重要说明: PoC设计为针对项目根目录内的dicer源代码文件夹运行。确保根目录中名为dicer的文件夹对应0.3.1版本。
1
2
3
4
|
└── poc/
├── dicer/ # 克隆的Dicer仓库(必须为v0.3.1版本)
├── server.js # 存在漏洞的服务器脚本(放置在此处)
└── dicer_poc.js # 漏洞利用PoC脚本(放置在此处)
|
▶️ 运行PoC
启动存在漏洞的服务器:
在单独的终端中,运行漏洞利用PoC:
🧩 注意事项
- PoC依赖于dicer v0.3.1中存在的特定行为。使用更新或已修补的版本可能无法复现该问题。
- 如果克隆了仓库但找不到标签,请检查
git tag以列出可用标签。如果没有0.3.1标签,请使用上面的npm安装方法,并确认dicer/内的package.json显示版本为0.3.1。
⚠️ 免责声明
此存储库仅用于教育和研究目的。
请不要在未经明确授权的情况下使用此PoC针对任何系统。
作者不对任何滥用或造成的损害负责。