From fbf03995e0899cd8a6ef57386d92aa15e906fccd Mon Sep 17 00:00:00 2001 From: dmiller Date: Fri, 8 Nov 2013 21:33:57 +0000 Subject: [PATCH] Allow http-server-header to set http service even without Server header --- scripts/http-server-header.nse | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) 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