mirror of
https://github.com/nmap/nmap.git
synced 2025-12-08 21:51:28 +00:00
Modified multiple scripts that operated against HTTP based services so as to remove false positives that were generated when the target service answers with a 200 response to all requests.
Some scripts that had been previously modified were updated so that the debug output was consistent. A few scripts were calling identify_404 with host.ip as opposed to the proper host object. This has been adjusted as well.
This commit is contained in:
@@ -1,4 +1,7 @@
|
|||||||
# Nmap Changelog ($Id$); -*-text-*-
|
# Nmap Changelog ($Id$); -*-text-*-
|
||||||
|
o [NSOCK] Modified multiple scripts that operated against HTTP based services
|
||||||
|
so as to remove false positives that were generated when the target service
|
||||||
|
answers with a 200 response to all requests. [Tom Sellers]
|
||||||
|
|
||||||
o [NSE] Added metasploit-info script which uses Metasploit RPC service to get
|
o [NSE] Added metasploit-info script which uses Metasploit RPC service to get
|
||||||
information about the remote system. [Aleksandar Nikolic]
|
information about the remote system. [Aleksandar Nikolic]
|
||||||
|
|||||||
@@ -59,9 +59,10 @@ action = function(host, port)
|
|||||||
local output_lines
|
local output_lines
|
||||||
local installation_version
|
local installation_version
|
||||||
|
|
||||||
local _, http_status, _ = http.identify_404( host.ip,port)
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
||||||
|
local _, http_status, _ = http.identify_404(host,port)
|
||||||
if ( http_status == 200 ) then
|
if ( http_status == 200 ) then
|
||||||
stdnse.print_debug(1, "%s:HTTP server always return status 200. Exiting to avoid false positives", SCRIPT_NAME)
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -226,6 +226,13 @@ action = function(host, port)
|
|||||||
local basepath = stdnse.get_script_args("http-default-accounts.basepath") or "/"
|
local basepath = stdnse.get_script_args("http-default-accounts.basepath") or "/"
|
||||||
local output_lns = {}
|
local output_lns = {}
|
||||||
|
|
||||||
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
||||||
|
local _, http_status, _ = http.identify_404(host,port)
|
||||||
|
if ( http_status == 200 ) then
|
||||||
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
--Load fingerprint data or abort
|
--Load fingerprint data or abort
|
||||||
status, fingerprints = load_fingerprints(fingerprint_filename, category)
|
status, fingerprints = load_fingerprints(fingerprint_filename, category)
|
||||||
if(not(status)) then
|
if(not(status)) then
|
||||||
|
|||||||
@@ -81,9 +81,9 @@ including PPPoE credentials, firmware version, model, gateway, dns servers and a
|
|||||||
}
|
}
|
||||||
|
|
||||||
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
||||||
local _, http_status, _ = http.identify_404(host.ip,port)
|
local _, http_status, _ = http.identify_404(host,port)
|
||||||
if ( http_status == 200 ) then
|
if ( http_status == 200 ) then
|
||||||
stdnse.print_debug(1, "%s:Exiting due to ambiguous response from web server. All URIs return status 200", SCRIPT_NAME)
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -49,6 +49,12 @@ action = function(host, port)
|
|||||||
return stdnse.format_output(false, "Unknown pages return a 302 response; unable to check")
|
return stdnse.format_output(false, "Unknown pages return a 302 response; unable to check")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the test
|
||||||
|
if ( result_404 == 200 ) then
|
||||||
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
-- Perform a GET request on the file
|
-- Perform a GET request on the file
|
||||||
result = http.get_url("http://" .. host.ip .. ":" .. port.number .. "/ts/in.cgi?open2")
|
result = http.get_url("http://" .. host.ip .. ":" .. port.number .. "/ts/in.cgi?open2")
|
||||||
if(not(result)) then
|
if(not(result)) then
|
||||||
@@ -73,4 +79,3 @@ action = function(host, port)
|
|||||||
return nil
|
return nil
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -48,6 +48,13 @@ action = function(host, port)
|
|||||||
paths = { paths }
|
paths = { paths }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
||||||
|
local _, http_status, _ = http.identify_404(host,port)
|
||||||
|
if ( http_status == 200 ) then
|
||||||
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
-- fallback to jmx-console
|
-- fallback to jmx-console
|
||||||
paths = paths or {"/jmx-console/"}
|
paths = paths or {"/jmx-console/"}
|
||||||
|
|
||||||
|
|||||||
@@ -122,8 +122,9 @@ end
|
|||||||
action = function(host, port)
|
action = function(host, port)
|
||||||
|
|
||||||
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
||||||
local _, http_status, _ = http.identify_404( host.ip,port)
|
local _, http_status, _ = http.identify_404(host,port)
|
||||||
if ( http_status == 200 ) then
|
if ( http_status == 200 ) then
|
||||||
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
return false
|
return false
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -113,6 +113,13 @@ action = function(host, port)
|
|||||||
return
|
return
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- Identify servers that answer 200 to invalid HTTP requests and exit as these would invalidate the tests
|
||||||
|
local _, http_status, _ = http.identify_404(host,port)
|
||||||
|
if ( http_status == 200 ) then
|
||||||
|
stdnse.print_debug(1, "%s: Exiting due to ambiguous response from web server on %s:%s. All URIs return status 200.", SCRIPT_NAME, host.ip, port.number)
|
||||||
|
return false
|
||||||
|
end
|
||||||
|
|
||||||
-- Silently abort if the server responds as anything different than
|
-- Silently abort if the server responds as anything different than
|
||||||
-- MochiWeb
|
-- MochiWeb
|
||||||
if ( response.header['server'] and
|
if ( response.header['server'] and
|
||||||
|
|||||||
Reference in New Issue
Block a user