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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
linux_mint_poc | Kitploit
أدوات/GitHubGitHub/b1ack0wl/linux_mint_poc
تحليل الثغرات الأمنيةالاستغلالالتعلم والتعليم
GitHubb1ack0wl/linux_mint_poc

linux_mint_poc

عرض المستودع
5310منذ 7 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

ثغرة حقن أوامر 'yelp' في Linux Mint 18.3-19.1

السبب الجذري

مُعرِّفات URI help:// وghelp:// وman:// معرَّفة في الملف /usr/share/applications/yelp.desktop، والذي سينفّذ /usr/local/bin/yelp عبر Exec=yelp %u عند استدعاء أيٍّ من معالجات URI هذه.

الملف /usr/local/bin/yelp هو سكربت بايثون بسيط يفسّر طلب معالج URI الوارد. يبحث هذا السكربت أولاً عن السلسلتين "gnome-help" و**"ubuntu-help"**، وإذا لم يجد أيًا منهما، فسينفّذ /usr/local/bin/yelp دون وضع الوسيط بين علامتي اقتباس.

محتويات /usr/local/bin/yelp:

root@kitploit:~
#!/usr/bin/python

import os
import sys

if (len(sys.argv) > 1):
    args = ' '.join(sys.argv[1:])
    if ('gnome-help' in args) and not os.path.exists('/usr/share/help/C/gnome-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    elif ('ubuntu-help' in args) and not os.path.exists('/usr/share/help/C/ubuntu-help'):
        os.system ("xdg-open http://www.linuxmint.com/documentation.php &")
    else:
        os.system ("/usr/bin/yelp %s" % args)  # uh oh
else:
    os.system ('/usr/bin/yelp')

من PoC إلى Shell

تطلّب استغلال الثغرة قليلًا من الإبداع، لأن Google Chrome يقوم بترميز أحرف مثل المسافة \x20 والأقواس المجعدة {} وعلامة الزائد + وعلامة backtick ` وبعض الأحرف الأخرى. وبما أن ${IFS} لم تكن لتعمل، فقد تبيّن أن استخدام $IFS$() يعمل بنفس الجودة، لأن جملة $() تمنع متغير البيئة $IFS من الالتحام بأحرف ASCII أخرى فيتحول بطريق الخطأ إلى $IFSaddedword أو ما شابه.

التخفيفات

نظرة عامة

يقوم الملف yelp.patch بتعديل العبارة القابلة للاستغلال من os.system ("/usr/bin/yelp %s" % args) إلى os.system ("/usr/bin/yelp %s" % quote(args))، ويعتمد على دالة quote() من مكتبة shlex (https://docs.python.org/3/library/shlex.html#shlex.quote).

تعليمات التصحيح

إما بتصحيح yelp أو بإزالته.

تصحيح yelp

  • تثبيت أداة patch: sudo apt install patch
  • تصحيح سكربت yelp: sudo patch /usr/local/bin/yelp yelp.patch

إزالة yelp ومعالجات URI المرتبطة به

  • إزالة معالجات URI: sudo rm /usr/share/applications/yelp.desktop
  • إزالة سكربت yelp المكتوب بلغة بايثون: sudo rm /usr/local/bin/yelp

[b1ack0wl]

تنزيل الأداة