
استغلال إثبات المفهوم لـ CVE-2022-24434 الموجه ضد حزمة npm Dicer الإصدار 0.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 Copy code
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 ..
الخيار ب — تثبيت الحزمة بالإصدار 0.3.1 (إذا كنت تفضل استخدام npm بدلاً من استنساخ المستودع) إذا كنت تفضل عدم استنساخ المستودع بالكامل، يمكنك إنشاء node_modules محلي بالإصدار المحدد:
mkdir tmp_project && cd tmp_project
npm init -y
npm install [email protected]
# انسخ مجلد الحزمة المثبتة node_modules/dicer إلى المجلد الأب باسم '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 # سكريبت إثبات المفهوم للاستغلال (ضعه هنا)
ابدأ تشغيل الخادم الضعيف:
node server.js
في محطة طرفية منفصلة، قم بتشغيل PoC للاستغلال:
node dicer_poc.js
git tag لسرد العلامات المتاحة. إذا لم يكن هناك علامة 0.3.1، استخدم طريقة npm-install أعلاه وتأكد من أن package.json داخل dicer/ يظهر الإصدار 0.3.1.