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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/ishwardeepp/cve-2025-1094-poc-postgre-sqli
تحليل الثغرات الأمنيةتحليل الكودالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمأمن قواعد البياناتمختبرات وتدريب عملي
GitHub
ishwardeepp/cve-2025-1094-poc-postgre-sqli

CVE-2025-1094-PoC-Postgre-SQLi

محاكاة وتحليل لإثبات المفهوم لثغرة CVE-2025-1094، وهي ثغرة حرجة في حقن SQL في PostgreSQL. تتضمن إعداد مختبر قائم على Docker، وسكربت استغلال، وتحليل السبب الجذري، وعرضًا توضيحيًا خطوة بخطوة لاختبار الأمان والأغراض التعليمية.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

تحليل CVE-2025-1094 وإعداد المحاكاة

يستكشف هذا الفحص التفصيلي، الذي أُجري في 14 مارس 2025، ثغرة CVE-2025-1094، وهي ثغرة افتراضية عالية الخطورة من نوع حقن SQL في PostgreSQL، استناداً إلى إعداد المحاكاة المقدم وتنفيذ إثبات المفهوم (PoC). يغطي التحليل مقدمة الثغرة، والسبب الجذري، ومساهمات الملفات، وخطوات إثبات المفهوم، والإجراءات التخفيفية، مع تضمين جميع التفاصيل الدقيقة من عملية المحاكاة.

مقدمة إلى الثغرة

تُوصف CVE-2025-1094 بأنها ثغرة حرجة من نوع حقن SQL في PostgreSQL، تؤثر على الإصدارات السابقة لـ 17.3 و16.7 و15.11 و14.16 و13.19، بدرجة أساسية 8.1 وفق معيار CVSS 3.1، مما يشير إلى تأثيرات كبيرة على السرية والنزاهة والتوافر. وهي تمكن المهاجمين من الوصول إلى البيانات الحساسة أو تنفيذ كود عن بُعد (RCE)، وقد استُغلت في اختراقات حقيقية، مثل حادثة BeyondTrust التي أثرت على 17 عميلاً من المؤسسات، والتي نُقلت على BleepingComputer، واختراق وزارة الخزانة الأمريكية، المُفصَّل على The Register. استخدمت المحاكاة، التي أُجريت في 14 مارس 2025، إعداد Docker مع server_encoding=EUC_TW وclient_encoding=BIG5، وهو أمر حاسم لتفعيل الاستغلال. تضمن إثبات المفهوم حقن كتلة DO لإنشاء كائن كبير، وقراءة /etc/passwd عبر pg_read_file، وكتابته في الكائن الكبير باستخدام ، وتصديره إلى باستخدام ، مما يؤكد دور عدم تطابق الترميز في تمكين الوصول غير المصرح به إلى الملفات.

lo_put
/tmp/payload
lo_export

تحليل السبب الجذري

يُصنَّف السبب الجذري تحت CWE-149: التحييد غير السليم لصيغة الاقتباس، ويتضمن معالجة غير سليمة في دوال libpq الخاصة بـ PostgreSQL — PQescapeLiteral() وPQescapeIdentifier() وPQescapeString() وPQescapeStringConn() — التي تفشل في تحييد صيغة الاقتباس عند استخدام النتائج لبناء مدخلات لأداة سطر الأوامر psql. تتفاقم هذه المشكلة عندما يتم تعيين client_encoding إلى BIG5 وserver_encoding إلى EUC_TW، كما هو موضح في إعدادنا، مما يسمح بحقن SQL. تطلبت المحاكاة EUC_TW وzh_TW.EUC_TW لإحداث عدم التطابق، مع حل مشكلات مثل عدم دعم psycopg2 لـ EUC_TW عبر الاتصال بـ UTF8 ثم التبديل إلى BIG5. اعتمد نجاح الاستغلال على تنفيذ SQL خام عبر subprocess.run(["psql", ...])، متجاوزاً المعالجة الآمنة للاستعلامات، كما هو مفصَّل في السجلات.

شرح الملفات ومساهماتها

يلعب كل ملف في الإعداد دوراً حاسماً في محاكاة CVE-2025-1094. فيما يلي تفصيل دقيق في شكل جدول:

الجدول: ملخص مساهمات الملفات

