diff --git a/scripts/http-form-brute.nse b/scripts/http-form-brute.nse index ce3a4b0db..dd486e94e 100644 --- a/scripts/http-form-brute.nse +++ b/scripts/http-form-brute.nse @@ -313,6 +313,9 @@ end -- TODO: expire cookies local function update_cookies (old, new) + if not old then + return + end for i, c in ipairs(new) do local add = true for j, oc in ipairs(old) do @@ -414,7 +417,7 @@ Driver = { response = http.get(self.host, self.port, uri, opts) end local rcount = 0 - while response do + while response and response.status do if self.options.is_success and self.options.is_success(response) then -- "log out" opts.cookies = nil @@ -453,7 +456,11 @@ Driver = { login = function (self, username, password) local response, success = self:submit_form(username, password) - if not response then + if response and not response.status then + local err = brute.Error:new(response['status-line'] or "Unknown") + err:setRetry(true) + return false, err + elseif not response then local err = brute.Error:new("Form submission failed") err:setRetry(true) return false, err