'Verify xst vulns by sending a TRACE request and analyzing the response.'

def audit(self, freq, orig_response):

    if (not self._exec):
        return
    else:
        self._exec = False
        uri = freq.get_url().get_domain_path()
        method = 'TRACE'
        headers = Headers()
        headers['FakeHeader'] = 'XST'
        fr = FuzzableRequest(uri, method=method, headers=headers)
        response = self._uri_opener.send_mutant(fr)
        regex = re.compile('FakeHeader:    *?XST', re.IGNORECASE)
        if regex.search(response.get_body()):
            desc = 'The    web    server    at    "%s"    is    vulnerable    to    Cross    Site    Tracing.'
            desc = (desc % response.get_url())
            v = Vuln.from_fr('Cross    site    tracing    vulnerability', desc, severity.LOW, response.id, self.get_name(), freq)
            om.out.vulnerability(v.get_desc(), severity=v.get_severity())
            self.kb_append(self, 'xst', v)
