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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2017-8291 — مختبر قائم على Docker يوضح استغلال CVE-2017-8291 (GhostButt) عبر معالجة صور EPS في Python PIL/Pillow، مع تطبيق ويب ضعيف واستغلال إثبات المفهوم. | Kitploit
أدوات/GitHubGitHub/shun1403/cve-2017-8291
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبCTFالتعلم والتعليممختبرات وتدريب عملي
GitHubshun1403/cve-2017-8291

CVE-2017-8291

مختبر قائم على Docker يوضح استغلال CVE-2017-8291 (GhostButt) عبر معالجة صور EPS في Python PIL/Pillow، مع تطبيق ويب ضعيف واستغلال إثبات المفهوم.

عرض المستودع
2منذ سنة واحدةلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

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

النسخة الصينية

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

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

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

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

root@kitploit:~
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 (الوضع الآمن)، فإن ثغرة تجاوز العزل في GhostScript (GhostButt CVE-2017-8291) تسمح بتجاوز هذه الآلية الأمنية، مما يتيح تنفيذ أوامر عشوائية.

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

المراجع:

  • استغلال ثغرة تنفيذ الأوامر في وحدة Python PIL
  • تفاصيل CVE-2017-8291
  • النشرة الأمنية لـ GhostScript

إعداد البيئة

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

root@kitploit:~
docker compose up -d

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

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

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

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

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

تنزيل الأداة