':param mutant: A Mutant holding a QsMutant of PostDataMutant, created
using form_pointer_factory
:param combination: A tuple with (user, pass) or a pass if this is a
password only form.'

def _brute_worker(self, mutant, login_failed_result_list, combination):

    if ((mutant.get_url() in self._found) and self._stop_on_first):
        return
    mutant = deepcopy(mutant)
    form = mutant.get_dc()
    self._true_extra_fields(form)
    (user_token, pass_token) = form.get_login_tokens()
    if (user_token is not None):
        (user, pwd) = combination
        form.set_login_username(user)
        form.set_login_password(pwd)
    else:
        user = 'password-only-form'
        pwd = combination
        form.set_login_password(pwd)
    try:
        resp = self._uri_opener.send_mutant(mutant, cookies=False, grep=False)
    except ScanMustStopOnUrlError:
        return
    body = self.clean_body(resp, user, pwd)
    if self._matches_failed_login(body, login_failed_result_list):
        return
    form.set_login_password(rand_alnum(8))
    verif_resp = self._uri_opener.send_mutant(mutant, cookies=False, grep=False)
    body = self.clean_body(verif_resp, user, pwd)
    if self._matches_failed_login(body, login_failed_result_list):
        freq_url = mutant.get_url()
        self._found.add(freq_url)
        if (user_token is not None):
            desc = 'Found    authentication    credentials    to:    "%s".    A    correct    user    and    password    combination    is:    %s/%s'
            desc %= (freq_url, user, pwd)
        else:
            desc = 'Found    authentication    credentials    to:    "%s".    The    correct    password    is:    "%s".'
            desc %= (freq_url, pwd)
        v = Vuln.from_mutant('Guessable    credentials', desc, severity.HIGH, resp.id, self.get_name(), mutant)
        v['user'] = user
        v['pass'] = pwd
        v['response'] = resp
        v['request'] = mutant.get_fuzzable_request()
        kb.kb.append(self, 'auth', v)
        om.out.vulnerability(desc, severity=severity.HIGH)
