def __init__(self): baseGrepPlugin.__init__(self) self._already_reported = scalable_bloomfilter() # regex to split between words self._split_re = re.compile('[^\w]')
def __init__(self): baseDiscoveryPlugin.__init__(self) # internal variables self._exec = True self._already_visited = scalable_bloomfilter() self._first_time = True self._show_remote_server = True # User configured parameters self._db_file = 'plugins' + os.path.sep + 'discovery' + os.path.sep + 'pykto' self._db_file += os.path.sep + 'scan_database.db' self._extra_db_file = 'plugins' + os.path.sep + 'discovery' + os.path.sep self._extra_db_file += 'pykto' + os.path.sep + 'w3af_scan_database.db' self._cgi_dirs = ['/cgi-bin/'] self._admin_dirs = ['/admin/', '/adm/'] self._users = ['adm', 'bin', 'daemon', 'ftp', 'guest', 'listen', 'lp', 'mysql', 'noaccess', 'nobody', 'nobody4', 'nuucp', 'operator', 'root', 'smmsp', 'smtp', 'sshd', 'sys', 'test', 'unknown'] self._nuke = ['/', '/postnuke/', '/postnuke/html/', '/modules/', '/phpBB/', '/forum/'] self._mutate_tests = False self._generic_scan = False self._update_scandb = False self._source = ''
def __init__(self): baseDiscoveryPlugin.__init__(self) self._first_time = True self._fuzzImages = False self._headers = {} self._seen = scalable_bloomfilter()
def __init__(self): baseGrepPlugin.__init__(self) # Compile the XPATH self._tag_xpath = etree.XPath('//object | //applet') self._tag_names = ('object', 'applet') self._already_analyzed = scalable_bloomfilter()
def __init__(self): baseGrepPlugin.__init__(self) self._rss_tag_attr = [('rss', 'version', 'RSS'),# <rss version="..."> ('feed', 'version', 'OPML'),# <feed version="..." ('opml', 'version', 'OPML') # <opml version="..."> ] self._already_inspected = scalable_bloomfilter()
def __init__(self): baseDiscoveryPlugin.__init__(self) # User configured parameters self._wordlist = 'plugins' + os.path.sep + 'discovery' + os.path.sep + 'content_negotiation' self._wordlist += os.path.sep + 'common_filenames.db' # Internal variables self._exec = True self._already_tested_dir = scalable_bloomfilter() self._already_tested_resource = scalable_bloomfilter() self._is_vulnerable_result = None self._to_bruteforce = [] # I want to try 3 times to see if the remote host is vulnerable # detection is not thaaat accurate! self._tries_left = 3
def __init__(self): baseDiscoveryPlugin.__init__(self) # Internal variables self._exec = True self._already_tested = scalable_bloomfilter() self._bad_codes = [ httpConstants.UNAUTHORIZED, httpConstants.NOT_IMPLEMENTED, httpConstants.METHOD_NOT_ALLOWED, httpConstants.FORBIDDEN] # Methods self._dav_methods = [ 'DELETE', 'PROPFIND', 'PROPPATCH', 'COPY', 'MOVE', 'LOCK', 'UNLOCK', 'MKCOL'] self._common_methods = [ 'OPTIONS', 'GET', 'HEAD', 'POST', 'TRACE', 'PUT'] self._uncommon_methods = ['*', 'SUBSCRIPTIONS', 'NOTIFY', 'DEBUG', 'TRACK', 'POLL', 'PIN', 'INVOKE', 'SUBSCRIBE', 'UNSUBSCRIBE'] # Methods taken from http://www.w3.org/Protocols/HTTP/Methods.html self._proposed_methods = [ 'CHECKOUT', 'SHOWMETHOD', 'LINK', 'UNLINK', 'CHECKIN', 'TEXTSEARCH', 'SPACEJUMP', 'SEARCH', 'REPLY'] self._extra_methods = [ 'CONNECT', 'RMDIR', 'MKDIR', 'REPORT', 'ACL', 'DELETE', 'INDEX', 'LABEL', 'INVALID'] self._version_control = [ 'VERSION_CONTROL', 'CHECKIN', 'UNCHECKOUT', 'PATCH', 'MERGE', 'MKWORKSPACE', 'MKACTIVITY', 'BASELINE_CONTROL'] self._supported_methods = self._dav_methods + self._common_methods + self._uncommon_methods self._supported_methods += self._proposed_methods + self._extra_methods self._supported_methods += self._version_control # User configured variables self._exec_one_time = True self._report_dav_only = True
def __init__(self): baseGrepPlugin.__init__(self) # Only generate the lists once. # Adding 0,001% performance ;) self._already_inspected = scalable_bloomfilter() self._wsdl_strings = self._get_WSDL_strings() self._disco_strings = ['disco:discovery ']
def __init__(self): baseDiscoveryPlugin.__init__(self) # Internal variables self._first_exec = True self._already_queried = scalable_bloomfilter() self._can_resolve_domain_names = False self._non_existant_response = None
def __init__(self): baseGrepPlugin.__init__(self) self._tag_names = [] self._tag_names.append('object') self._tag_names.append('applet') self._already_analyzed = scalable_bloomfilter()
def __init__(self): baseDiscoveryPlugin.__init__(self) # Internal variables self._already_visited = scalable_bloomfilter() # User configured parameters self._max_depth = 3
def __init__(self): baseGrepPlugin.__init__(self) # Internal variables self._already_inspected = scalable_bloomfilter() self._autocomplete_forms_xpath = etree.XPath( AUTOCOMPLETE_FORMS_XPATH ) self._pwd_input_xpath = etree.XPath( PWD_INPUT_XPATH ) self._text_input_xpath = etree.XPath( TEXT_INPUT_XPATH )
def __init__(self): baseGrepPlugin.__init__(self) self._already_visited = scalable_bloomfilter() # Added performance by compiling all the regular expressions # before using them. The setup time of the whole plugin raises, # but the execution time is lowered *a lot*. self._compiled_regex_list = [ re.compile(regex, re.IGNORECASE | re.DOTALL) for regex in self._get_indexing_regex() ]
def __init__(self): baseGrepPlugin.__init__(self) self._feed_types = {'rss': 'RSS', # <rss version="..."> 'feed': 'OPML',# <feed version="..." 'opml': 'OPML' # <opml version="..."> } self._already_inspected = scalable_bloomfilter() # Compile the XPATH self._tag_xpath = etree.XPath('//rss | //feed | //opml')
def __init__(self): baseGrepPlugin.__init__(self) # Internal variables self._already_inspected = scalable_bloomfilter() # Create the regular expression to search for AJAX ajax_regex_string = '(XMLHttpRequest|eval\(|ActiveXObject|Msxml2\.XMLHTTP|' ajax_regex_string += 'ActiveXObject|Microsoft\.XMLHTTP)' self._ajax_regex_re = re.compile( ajax_regex_string, re.IGNORECASE )
def __init__(self): baseDiscoveryPlugin.__init__(self) self._already_visited = scalable_bloomfilter() self._first_time = True # This is for the Referer self._headers = {} # User options self._fuzz_images = False self._max_digit_sections = 4
def __init__(self): baseGrepPlugin.__init__(self) self._already_inspected = scalable_bloomfilter() # Add the regex to match something like this: # # $Id: lzio.c,v 1.24 2003/03/20 16:00:56 roberto Exp $ # $Id: file name, version, timestamp, creator Exp $ # regex = "\$.{1,12}: .*? .*? \d{4}[-/]\d{1,2}[-/]\d{1,2}" regex += " \d{1,2}:\d{1,2}:\d{1,2}.*? (.*?) (Exp )?\$" self._regex_list = [re.compile(regex)]
def __init__(self): baseGrepPlugin.__init__(self) self._comments = {} self._search404 = False self._interesting_words = {'user':None, 'pass':None, 'microsoft':None, 'visual':None, 'linux':None, 'source':None, 'author':None, 'release':None, 'version':None, 'verify-v1':'Google Sitemap' } self._already_inspected = scalable_bloomfilter() '''
def __init__(self): baseGrepPlugin.__init__(self) self._already_inspected = scalable_bloomfilter() # re that searches for #GET / HTTP/1.0 self._re_request = re.compile('[a-zA-Z]{3,6} .*? HTTP/1.[01]') # re that searches for #HTTP/1.1 200 OK self._re_response = re.compile('HTTP/1.[01] [0-9][0-9][0-9] [a-zA-Z]*')
def __init__(self): baseGrepPlugin.__init__(self) # For more info regarding this regular expression, please see: # https://sourceforge.net/mailarchive/forum.php?thread_name=1955593874.20090122023644%40 #mlists.olympos.org&forum_name=w3af-develop regex_str = '(?<!\.)(?<!\d)(?:(?:10|127)\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)|192\.168|169\.' regex_str += '254|172\.0?(?:1[6-9]|2[0-9]|3[01]))(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-' regex_str += '9]?)){2}(?!\d)(?!\.)' self._private_ip_address = re.compile(regex_str) self._regex_list = [self._private_ip_address ] self._already_inspected = scalable_bloomfilter()
def test_bloom_string(self): f = scalable_bloomfilter(mode=scalable_bloomfilter.SMALL_SET_GROWTH) for i in xrange(0, 10000): rnd = "".join(random.choice(string.letters) for i in xrange(40)) _ = f.add(rnd) self.assertEqual(rnd in f, True) for i in string.letters: self.assertEqual(i in f, False) self.assertEqual(rnd in f, True)
def __init__(self): baseGrepPlugin.__init__(self) vsRegex = r'<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value=".*?" />' self._viewstate = re.compile( vsRegex, re.IGNORECASE|re.DOTALL) evRegex = r'<input type="hidden" name="__EVENTVALIDATION" ' evRegex += 'id="__EVENTVALIDATION" value=".*?" />' self._eventvalidation = re.compile( evRegex, re.IGNORECASE|re.DOTALL) encryptedVsRegex = r'<input type="hidden" name="__VIEWSTATEENCRYPTED" ' encryptedVsRegex += 'id="__VIEWSTATEENCRYPTED" value=".*?" />' self._encryptedVs = re.compile( encryptedVsRegex, re.IGNORECASE|re.DOTALL) self._already_reported = scalable_bloomfilter()
def __init__(self): baseDiscoveryPlugin.__init__(self) # Internal variables self._compiled_ignore_re = None self._compiled_follow_re = None self._broken_links = disk_set() self._fuzzable_reqs = disk_set() self._first_run = True self._known_variants = variant_db() self._already_filled_form = scalable_bloomfilter() # User configured variables self._ignore_regex = '' self._follow_regex = '.*' self._only_forward = False self._compileRE()
def test_bloom_int(self): f = scalable_bloomfilter(mode=scalable_bloomfilter.SMALL_SET_GROWTH) for i in xrange(0, 10000): _ = f.add(i) for i in xrange(0, 10000): self.assertEqual(i in f, True) for i in xrange(0, 10000 / 2): r = random.randint(0, 10000 - 1) self.assertEqual(r in f, True) for i in xrange(0, 10000 / 2): r = random.randint(10000, 10000 * 2) self.assertEqual(r in f, False)
def __init__(self): baseDiscoveryPlugin.__init__(self) # Internal variables self._compiled_ignore_re = None self._compiled_follow_re = None self._brokenLinks = [] self._fuzzableRequests = [] self._first_run = True # TODO: param 'text_factory' *MUST* be removed when the toolkit fully # supports unicode self._already_crawled = disk_list(text_factory=str) self._already_filled_form = scalable_bloomfilter() # User configured variables self._ignore_regex = '' self._follow_regex = '.*' self._only_forward = False self._compileRE()
def __init__( self, test_db=[] ): # # Set the opener, I need it to perform some tests and gain # the knowledge about the server's 404 response bodies. # self._uri_opener = None # # Internal variables # self._already_analyzed = False self._404_bodies = [] self._lock = thread.allocate_lock() self._fingerprinted_paths = scalable_bloomfilter() # it is OK to store 500 here, I'm only storing int as the key, and bool as the value. self.is_404_LRU = LRU(500) self._test_db = test_db self._test_db_index = 0
def __init__(self): baseGrepPlugin.__init__(self) self._comments = {} self._search404 = False self._interesting_words = { "user": None, "pass": None, "microsoft": None, "visual": None, "linux": None, "source": None, "author": None, "release": None, "version": None, "verify-v1": "Google Sitemap", } self._already_inspected = scalable_bloomfilter() """
def __init__(self): baseDiscoveryPlugin.__init__(self) self._exec = True # Already analyzed extensions self._already_analyzed_ext = scalable_bloomfilter() # This is a list of hashes and description of the egg for every PHP version. self._egg_DB = {} self._egg_DB["4.1.2"] = [ ("744aecef04f9ed1bc39ae773c40017d1", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("85be3b4be7bfe839cbb3b4f2d30ff983", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.2.2"] = [ ("758ccaa9094cdeedcfc60017e768137e", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("85be3b4be7bfe839cbb3b4f2d30ff983", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.3.10"] = [ ("1e8fe4ae1bf06be222c1643d32015f0c", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("a57bd73e27be03a62dd6b3e1b537a72c", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.3.10-18"] = [ ("1e8fe4ae1bf06be222c1643d32015f0c", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.3.11"] = [ ("1e8fe4ae1bf06be222c1643d32015f0c", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("a8ad323e837fa00771eda6b709f40e37", "PHP Logo 2"), ("a8ad323e837fa00771eda6b709f40e37", "Zend Logo") ] self._egg_DB["4.3.2"] = [ ("8a8b4a419103078d82707cf68226a482", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("a57bd73e27be03a62dd6b3e1b537a72c", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.3.8"] = [ ("96714a0fbe23b5c07c8be343adb1ba90", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("a57bd73e27be03a62dd6b3e1b537a72c", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.3.9"] = [ ("f9b56b361fafd28b668cc3498425a23b", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB['4.3.10'] = [ ('7b27e18dc6f846b80e2f29ecf67e4133', 'PHP Logo'), ('43af90bcfa66f16af62744e8c599703d', 'Zend Logo'), ('b233cc756b06655f47489aa2779413d7', 'PHP Credits'), ('185386dd4b2eff044bd635d22ae7dd9e', 'PHP Logo 2')] self._egg_DB["4.4.0"] = [ ("ddf16ec67e070ec6247ec1908c52377e", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.4.0 for Windows"] = [ ("6d974373683ecfcf30a7f6873f2d234a", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.4.4"] = [ ("bed7ceff09e9666d96fdf3518af78e0e", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.4.4-8+etch6"] = [ ("31a2553efc348a21b85e606e5e6c2424", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["4.4.7"] = [ ("72b7ad604fe1362f1e8bf4f6d80d4edc", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB['4.4.7, PleskWin, ASP.NET'] = [ ('b8477b9b88e90f12e3200660a70eb765', 'Zend Logo'), ('b8477b9b88e90f12e3200660a70eb765', 'PHP Credits'), ('b8477b9b88e90f12e3200660a70eb765', 'PHP Logo 2'), ('b8477b9b88e90f12e3200660a70eb765', 'PHP Logo')] self._egg_DB["4.4.8"] = [ ("4cdfec8ca11691a46f4f63839e559fc5", "PHP Credits"), ("11b9cfe306004fce599a1f8180b61266", "PHP Logo"), ("4b2c92409cf0bcf465d199e93a15ac3f", "PHP Logo 2"), ("da2dae87b166b7709dbd4061375b74cb", "Zend Logo") ] self._egg_DB["5.0.3"] = [ ("def61a12c3b0a533146810403d325451", "PHP Credits"), ("8ac5a686135b923664f64fe718ea55cd", "PHP Logo"), ("37e194b799d4aaff10e39c4e3b2679a2", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.1.1"] = [ ("5518a02af41478cfc492c930ace45ae5", "PHP Credits"), ("8ac5a686135b923664f64fe718ea55cd", "PHP Logo"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB['5.1.2'] = [ ('b83433fb99d0bef643709364f059a44a', 'PHP Credits'), ('8ac5a686135b923664f64fe718ea55cd', 'PHP Logo'), ('4b2c92409cf0bcf465d199e93a15ac3f', 'PHP Logo 2'), ('7675f1d01c927f9e6a4752cf182345a2', 'Zend Logo') ] self._egg_DB["5.1.6"] = [ ("4b689316409eb09b155852e00657a0ae", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.0"] = [ ("e566715bcb0fd2cb1dc43ed076c091f1", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.0-8+etch10"] = [ ("e566715bcb0fd2cb1dc43ed076c091f1", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.0-8+etch7"] = [ ("307f5a1c02155ca38744647eb94b3543", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.1"] = [ ("d3894e19233d979db07d623f608b6ece", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.2"] = [ ("56f9383587ebcc94558e11ec08584f05", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.3-1+b1"] = [ ("c37c96e8728dc959c55219d47f2d543f", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.4"] = [ ("74c33ab9745d022ba61bc43a5db717eb", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.5"] = [ ("f26285281120a2296072f21e21e7b4b0", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.4-2ubuntu5.3"] = [ ("f26285281120a2296072f21e21e7b4b0", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.5-3"] = [ ("b7e4385bd7f07e378d92485b4722c169", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("0152ed695f4291488741d98ba066d280", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.6"] = [ ("bbd44c20d561a0fc5a4aa76093d5400f", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB["5.2.6RC4-pl0-gentoo"] = [ ("d03b2481f60d9e64cb5c0f4bd0c87ec1", "PHP Credits"), ("c48b07899917dfb5d591032007041ae3", "PHP Logo"), ("50caaf268b4f3d260d720a1a29c5fe21", "PHP Logo 2"), ("7675f1d01c927f9e6a4752cf182345a2", "Zend Logo") ] self._egg_DB['5.2.8-pl1-gentoo'] = [ ('c48b07899917dfb5d591032007041ae3', 'PHP Logo'), ('40410284d460552a6c9e10c1f5ae7223', 'PHP Credits'), ('50caaf268b4f3d260d720a1a29c5fe21', 'PHP Logo 2'), ('7675f1d01c927f9e6a4752cf182345a2', 'Zend Logo')] self._egg_DB['5.2.14'] = [ ('935b67af76c36bd96e59cf6bc158389a', 'PHP Credits')]
def __init__(self): baseDiscoveryPlugin.__init__(self) # Internal variables self._analyzed_dirs = scalable_bloomfilter() self._compile_DVCS_RE()
def __init__(self): baseAuditPlugin.__init__(self) # Internal variables self._already_tested_dirs = scalable_bloomfilter()