diff --git a/scripts/http-server-header.nse b/scripts/http-server-header.nse index 629175913..bb5be977a 100644 --- a/scripts/http-server-header.nse +++ b/scripts/http-server-header.nse @@ -30,22 +30,25 @@ action = function(host, port) local status, result = comm.tryssl(host, port, "GET / HTTP/1.0\r\n\r\n", {proto=port.protocol, timeout=5000}) - - if (not status) then - return nil - end - local http_server = string.match(result, "\nServer:%s*(.-)\r?\n") - if http_server == nil then + if (not status) then return nil end port.version = port.version or {} - + + if string.match(result, "^HTTP/1.[01] %d%d%d") then + port.version.service = "http" + else + return nil + end + + local http_server = string.match(result, "\nServer:%s*(.-)\r?\n") + if port.version.product == nil then port.version.product = http_server end nmap.set_port_version(host, port, "hardmatched") - - return + + return end