
Эксплойт-доказательство концепции для CVE-2022-24434, нацеленный на npm-пакет Dicer v0.3.1. Демонстрирует эксплуатацию уязвимости на стороне сервера с предоставленным серверным скриптом и PoC-полезной нагрузкой.
Этот репозиторий содержит доказательство концепции (PoC) для CVE-2022-24434 — уязвимости, затрагивающей npm-пакет Dicer.
Целевая версия PoC: 0.3.1 (убедитесь, что используемый код dicer — именно v0.3.1)
Убедитесь, что каталог имеет следующую структуру:
. ├── dicer/ # Клонированный репозиторий Dicer (должен быть v0.3.1) ├── server.js # Уязвимый серверный скрипт └── dicer_poc.js # PoC-скрипт эксплойта
yaml Копировать код
git clone https://github.com/mscdex/dicer.git
cd dicer
# fetch tags and switch to v0.3.1 (tag name may be "v0.3.1" or "0.3.1")
git fetch --all --tags
# try the tag checkout (if tag is '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 # install dicer repo dependencies if needed
cd ..
Вариант B — установите пакет версии 0.3.1 (если вы предпочитаете использовать npm вместо клонирования репозитория)
Если вы не хотите клонировать полный репозиторий, вы можете создать локальный node_modules с нужной версией:
bash
Копировать код
mkdir tmp_project && cd tmp_project
npm init -y
npm install [email protected]
# copy the installed package folder node_modules/dicer into the parent folder as 'dicer'
cp -R node_modules/dicer ../dicer
cd ..
rm -rf tmp_project
Важно: PoC рассчитан на работу с папкой исходного кода dicer в корне этого проекта. Убедитесь, что папка с именем dicer в корне соответствует версии 0.3.1.
└── poc/
├── dicer/ # Клонированный репозиторий Dicer (должен быть v0.3.1)
├── server.js # Уязвимый серверный скрипт (разместите здесь)
└── dicer_poc.js # PoC-скрипт эксплойта (разместите здесь)
▶️ Запуск PoC
Запустите уязвимый сервер:
bash
Копировать код
node server.js
В отдельном терминале запустите PoC-эксплойт:
bash
Копировать код
node dicer_poc.js
🧩 Примечания
PoC зависит от поведения, характерного для dicer v0.3.1. При использовании более новых или пропатченных версий проблема может не воспроизводиться.
Если вы клонировали репозиторий и не можете найти тег, выполните `git tag`, чтобы вывести список доступных тегов. Если тега 0.3.1 нет, воспользуйтесь описанным выше способом установки через npm и убедитесь, что package.json внутри dicer/ показывает версию 0.3.1.
⚠️ Отказ от ответственности
Этот репозиторий создан исключительно в образовательных и исследовательских целях.
Не используйте этот PoC против систем без явного разрешения.
Автор не несёт ответственности за любое неправомерное использование или причинённый ущерб.