Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
PIL-CVE-2017-8291 — PoC تعليمي لـ CVE-2017-8291 (GhostButt) يوضح تنفيذ أوامر عن بُعد عبر معالجة صور EPS باستخدام Python PIL/Pillow مع تجاوز صندوق الحماية لـ GhostScript. | Kitploit
أدوات/GitHubGitHub/daniilorchikov/pil-cve-2017-8291
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليماستغلال الملفات الثنائيةمختبرات وتدريب عملي
GitHubdaniilorchikov/pil-cve-2017-8291

PIL-CVE-2017-8291

PoC تعليمي لـ CVE-2017-8291 (GhostButt) يوضح تنفيذ أوامر عن بُعد عبر معالجة صور EPS باستخدام Python PIL/Pillow مع تجاوز صندوق الحماية لـ GhostScript.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

استغلال تنفيذ الأوامر عن بُعد في Python PIL/Pillow (GhostButt / CVE-2017-8291)

中文版本(Chinese version)

Python PIL (Pillow) هي مكتبة معالجة صور شائعة للغة Python. تدعم العديد من تنسيقات الصور وتوفر إمكانيات قوية لمعالجة الصور.

تتأثر وحدة معالجة الصور PIL (Pillow) في Python بثغرة GhostButt (CVE-2017-8291) لأنها تستدعي داخليًا GhostScript لمعالجة صور EPS. تسمح هذه الثغرة للمهاجمين بتنفيذ أوامر عشوائية على النظام المستهدف.

عند معالجة PIL لصورة، تحدد نوع الصورة بناءً على رأس الملف (البايتات السحرية - Magic Bytes). إذا تعرفت على ملف EPS (يبدأ رأسه بـ %!PS)، تقوم بتمرير الملف إلى PIL/EpsImagePlugin.py للمعالجة.

في هذه الوحدة، تستدعي PIL أمر GhostScript (gs) النظامي لمعالجة ملف الصورة:

command = ["gs",
            "-q",                         # quiet mode
            "-g%dx%d" % size,             # set output geometry (pixels)
            "-r%fx%f" % res,              # set input DPI (dots per inch)
            "-dBATCH",                    # exit after processing
            "-dNOPAUSE",                  # don't pause between pages,
            "-dSAFER",                    # safe mode
            "-sDEVICE=ppmraw",            # ppm driver
            "-sOutputFile=%s" % outfile,  # output file
            "-c", "%d %d translate" % (-bbox[0], -bbox[1]),
                                            # adjust for image origin
            "-f", infile,                 # input file
            ]

# Code to check if GhostScript is installed is omitted
try:
    with open(os.devnull, 'w+b') as devnull:
        subprocess.check_call(command, stdin=devnull, stdout=devnull)
    im = Image.open(outfile)

على الرغم من تعيين العلامة -dSAFER (الوضع الآمن)، إلا أن ثغرة تجاوز الصندوق الرملي (sandbox bypass) في GhostScript (GhostButt CVE-2017-8291) تسمح بتجاوز آلية الأمان هذه، مما يتيح تنفيذ أوامر عشوائية.

حتى وقت كتابة هذا الشرح، لا يزال أحدث إصدار رسمي من GhostScript (9.21) متأثرًا بهذه الثغرة. لذلك، طالما تم تثبيت GhostScript على نظام التشغيل، فإن PIL تكون عرضة لتنفيذ الأوامر.

المراجع:

  • Exploiting Python PIL Module Command Execution Vulnerability
  • CVE-2017-8291 Details
  • GhostScript Security Advisory

إعداد البيئة

نفذ الأمر التالي لبدء تطبيق ويب معرض لثغرة CVE-2017-8291:

docker compose up -d

بعد التشغيل، قم بزيارة http://your-ip:8000/ للوصول إلى صفحة الرفع.

استغلال الثغرة

الوظيفة العادية لهذا التطبيق تسمح للمستخدمين برفع ملف PNG. يستخدم الخادم الخلفي PIL لتحميل الصورة وإخراج أبعادها. ومع ذلك، يمكننا استغلال ذلك عن طريق تغيير امتداد ملف EPS قابل للتنفيذ إلى PNG ورفعه. نظرًا لأن الخادم الخلفي يحدد نوع الصورة بناءً على رأس الملف وليس الامتداد، يمكن تجاوز فحص الامتداد.

على سبيل المثال، يمكننا رفع poc.png، والذي سينفذ الأمر touch /tmp/aaaaa على الخادم. بتعديل الأمر في ملف الاستغلال (POC) إلى أمر شل عكسي، يمكننا الحصول على وصول شل إلى الخادم:

استغلال الثغرة

تنزيل الأداة