From 7b880da8717bba58582e270b74fcf74302823be0 Mon Sep 17 00:00:00 2001 From: dmiller Date: Sat, 8 Sep 2018 23:14:02 +0000 Subject: [PATCH] Avoid printing duplicate ALPN protocol if server forces one --- scripts/tls-alpn.nse | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/scripts/tls-alpn.nse b/scripts/tls-alpn.nse index 25caa906f..67870812e 100644 --- a/scripts/tls-alpn.nse +++ b/scripts/tls-alpn.nse @@ -178,6 +178,7 @@ action = function(host, port) } local chosen = {} + local unique = {} while next(alpn_protos) do -- Send crafted client hello local status, response = client_hello(host, port, alpn_protos) @@ -192,7 +193,10 @@ action = function(host, port) if i > 1 then stdnse.verbose1("Server violates RFC: sent additional protocol %s", p) else - chosen[#chosen+1] = p + if not unique[p] then + chosen[#chosen+1] = p + end + unique[p] = true if not find_and_remove(alpn_protos, p) then stdnse.debug1("Chosen ALPN protocol %s was not offered", p) -- Server is forcing this protocol, no need to continue offering.