()
| 237 | hashDBWrite(HASHDB_KEYS.KB_DYNAMIC_MARKINGS, kb.dynamicMarkings, True) |
| 238 | |
| 239 | def _saveToResultsFile(): |
| 240 | if not conf.resultsFP: |
| 241 | return |
| 242 | |
| 243 | results = {} |
| 244 | techniques = dict((_[1], _[0]) for _ in getPublicTypeMembers(PAYLOAD.TECHNIQUE)) |
| 245 | |
| 246 | for injection in kb.injections + kb.falsePositives: |
| 247 | if injection.place is None or injection.parameter is None: |
| 248 | continue |
| 249 | |
| 250 | key = (injection.place, injection.parameter, ';'.join(injection.notes)) |
| 251 | if key not in results: |
| 252 | results[key] = [] |
| 253 | |
| 254 | results[key].extend(list(injection.data.keys())) |
| 255 | |
| 256 | try: |
| 257 | for key, value in results.items(): |
| 258 | place, parameter, notes = key |
| 259 | line = "%s,%s,%s,%s,%s%s" % (safeCSValue(kb.originalUrls.get(conf.url) or conf.url), place, parameter, "".join(techniques[_][0].upper() for _ in sorted(value)), notes, os.linesep) |
| 260 | conf.resultsFP.write(line) |
| 261 | |
| 262 | conf.resultsFP.flush() |
| 263 | except IOError as ex: |
| 264 | errMsg = "unable to write to the results file '%s' ('%s'). " % (conf.resultsFile, getSafeExString(ex)) |
| 265 | raise SqlmapSystemException(errMsg) |
| 266 | |
| 267 | @stackedmethod |
| 268 | def start(): |
no test coverage detected
searching dependent graphs…