Vulnerabilities > CVE-1999-0239 - Improper Handling of Case Sensitivity vulnerability in Netscape Fasttrack Server 3.01

047910
CVSS 7.5 - HIGH
Attack vector
NETWORK
Attack complexity
LOW
Privileges required
NONE
Confidentiality impact
HIGH
Integrity impact
NONE
Availability impact
NONE
network
low complexity
netscape
CWE-178
nessus
exploit available

Summary

Netscape FastTrack Web server lists files when a lowercase "get" command is used instead of an uppercase GET.

Vulnerable Configurations

Part Description Count
Application
Netscape
1

Common Weakness Enumeration (CWE)

Exploit-Db

descriptionNetscape FastTrack Server 3.0.1 Fasttrack Root Directory Listing Vulnerability. CVE-1999-0239. Remote exploits for multiple platform
idEDB-ID:19363
last seen2016-02-02
modified1999-06-07
published1999-06-07
reporterJesús López de Aguileta
sourcehttps://www.exploit-db.com/download/19363/
titleNetscape FastTrack Server 3.0.1 Fasttrack Root Directory Listing Vulnerability

Nessus

NASL familyWeb Servers
NASL idNETSCAPE_FASTTRACK.NASL
descriptionWhen the remote web server is issued a request with a lower-case
last seen2020-06-01
modified2020-06-02
plugin id10156
published1999-06-22
reporterThis script is Copyright (C) 1999-2018 Tenable Network Security, Inc.
sourcehttps://www.tenable.com/plugins/nessus/10156
titleNetscape FastTrack get Command Forced Directory Listing
code
#
# (C) Tenable Network Security, Inc.
#


include("compat.inc");

if(description)
{
 script_id(10156);
 script_version ("1.36");
 script_cve_id("CVE-1999-0239");
 script_bugtraq_id(481);

 script_name(english:"Netscape FastTrack get Command Forced Directory Listing");
 
 script_set_attribute(attribute:"synopsis", value:
"The remote web server is vulnerable to an information disclosure
attack." );
 script_set_attribute(attribute:"description", value:
"When the remote web server is issued a request with a lower-case
'get', it will return a directory listing even if a default page such
as index.html is present. 
		
For example :
		get / HTTP/1.0

will return a listing of the root directory. 

This allows an attacker to gain valuable information about the
directory structure of the remote host and could reveal the presence
of files that are not intended to be visible." );
 script_set_attribute(attribute:"solution", value:
"Upgrade the server to the latest version." );
  script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:P/I:N/A:N");
  script_set_cvss_temporal_vector("CVSS2#E:POC/RL:OF/RC:C");
  script_set_attribute(attribute:"exploitability_ease", value:"No exploit is required");
  script_set_attribute(attribute:"exploit_available", value:"false");

 script_set_attribute(attribute:"plugin_publication_date", value: "1999/06/22");
 script_set_attribute(attribute:"vuln_publication_date", value: "1998/01/16");
 script_cvs_date("Date: 2018/07/16 14:09:14");
script_set_attribute(attribute:"plugin_type", value:"remote");
script_set_attribute(attribute:"cpe",value:"cpe:/a:netscape:fasttrack_server");
script_end_attributes();

 script_summary(english:"'get / ' gives a directory listing");
 script_category(ACT_GATHER_INFO);
 script_copyright(english:"This script is Copyright (C) 1999-2018 Tenable Network Security, Inc.");
 script_family(english:"Web Servers");
 script_dependencie("find_service1.nasl", "httpver.nasl", "http_version.nasl");
 script_require_ports("Services/www", 80);
 script_require_keys("www/netscape-fasttrack");
 exit(0);
}

#
# The script code starts here
#
include("global_settings.inc");
include("misc_func.inc");
include("http.inc");

bad = "<title>index of /</title>";

function check(pattern, port)
{
 local_var	w, rq, res, buf;
 
 
 rq = http_mk_get_req(item:"/", port:port);
 buf = http_mk_buffer_from_req(req: rq);
 buf = str_replace(string:buf, find:pattern, replace:"get", count:1);
 w = http_send_recv_buf(port: port, data: buf);
 if (isnull(w)) exit(1, "The web server on port "+port+" did not answer");
 res = strcat(w[0], w[1], '\r\n', w[2]);
 res = tolower(res);
 if(bad >< res){
 	security_warning(port);
	exit(0);
  }
}


port = get_http_port(default:80);

w = http_send_recv3(method: "GET", item:"/", port:port);
if (isnull(w)) exit(1, "The web server on port "+port+" did not answer");
res = strcat(w[0], w[1], '\r\n', w[2]);
res = tolower(res);
if(bad >< res) exit(0);

# See www.securityfocus.com/bid/481/exploit

check(pattern:"GET", port:port);
check(pattern:"GET ", port:port);