Returns payload with a replaced late tags (e.g. SLEEPTIME)
(self, payload)
| 405 | return payload |
| 406 | |
| 407 | def adjustLateValues(self, payload): |
| 408 | """ |
| 409 | Returns payload with a replaced late tags (e.g. SLEEPTIME) |
| 410 | """ |
| 411 | |
| 412 | if payload: |
| 413 | for match in re.finditer(r"(?s)%s(.*?)%s" % (BOUNDED_BASE64_MARKER, BOUNDED_BASE64_MARKER), payload): |
| 414 | _ = encodeBase64(match.group(1), binary=False, encoding=conf.encoding or UNICODE_ENCODING, safe=conf.base64Safe) |
| 415 | payload = payload.replace(match.group(0), _) |
| 416 | |
| 417 | payload = payload.replace(SLEEP_TIME_MARKER, str(conf.timeSec)) |
| 418 | payload = payload.replace(SINGLE_QUOTE_MARKER, "'") |
| 419 | |
| 420 | for _ in set(re.findall(r"\[RANDNUM(?:\d+)?\]", payload, re.I)): |
| 421 | payload = payload.replace(_, str(randomInt())) |
| 422 | |
| 423 | for _ in set(re.findall(r"\[RANDSTR(?:\d+)?\]", payload, re.I)): |
| 424 | payload = payload.replace(_, randomStr()) |
| 425 | |
| 426 | if hashDBRetrieve(HASHDB_KEYS.DBMS_FORK) in (FORK.MEMSQL, FORK.TIDB, FORK.DRIZZLE): |
| 427 | payload = re.sub(r"(?i)\bORD\(", "ASCII(", payload) |
| 428 | payload = re.sub(r"(?i)\bMID\(", "SUBSTR(", payload) |
| 429 | payload = re.sub(r"(?i)\bNCHAR\b", "CHAR", payload) |
| 430 | elif hashDBRetrieve(HASHDB_KEYS.DBMS_FORK) in (FORK.DM8,): |
| 431 | payload = re.sub(r"(?i)\bSUBSTRC\(", "SUBSTR(", payload) |
| 432 | if "SYS.USER$" in payload: |
| 433 | payload = re.sub(r"(?i)\bSYS.USER\$", "DBA_USERS", payload) |
| 434 | payload = re.sub(r"(?i)\bNAME\b", "USERNAME", payload) |
| 435 | |
| 436 | # NOTE: https://github.com/sqlmapproject/sqlmap/issues/5057 |
| 437 | match = re.search(r"(=0x)(303a303a)3(\d{2,})", payload) |
| 438 | if match: |
| 439 | payload = payload.replace(match.group(0), "%s%s%s" % (match.group(1), match.group(2).upper(), "".join("3%s" % _ for _ in match.group(3)))) |
| 440 | |
| 441 | return payload |
| 442 | |
| 443 | def getComment(self, request): |
| 444 | """ |
no test coverage detected