Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 6632aa7

Browse files
committed
some more refactoring
1 parent 32ca99d commit 6632aa7

5 files changed

Lines changed: 77 additions & 81 deletions

File tree

lib/core/common.py

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -374,14 +374,11 @@ def setArch():
374374
_ = readInput(msg, default='1')
375375

376376
if isinstance(_, basestring) and _.isdigit() and int(_) in ( 1, 2 ):
377-
if int(_) == 1:
378-
kb.arch = 32
379-
else:
380-
kb.arch = 64
377+
kb.arch = 32 if int(_) == 1 else 64
381378

382379
break
383380
else:
384-
warnMsg = "invalid value, valid values are 1 and 2"
381+
warnMsg = "invalid value. Valid values are 1 and 2"
385382
logger.warn(warnMsg)
386383

387384
return kb.arch
@@ -482,10 +479,8 @@ def isVersionWithin(versionList):
482479
if Backend.getVersionList() is None:
483480
return False
484481

485-
for dbmsVersion in Backend.getVersionList():
486-
if dbmsVersion == UNKNOWN_DBMS_VERSION:
487-
continue
488-
elif dbmsVersion in versionList:
482+
for _ in Backend.getVersionList():
483+
if _ != UNKNOWN_DBMS_VERSION and _ in versionList:
489484
return True
490485

491486
return False

lib/parse/banner.py

Lines changed: 32 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -30,64 +30,64 @@ class MSSQLBannerHandler(ContentHandler):
3030
def __init__(self, banner, info):
3131
ContentHandler.__init__(self)
3232

33-
self.__banner = sanitizeStr(banner)
34-
self.__inVersion = False
35-
self.__inServicePack = False
36-
self.__release = None
37-
self.__version = ""
38-
self.__versionAlt = None
39-
self.__servicePack = ""
40-
self.__info = info
41-
42-
def __feedInfo(self, key, value):
33+
self._banner = sanitizeStr(banner)
34+
self._inVersion = False
35+
self._inServicePack = False
36+
self._release = None
37+
self._version = ""
38+
self._versionAlt = None
39+
self._servicePack = ""
40+
self._info = info
41+
42+
def _feedInfo(self, key, value):
4343
value = sanitizeStr(value)
4444

4545
if value in ( None, "None" ):
4646
return
4747

48-
self.__info[key] = value
48+
self._info[key] = value
4949

5050
def startElement(self, name, attrs):
5151
if name == "signatures":
52-
self.__release = sanitizeStr(attrs.get("release"))
52+
self._release = sanitizeStr(attrs.get("release"))
5353

5454
elif name == "version":
55-
self.__inVersion = True
55+
self._inVersion = True
5656

5757
elif name == "servicepack":
58-
self.__inServicePack = True
58+
self._inServicePack = True
5959

6060
def characters(self, data):
61-
if self.__inVersion:
62-
self.__version += sanitizeStr(data)
63-
elif self.__inServicePack:
64-
self.__servicePack += sanitizeStr(data)
61+
if self._inVersion:
62+
self._version += sanitizeStr(data)
63+
elif self._inServicePack:
64+
self._servicePack += sanitizeStr(data)
6565

6666
def endElement(self, name):
6767
if name == "signature":
68-
for version in (self.__version, self.__versionAlt):
68+
for version in (self._version, self._versionAlt):
6969
regObj = getCompiledRegex(" %s[\.\ ]+" % version)
70-
if version and regObj.search(self.__banner):
71-
self.__feedInfo("dbmsRelease", self.__release)
72-
self.__feedInfo("dbmsVersion", self.__version)
73-
self.__feedInfo("dbmsServicePack", self.__servicePack)
70+
if version and regObj.search(self._banner):
71+
self._feedInfo("dbmsRelease", self._release)
72+
self._feedInfo("dbmsVersion", self._version)
73+
self._feedInfo("dbmsServicePack", self._servicePack)
7474
break
7575

76-
self.__version = ""
77-
self.__versionAlt = None
78-
self.__servicePack = ""
76+
self._version = ""
77+
self._versionAlt = None
78+
self._servicePack = ""
7979

8080
elif name == "version":
81-
self.__inVersion = False
82-
self.__version = self.__version.replace(" ", "")
81+
self._inVersion = False
82+
self._version = self._version.replace(" ", "")
8383

8484
regObj = getCompiledRegex(r"\A(?P<major>\d+)\.00\.(?P<build>\d+)\Z")
85-
match = regObj.search(self.__version)
86-
self.__versionAlt = "%s.0.%s.0" % (match.group('major'), match.group('build')) if match else None
85+
match = regObj.search(self._version)
86+
self._versionAlt = "%s.0.%s.0" % (match.group('major'), match.group('build')) if match else None
8787

8888
elif name == "servicepack":
89-
self.__inServicePack = False
90-
self.__servicePack = self.__servicePack.replace(" ", "")
89+
self._inServicePack = False
90+
self._servicePack = self._servicePack.replace(" ", "")
9191

