Resume stored DBMS information from HashDB
()
| 488 | _resumeOS() |
| 489 | |
| 490 | def _resumeDBMS(): |
| 491 | """ |
| 492 | Resume stored DBMS information from HashDB |
| 493 | """ |
| 494 | |
| 495 | value = hashDBRetrieve(HASHDB_KEYS.DBMS) |
| 496 | |
| 497 | if not value: |
| 498 | if conf.offline: |
| 499 | errMsg = "unable to continue in offline mode " |
| 500 | errMsg += "because of lack of usable " |
| 501 | errMsg += "session data" |
| 502 | raise SqlmapNoneDataException(errMsg) |
| 503 | else: |
| 504 | return |
| 505 | |
| 506 | dbms = value.lower() |
| 507 | dbmsVersion = [UNKNOWN_DBMS_VERSION] |
| 508 | _ = "(%s)" % ('|'.join(SUPPORTED_DBMS)) |
| 509 | _ = re.search(r"\A%s (.*)" % _, dbms, re.I) |
| 510 | |
| 511 | if _: |
| 512 | dbms = _.group(1).lower() |
| 513 | dbmsVersion = [_.group(2)] |
| 514 | |
| 515 | if conf.dbms: |
| 516 | check = True |
| 517 | for aliases, _, _, _ in DBMS_DICT.values(): |
| 518 | if conf.dbms.lower() in aliases and dbms not in aliases: |
| 519 | check = False |
| 520 | break |
| 521 | |
| 522 | if not check: |
| 523 | message = "you provided '%s' as a back-end DBMS, " % conf.dbms |
| 524 | message += "but from a past scan information on the target URL " |
| 525 | message += "sqlmap assumes the back-end DBMS is '%s'. " % dbms |
| 526 | message += "Do you really want to force the back-end " |
| 527 | message += "DBMS value? [y/N] " |
| 528 | |
| 529 | if not readInput(message, default='N', boolean=True): |
| 530 | conf.dbms = None |
| 531 | Backend.setDbms(dbms) |
| 532 | Backend.setVersionList(dbmsVersion) |
| 533 | else: |
| 534 | infoMsg = "resuming back-end DBMS '%s' " % dbms |
| 535 | logger.info(infoMsg) |
| 536 | |
| 537 | Backend.setDbms(dbms) |
| 538 | Backend.setVersionList(dbmsVersion) |
| 539 | |
| 540 | def _resumeOS(): |
| 541 | """ |
no test coverage detected
searching dependent graphs…