الملفما الذي يفعلهالمساهمة في إثبات المفهوملماذا هو مطلوب
exploit.pyيرسل طلب POST مع كتلة DO لإنشاء كائن كبير وتصديره، مع قراءة /etc/passwd.يفعّل حقن SQL، ويستغل عدم تطابق الترميز لتنفيذ أوامر SQL عشوائية.يمكّن تنفيذ الاستغلال، وهو أمر حاسم لتأثير إثبات المفهوم.
app.pyتطبيق Flask يعرض /vuln-endpoint، وينفذ SQL خام عبر psql.يوفر نقطة نهاية قابلة للاستغلال للهجوم.نقطة دخول للاستغلال، ضرورية لإظهار الثغرة.
init.sqlينشئ جدول اختبار مع id VARCHAR(255) لمدخلات النصوص.يهيئ مخطط قاعدة البيانات للحقن، ويضمن تنفيذ الحمولة دون أخطاء أنواع.إعداد قاعدة البيانات للاستغلال، أساسي لحقن SQL.
Dockerfileيبني حاوية تطبيق Flask مع الاعتماديات الضرورية.ينشئ خدمة تطبيق معزولة لنشر نقطة النهاية.ينشر التطبيق القابل للاستغلال، وهو أمر حاسم لإعادة إنتاج إثبات المفهوم.
docker-compose.ymlيعرّف ويربط خدمتي db وapp مع تكوينات محددة.ينسق الإعداد، ويضمن عدم تطابق الترميز وتبعيات الخدمات.يربط الخدمات، وهو أساسي لإعداد البيئة وعزلها.
Dockerfile.dbيبني حاوية PostgreSQL بترميز EUC_TW.ينشئ قاعدة بيانات قابلة للاستغلال بالترميز المطلوب.يهيئ قاعدة البيانات بالترميز المطلوب، وهو أمر حاسم لتفعيل الثغرة.

خطوات إثبات المفهوم

يوضح إثبات المفهوم، الذي نُفذ في 14 مارس 2025، تأثير الاستغلال عبر الخطوات التالية، مع شرح مفصّل لكل خطوة:

  1. sudo docker compose up --build

    • ما الذي تفعله: يبني ويشغّل خدمات Docker Compose (db وapp)، وينشئ الحاويات بصور محدّثة إذا لزم الأمر، ويربطها في شبكة postgre_default. يضمن إعداد البيئة القابلة للاستغلال، حيث تستخدم db ترميز EUC_TW وتعرض app نقطة النهاية /vuln-endpoint على المنفذ 5000، وهو أمر حاسم لعدم تطابق الترميز والوصول إلى نقطة النهاية في الاستغلال.
    • لماذا هو مطلوب: يهيئ البيئة اللازمة لعمل الاستغلال، ويضمن أن جميع الخدمات تعمل ومُهيأة بشكل صحيح.
  2. curl -X POST http://localhost:5000/vuln-endpoint -d "input=test"

    • ما الذي تفعله: يرسل طلب POST إلى نقطة نهاية تطبيق Flask مع input=test، للتحقق من الاتصال والوظائف الأساسية، متوقعاً "Executed". يؤكد أن التطبيق يعمل ويمكنه الاتصال بقاعدة البيانات، مما يضمن جاهزية الإعداد للاستغلال.
    • لماذا هو مطلوب: يضمن أن نقطة النهاية يمكن الوصول إليها وتعمل بشكل صحيح قبل المضي قدماً في الاستغلال، بما يتماشى مع خطوات التحقق من إثبات المفهوم.
    • التحقق من الإعداد
  3. python3 cve-2025-1094-exploit.py

    • ما الذي تفعله: يشغّل سكربت الاستغلال، ويرسل طلب POST مع كتلة DO لإنشاء كائن كبير، وكتابة /etc/passwd فيه، وتصديره إلى /tmp/payload، مع طباعة حالة التنفيذ. يفعّل حقن SQL، مستغلاً الثغرة لقراءة /etc/passwd، وهو أمر حاسم لإظهار تأثير CVE-2025-1094، كما يظهر في السجلات مع تصدير ناجح للملف.
    • لماذا هو مطلوب: ينفذ الاستغلال الأساسي، موضحاً كيف يمكن للمهاجمين الوصول إلى البيانات الحساسة، بما يتماشى مع هدف إثبات المفهوم في محاكاة الهجمات الواقعية.
    • تشغيل الاستغلال
  4. sudo docker ps

    • ما الذي تفعله: يعرض الحاويات قيد التشغيل، ويتحقق من أن postgre-app-1 وpostgre-db-1 تعملان. يؤكد الإعداد قبل تشغيل الاستغلال، ويضمن أن كلتا الخدمتين نشطتان، وهو أمر حاسم لموثوقية إثبات المفهوم. يوفر للمستخدم معرف الحاوية، اللازم للأوامر اللاحقة.
    • لماذا هو مطلوب: يضمن تشغيل جميع الخدمات الضرورية، ويوفر نقطة توقف قبل خطوات الاستغلال الإضافية.
  5. sudo docker exec -it bash -c "LC_ALL=C ls -l /tmp/payload && LC_ALL=C cat /tmp/payload"

    • ما الذي تفعله: ينفذ أمراً في حاوية postgre-db-1، لعرض /tmp/payload مع مخرجات بالإنجليزية، والتحقق من نتيجة الاستغلال (يجب أن تُظهر /etc/passwd). يؤكد نجاح الاستغلال من خلال فحص الملف، ويضمن أن /tmp/payload يحتوي على بيانات حساسة، بما يتماشى مع التحقق من إثبات المفهوم، ويتجنب تشويش اللغة باستخدام LC_ALL=C.
    • لماذا هو مطلوب: يتحقق من نجاح الاستغلال عبر فحص المخرجات، ويضمن الوصول إلى البيانات الحساسة كما هو متوقع.
    • التحقق من الاستغلال
  6. sudo docker exec -it psql -U postgres -d postgres -c "SELECT * FROM test;"

    • ما الذي تفعله: ينفذ استعلام SQL في حاوية قاعدة البيانات، لتحديد جميع الصفوف من جدول test، والتحقق من أمر INSERT الناتج عن الاستغلال (يجب أن يُظهر "Exploit ran with loid ..."). يؤكد تعديل الاستغلال لقاعدة البيانات، ويضمن تنفيذ كتلة DO، بما يتماشى مع التحقق من إثبات المفهوم، ويتحقق من تسجيل loid.
    • لماذا هو مطلوب: يضمن تعديل قاعدة البيانات كما هو متوقع، ويوفر تحققاً إضافياً من تأثير الاستغلال.
  7. sudo docker compose down

    • ما الذي تفعله: يوقف ويزيل الحاويات والشبكات ووحدات التخزين، وينظف البيئة. يضمن تحرير الموارد والحفاظ على نظافة النظام، وهو أمر أساسي لتنفيذ إثبات مفهوم قابل للتكرار دون بقايا.
    • لماذا هو مطلوب: ينظف بعد الاختبار، ويضمن عدم تأثير أي خدمات أو بيانات متبقية على الاختبارات المستقبلية، مع الحفاظ على بيئة خاضعة للتحكم.

