mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-22 01:26:42 +03:00
Minor update
This commit is contained in:
parent
35e575c287
commit
452915ed4a
|
@ -56,6 +56,12 @@ class BigArray(list):
|
|||
>>> _[20] = 0
|
||||
>>> _[99999]
|
||||
99999
|
||||
>>> _ += [0]
|
||||
>>> _[100000]
|
||||
0
|
||||
>>> _ = _ + [1]
|
||||
>>> _[-1]
|
||||
1
|
||||
"""
|
||||
|
||||
def __init__(self, items=None):
|
||||
|
@ -69,6 +75,20 @@ class BigArray(list):
|
|||
for item in (items or []):
|
||||
self.append(item)
|
||||
|
||||
def __add__(self, value):
|
||||
retval = BigArray(self)
|
||||
|
||||
for _ in value:
|
||||
retval.append(_)
|
||||
|
||||
return retval
|
||||
|
||||
def __iadd__(self, value):
|
||||
for _ in value:
|
||||
self.append(_)
|
||||
|
||||
return self
|
||||
|
||||
def append(self, value):
|
||||
self.chunks[-1].append(value)
|
||||
|
||||
|
@ -145,7 +165,7 @@ class BigArray(list):
|
|||
self.chunks, self.filenames = state
|
||||
|
||||
def __getitem__(self, y):
|
||||
if y < 0:
|
||||
while y < 0:
|
||||
y += len(self)
|
||||
|
||||
index = y // self.chunk_length
|
||||
|
|
|
@ -19,7 +19,7 @@ from lib.core.enums import OS
|
|||
from thirdparty.six import unichr as _unichr
|
||||
|
||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||
VERSION = "1.5.5.4"
|
||||
VERSION = "1.5.5.5"
|
||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
||||
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
||||
|
@ -106,7 +106,7 @@ FUZZ_UNION_ERROR_REGEX = r"(?i)data\s?type|comparable|compatible|conversion|conv
|
|||
FUZZ_UNION_MAX_COLUMNS = 10
|
||||
|
||||
# Regular expression used for recognition of generic maximum connection messages
|
||||
MAX_CONNECTIONS_REGEX = r"\bmax.+?\bconnection"
|
||||
MAX_CONNECTIONS_REGEX = r"\bmax.{1,100}\bconnection"
|
||||
|
||||
# Maximum consecutive connection errors before asking the user if he wants to continue
|
||||
MAX_CONSECUTIVE_CONNECTION_ERRORS = 15
|
||||
|
|
|
@ -45,10 +45,10 @@ class Fingerprint(GenericFingerprint):
|
|||
# Reference: https://dev.mysql.com/doc/relnotes/mysql/<major>.<minor>/en/
|
||||
|
||||
versions = (
|
||||
(80000, 80021), # MySQL 8.0
|
||||
(80000, 80028), # MySQL 8.0
|
||||
(60000, 60014), # MySQL 6.0
|
||||
(50700, 50731), # MySQL 5.7
|
||||
(50600, 50649), # MySQL 5.6
|
||||
(50700, 50736), # MySQL 5.7
|
||||
(50600, 50652), # MySQL 5.6
|
||||
(50500, 50563), # MySQL 5.5
|
||||
(50400, 50404), # MySQL 5.4
|
||||
(50100, 50174), # MySQL 5.1
|
||||
|
|
|
@ -105,7 +105,7 @@ class Fingerprint(GenericFingerprint):
|
|||
logger.info(infoMsg)
|
||||
|
||||
# Reference: https://en.wikipedia.org/wiki/Oracle_Database
|
||||
for version in ("19c", "18c", "12c", "11g", "10g", "9i", "8i", "7"):
|
||||
for version in ("21c", "19c", "18c", "12c", "11g", "10g", "9i", "8i", "7"):
|
||||
number = int(re.search(r"([\d]+)", version).group(1))
|
||||
output = inject.checkBooleanExpression("%d=(SELECT SUBSTR((VERSION),1,%d) FROM SYS.PRODUCT_COMPONENT_VERSION WHERE ROWNUM=1)" % (number, 1 if number < 10 else 2))
|
||||
|
||||
|
|
|
@ -131,7 +131,9 @@ class Fingerprint(GenericFingerprint):
|
|||
infoMsg = "actively fingerprinting %s" % DBMS.PGSQL
|
||||
logger.info(infoMsg)
|
||||
|
||||
if inject.checkBooleanExpression("SINH(0)=0"):
|
||||
if inject.checkBooleanExpression("GEN_RANDOM_UUID() IS NOT NULL"):
|
||||
Backend.setVersion(">= 13.0")
|
||||
elif inject.checkBooleanExpression("SINH(0)=0"):
|
||||
Backend.setVersion(">= 12.0")
|
||||
elif inject.checkBooleanExpression("SHA256(NULL) IS NULL"):
|
||||
Backend.setVersion(">= 11.0")
|
||||
|
|
Loading…
Reference in New Issue
Block a user