9292
def bannerParser(banner):
9393
"""

lib/parse/handler.py

Lines changed: 36 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -21,60 +21,60 @@ class FingerprintHandler(ContentHandler):
2121
def __init__(self, banner, info):
2222
ContentHandler.__init__(self)
2323

24-
self.__banner = sanitizeStr(banner)
25-
self.__regexp = None
26-
self.__match = None
27-
self.__dbmsVersion = None
28-
self.__techVersion = None
29-
self.__info = info
30-
31-
def __feedInfo(self, key, value):
24+
self._banner = sanitizeStr(banner)
25+
self._regexp = None
26+
self._match = None
27+
self._dbmsVersion = None
28+
self._techVersion = None
29+
self._info = info
30+
31+
def _feedInfo(self, key, value):
3232
value = sanitizeStr(value)
3333

3434
if value in ( None, "None" ):
3535
return
3636

3737
if key == "dbmsVersion":
38-
self.__info[key] = value
38+
self._info[key] = value
3939
else:
40-
if key not in self.__info.keys():
41-
self.__info[key] = set()
40+
if key not in self._info.keys():
41+
self._info[key] = set()
4242

4343
for _ in value.split("|"):
44-
self.__info[key].add(_)
44+
self._info[key].add(_)
4545

4646
def startElement(self, name, attrs):
4747
if name == "regexp":
48-
self.__regexp = sanitizeStr(attrs.get("value"))
49-
_ = re.match("\A[A-Za-z0-9]+", self.__regexp) # minor trick avoiding compiling of large amount of regexes
48+
self._regexp = sanitizeStr(attrs.get("value"))
49+
_ = re.match("\A[A-Za-z0-9]+", self._regexp) # minor trick avoiding compiling of large amount of regexes
5050

51-
if _ and _.group(0).lower() in self.__banner.lower() or not _:
52-
self.__match = re.search(self.__regexp, self.__banner, re.I | re.M)
51+
if _ and _.group(0).lower() in self._banner.lower() or not _:
52+
self._match = re.search(self._regexp, self._banner, re.I | re.M)
5353
else:
54-
self.__match = None
54+
self._match = None
5555

56-
if name == "info" and self.__match:
57-
self.__feedInfo("type", attrs.get("type"))
58-
self.__feedInfo("distrib", attrs.get("distrib"))
59-
self.__feedInfo("release", attrs.get("release"))
60-
self.__feedInfo("codename", attrs.get("codename"))
56+
if name == "info" and self._match:
57+
self._feedInfo("type", attrs.get("type"))
58+
self._feedInfo("distrib", attrs.get("distrib"))
59+
self._feedInfo("release", attrs.get("release"))
60+
self._feedInfo("codename", attrs.get("codename"))
6161

62-
self.__dbmsVersion = sanitizeStr(attrs.get("dbms_version"))
63-
self.__techVersion = sanitizeStr(attrs.get("tech_version"))
64-
self.__sp = sanitizeStr(attrs.get("sp"))
62+
self._dbmsVersion = sanitizeStr(attrs.get("dbms_version"))
63+
self._techVersion = sanitizeStr(attrs.get("tech_version"))
64+
self._sp = sanitizeStr(attrs.get("sp"))
6565

66-
if self.__dbmsVersion.isdigit():
67-
self.__feedInfo("dbmsVersion", self.__match.group(int(self.__dbmsVersion)))
66+
if self._dbmsVersion.isdigit():
67+
self._feedInfo("dbmsVersion", self._match.group(int(self._dbmsVersion)))
6868

69-
if self.__techVersion.isdigit():
70-
self.__feedInfo("technology", "%s %s" % (attrs.get("technology"), self.__match.group(int(self.__techVersion))))
69+
if self._techVersion.isdigit():
70+
self._feedInfo("technology", "%s %s" % (attrs.get("technology"), self._match.group(int(self._techVersion))))
7171
else:
72-
self.__feedInfo("technology", attrs.get("technology"))
72+
self._feedInfo("technology", attrs.get("technology"))
7373

74-
if self.__sp.isdigit():
75-
self.__feedInfo("sp", "Service Pack %s" % self.__match.group(int(self.__sp)))
74+
if self._sp.isdigit():
75+
self._feedInfo("sp", "Service Pack %s" % self._match.group(int(self._sp)))
7676

77-
self.__regexp = None
78-
self.__match = None
79-
self.__dbmsVersion = None
80-
self.__techVersion = None
77+
self._regexp = None
78+
self._match = None
79+
self._dbmsVersion = None
80+
self._techVersion = None

xml/banner/cookie.xml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,4 +30,8 @@
3030
<regexp value="JServSessionId">
3131
<info technology="Apache|JSP"/>
3232
</regexp>
33+
34+
<regexp value="CFID|CFTOKEN|CFMAGIC">
35+
<info technology="ColdFusion"/>
36+
</regexp>
3337
</root>

xml/errors.xml

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,7 @@
4848
<dbms value="IBM DB2">
4949
<error regexp="CLI Driver.*DB2"/>
5050
<error regexp="DB2 SQL error"/>
51-
<error regexp="db2_connect\("/>
52-
<error regexp="db2_exec\("/>
53-
<error regexp="db2_execute\("/>
54-
<error regexp="db2_fetch_"/>
51+
<error regexp="db2_\w+\("/>
5552
</dbms>
5653

5754
<!-- Informix -->

0 commit comments

Comments
 (0)