@@ -130,32 +130,34 @@ def formatDBMSfp(versions=None):
130130 return "%s %s" % (kb .dbms , " and " .join ([version for version in versions ]))
131131
132132
133- def __formatFingerprintString (values , chain = "or " ):
133+ def __formatFingerprintString (values , chain = " or " ):
134134 string = "|" .join ([v for v in values ])
135- return string .replace ("|" , " %s " % chain )
135+ return string .replace ("|" , chain )
136136
137137
138138def formatFingerprint (target , info ):
139139 """
140140 This function format the back-end operating system fingerprint value
141141 and return its values formatted as a human readable string.
142142
143- Examples of info dictionary:
143+ Example of info (kb.headersFp) dictionary:
144144
145145 {
146- "distrib": set(["2000"]),
147- "dbmsVersion": "8.00.194",
148- "dbmsRelease": "2000",
149- "dbmsServicePack": "0",
150- "type": set(["Windows"])
146+ 'distrib': set(['Ubuntu']),
147+ 'type': set(['Linux']),
148+ 'technology': set(['PHP 5.2.6', 'Apache 2.2.9']),
149+ 'release': set(['8.10'])
151150 }
152151
152+ Example of info (kb.bannerFp) dictionary:
153+
153154 {
154- "distrib": set(["Ubuntu"]),
155- "release": set(["8.10"]),
156- "codename": set(["Intrepid"]),
157- "version": "5.0.67",
158- "type": set(["Linux"])
155+ 'sp': set(['Service Pack 4']),
156+ 'dbmsVersion': '8.00.194',
157+ 'dbmsServicePack': '0',
158+ 'distrib': set(['2000']),
159+ 'dbmsRelease': '2000',
160+ 'type': set(['Windows'])
159161 }
160162
161163 @return: detected back-end operating system based upon fingerprint
@@ -165,25 +167,23 @@ def formatFingerprint(target, info):
165167
166168 infoStr = ""
167169
168- if not info or "type" not in info :
169- return infoStr
170- else :
170+ if info and "type" in info :
171171 infoStr += "%s operating system: %s" % (target , __formatFingerprintString (info ["type" ]))
172172
173- if "distrib" in info :
174- infoStr += " %s" % __formatFingerprintString (info ["distrib" ])
173+ if "distrib" in info :
174+ infoStr += " %s" % __formatFingerprintString (info ["distrib" ])
175175
176- if "release" in info :
177- infoStr += " %s" % __formatFingerprintString (info ["release" ])
176+ if "release" in info :
177+ infoStr += " %s" % __formatFingerprintString (info ["release" ])
178178
179- if "sp" in info :
180- infoStr += " %s" % __formatFingerprintString (info ["sp" ])
179+ if "sp" in info :
180+ infoStr += " %s" % __formatFingerprintString (info ["sp" ])
181181
182- if "codename" in info :
183- infoStr += " (%s)" % __formatFingerprintString (info ["codename" ])
182+ if "codename" in info :
183+ infoStr += " (%s)" % __formatFingerprintString (info ["codename" ])
184184
185185 if "technology" in info :
186- infoStr += "\n web application technology: %s" % __formatFingerprintString (info ["technology" ], "and " )
186+ infoStr += "\n web application technology: %s" % __formatFingerprintString (info ["technology" ], ", " )
187187
188188 return infoStr
189189
0 commit comments