'Searches for file upload vulns using a POST to author.dll.
:param freq: A FuzzableRequest'

def audit(self, freq, orig_response):

    domain_path = freq.get_url().get_domain_path()
    if kb.kb.get(self, 'frontpage'):
        msg = 'Not    verifying    if    I    can    upload    files    to:    "%s"    using    author.dll.    Because    I    already    found    a    vulnerability.'
        om.out.debug(msg)
        return
    if (domain_path not in self._already_tested):
        self._already_tested.add(domain_path)
        for _ in xrange(3):
            rand_file = (rand_alpha(5) + '.html')
            rand_path_file = domain_path.url_join(rand_file)
            res = self._uri_opener.GET(rand_path_file)
            if is_404(res):
                upload_id = self._upload_file(domain_path, rand_file)
                self._verify_upload(domain_path, rand_file, upload_id)
                break
        else:
            msg = 'frontpage    plugin    failed    to    find    a    404    page.    This    is    mostly    because    of    an    error    in    404    page    detection.'
            om.out.error(msg)