فيديو توضيحي

فيديو توضيحي على Vimeo
انقر لعرض العرض التوضيحي لإثبات المفهوم على Vimeo.

الإجراءات التخفيفية

للتخفيف من CVE-2025-1094، يُوصى بالتدابير التالية، استناداً إلى رؤى المحاكاة والإرشادات الصناعية:

  • الترقية إلى الإصدارات المصححة: الترقية إلى إصدارات PostgreSQL 17.3 أو 16.7 أو 15.11 أو 14.16 أو 13.19، المتاحة في صفحة تنزيل PostgreSQL.
  • التحقق من صحة المدخلات: التحقق من ترميز UTF-8 لجميع مدخلات المستخدم لمنع الحقن، كما توصي مدونة Armosec.
  • تقييد الوصول إلى psql: قصر الوصول إلى psql على المستخدمين الموثوقين فقط، مما يقلل من سطح الهجوم.
  • الاستعلامات المُعلمة أو أطر ORM: استخدام الاستعلامات المُعلمة (parameterized queries) أو أطر ORM لمنع حقن SQL، وتعزيز الأمان.
  • المصادقة متعددة العوامل (MFA) والتحكم في الوصول القائم على الأدوار (RBAC): تنفيذ MFA وRBAC لتعزيز التحكم في الوصول، وفقاً لـ Ox Security Insights.
  • مراقبة السجلات: مراقبة السجلات بانتظام بحثاً عن الحالات الشاذة أو الأنشطة المشبوهة لاكتشاف الاستغلالات المحتملة مبكراً.
  • نسخ احتياطية قوية: الحفاظ على نسخ احتياطية منتظمة وقوية لقاعدة البيانات للتعافي من الاختراقات المحتملة، وضمان سلامة البيانات.
تنزيل الأداة