mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-02-09 16:10:35 +03:00
Adding support for CockroachDB (Postgres fork)
This commit is contained in:
parent
4be7c7dcee
commit
20700fd6b9
|
@ -70,6 +70,7 @@ class DBMS_DIRECTORY_NAME(object):
|
||||||
class FORK(object):
|
class FORK(object):
|
||||||
MARIADB = "MariaDB"
|
MARIADB = "MariaDB"
|
||||||
MEMSQL = "MemSQL"
|
MEMSQL = "MemSQL"
|
||||||
|
COCKROACHDB = "CockroachDB"
|
||||||
|
|
||||||
class CUSTOM_LOGGING(object):
|
class CUSTOM_LOGGING(object):
|
||||||
PAYLOAD = 9
|
PAYLOAD = 9
|
||||||
|
|
|
@ -18,7 +18,7 @@ from lib.core.enums import OS
|
||||||
from thirdparty.six import unichr as _unichr
|
from thirdparty.six import unichr as _unichr
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||||
VERSION = "1.4.1.34"
|
VERSION = "1.4.1.35"
|
||||||
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
TYPE = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
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)
|
VERSION_STRING = "sqlmap/%s#%s" % ('.'.join(VERSION.split('.')[:-1]) if VERSION.count('.') > 2 and VERSION.split('.')[-1] == '0' else VERSION, TYPE)
|
||||||
|
|
|
@ -96,6 +96,12 @@ class Fingerprint(GenericFingerprint):
|
||||||
return None
|
return None
|
||||||
|
|
||||||
def getFingerprint(self):
|
def getFingerprint(self):
|
||||||
|
fork = hashDBRetrieve(HASHDB_KEYS.DBMS_FORK)
|
||||||
|
|
||||||
|
if fork is None:
|
||||||
|
fork = inject.checkBooleanExpression("VERSION() LIKE '%MariaDB%'") and FORK.MARIADB or ""
|
||||||
|
hashDBWrite(HASHDB_KEYS.DBMS_FORK, fork)
|
||||||
|
|
||||||
value = ""
|
value = ""
|
||||||
wsOsFp = Format.getOs("web server", kb.headersFp)
|
wsOsFp = Format.getOs("web server", kb.headersFp)
|
||||||
|
|
||||||
|
@ -111,12 +117,10 @@ class Fingerprint(GenericFingerprint):
|
||||||
value += "back-end DBMS: "
|
value += "back-end DBMS: "
|
||||||
actVer = Format.getDbms()
|
actVer = Format.getDbms()
|
||||||
|
|
||||||
_ = hashDBRetrieve(HASHDB_KEYS.DBMS_FORK)
|
|
||||||
if _:
|
|
||||||
actVer += " (%s fork)" % _
|
|
||||||
|
|
||||||
if not conf.extensiveFp:
|
if not conf.extensiveFp:
|
||||||
value += actVer
|
value += actVer
|
||||||
|
if fork:
|
||||||
|
value += " (%s fork)" % fork
|
||||||
return value
|
return value
|
||||||
|
|
||||||
comVer = self._commentCheck()
|
comVer = self._commentCheck()
|
||||||
|
@ -142,6 +146,9 @@ class Fingerprint(GenericFingerprint):
|
||||||
if htmlErrorFp:
|
if htmlErrorFp:
|
||||||
value += "\n%shtml error message fingerprint: %s" % (blank, htmlErrorFp)
|
value += "\n%shtml error message fingerprint: %s" % (blank, htmlErrorFp)
|
||||||
|
|
||||||
|
if fork:
|
||||||
|
value += "\n%sfork fingerprint: %s" % (blank, fork)
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def checkDbms(self):
|
def checkDbms(self):
|
||||||
|
@ -189,9 +196,6 @@ class Fingerprint(GenericFingerprint):
|
||||||
|
|
||||||
return False
|
return False
|
||||||
|
|
||||||
if hashDBRetrieve(HASHDB_KEYS.DBMS_FORK) is None:
|
|
||||||
hashDBWrite(HASHDB_KEYS.DBMS_FORK, inject.checkBooleanExpression("VERSION() LIKE '%MariaDB%'") and FORK.MARIADB or "")
|
|
||||||
|
|
||||||
# reading information_schema on some platforms is causing annoying timeout exits
|
# reading information_schema on some platforms is causing annoying timeout exits
|
||||||
# Reference: http://bugs.mysql.com/bug.php?id=15855
|
# Reference: http://bugs.mysql.com/bug.php?id=15855
|
||||||
|
|
||||||
|
|
|
@ -7,10 +7,14 @@ See the file 'LICENSE' for copying permission
|
||||||
|
|
||||||
from lib.core.common import Backend
|
from lib.core.common import Backend
|
||||||
from lib.core.common import Format
|
from lib.core.common import Format
|
||||||
|
from lib.core.common import hashDBRetrieve
|
||||||
|
from lib.core.common import hashDBWrite
|
||||||
from lib.core.data import conf
|
from lib.core.data import conf
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.enums import DBMS
|
from lib.core.enums import DBMS
|
||||||
|
from lib.core.enums import FORK
|
||||||
|
from lib.core.enums import HASHDB_KEYS
|
||||||
from lib.core.enums import OS
|
from lib.core.enums import OS
|
||||||
from lib.core.session import setDbms
|
from lib.core.session import setDbms
|
||||||
from lib.core.settings import PGSQL_ALIASES
|
from lib.core.settings import PGSQL_ALIASES
|
||||||
|
@ -22,6 +26,12 @@ class Fingerprint(GenericFingerprint):
|
||||||
GenericFingerprint.__init__(self, DBMS.PGSQL)
|
GenericFingerprint.__init__(self, DBMS.PGSQL)
|
||||||
|
|
||||||
def getFingerprint(self):
|
def getFingerprint(self):
|
||||||
|
fork = hashDBRetrieve(HASHDB_KEYS.DBMS_FORK)
|
||||||
|
|
||||||
|
if fork is None:
|
||||||
|
fork = inject.checkBooleanExpression("VERSION() LIKE '%CockroachDB%'") and FORK.COCKROACHDB or ""
|
||||||
|
hashDBWrite(HASHDB_KEYS.DBMS_FORK, fork)
|
||||||
|
|
||||||
value = ""
|
value = ""
|
||||||
wsOsFp = Format.getOs("web server", kb.headersFp)
|
wsOsFp = Format.getOs("web server", kb.headersFp)
|
||||||
|
|
||||||
|
@ -38,6 +48,8 @@ class Fingerprint(GenericFingerprint):
|
||||||
|
|
||||||
if not conf.extensiveFp:
|
if not conf.extensiveFp:
|
||||||
value += DBMS.PGSQL
|
value += DBMS.PGSQL
|
||||||
|
if fork:
|
||||||
|
value += " (%s fork)" % fork
|
||||||
return value
|
return value
|
||||||
|
|
||||||
actVer = Format.getDbms()
|
actVer = Format.getDbms()
|
||||||
|
@ -56,6 +68,9 @@ class Fingerprint(GenericFingerprint):
|
||||||
if htmlErrorFp:
|
if htmlErrorFp:
|
||||||
value += "\n%shtml error message fingerprint: %s" % (blank, htmlErrorFp)
|
value += "\n%shtml error message fingerprint: %s" % (blank, htmlErrorFp)
|
||||||
|
|
||||||
|
if fork:
|
||||||
|
value += "\n%sfork fingerprint: %s" % (blank, fork)
|
||||||
|
|
||||||
return value
|
return value
|
||||||
|
|
||||||
def checkDbms(self):
|
def checkDbms(self):
|
||||||
|
|
|
@ -11,7 +11,6 @@ from lib.core.data import conf
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.enums import DBMS
|
from lib.core.enums import DBMS
|
||||||
from lib.core.enums import OS
|
|
||||||
from lib.core.session import setDbms
|
from lib.core.session import setDbms
|
||||||
from lib.core.settings import VERTICA_ALIASES
|
from lib.core.settings import VERTICA_ALIASES
|
||||||
from lib.request import inject
|
from lib.request import inject
|
||||||
|
|
Loading…
Reference in New Issue
Block a user