mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-02-03 13:14:13 +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):
|
||||
MARIADB = "MariaDB"
|
||||
MEMSQL = "MemSQL"
|
||||
COCKROACHDB = "CockroachDB"
|
||||
|
||||
class CUSTOM_LOGGING(object):
|
||||
PAYLOAD = 9
|
||||
|
|
|
@ -18,7 +18,7 @@ from lib.core.enums import OS
|
|||
from thirdparty.six import unichr as _unichr
|
||||
|
||||
# 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_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)
|
||||
|
|
|
@ -96,6 +96,12 @@ class Fingerprint(GenericFingerprint):
|
|||
return None
|
||||
|
||||
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 = ""
|
||||
wsOsFp = Format.getOs("web server", kb.headersFp)
|
||||
|
||||
|
@ -111,12 +117,10 @@ class Fingerprint(GenericFingerprint):
|
|||
value += "back-end DBMS: "
|
||||
actVer = Format.getDbms()
|
||||
|
||||
_ = hashDBRetrieve(HASHDB_KEYS.DBMS_FORK)
|
||||
if _:
|
||||
actVer += " (%s fork)" % _
|
||||
|
||||
if not conf.extensiveFp:
|
||||
value += actVer
|
||||
if fork:
|
||||
value += " (%s fork)" % fork
|
||||
return value
|
||||
|
||||
comVer = self._commentCheck()
|
||||
|
@ -142,6 +146,9 @@ class Fingerprint(GenericFingerprint):
|
|||
if htmlErrorFp:
|
||||
value += "\n%shtml error message fingerprint: %s" % (blank, htmlErrorFp)
|
||||
|
||||
if fork:
|
||||
value += "\n%sfork fingerprint: %s" % (blank, fork)
|
||||
|
||||
return value
|
||||
|
||||
def checkDbms(self):
|
||||
|
@ -189,9 +196,6 @@ class Fingerprint(GenericFingerprint):
|
|||
|
||||
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
|
||||
# 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 Format
|
||||
from lib.core.common import hashDBRetrieve
|
||||
from lib.core.common import hashDBWrite
|
||||
from lib.core.data import conf
|
||||
from lib.core.data import kb
|
||||
from lib.core.data import logger
|
||||
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.session import setDbms
|
||||
from lib.core.settings import PGSQL_ALIASES
|
||||
|
@ -22,6 +26,12 @@ class Fingerprint(GenericFingerprint):
|
|||
GenericFingerprint.__init__(self, DBMS.PGSQL)
|
||||
|
||||
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 = ""
|
||||
wsOsFp = Format.getOs("web server", kb.headersFp)
|
||||
|
||||
|
@ -38,6 +48,8 @@ class Fingerprint(GenericFingerprint):
|
|||
|
||||
if not conf.extensiveFp:
|
||||
value += DBMS.PGSQL
|
||||
if fork:
|
||||
value += " (%s fork)" % fork
|
||||
return value
|
||||
|
||||
actVer = Format.getDbms()
|
||||
|
@ -56,6 +68,9 @@ class Fingerprint(GenericFingerprint):
|
|||
if htmlErrorFp:
|
||||
value += "\n%shtml error message fingerprint: %s" % (blank, htmlErrorFp)
|
||||
|
||||
if fork:
|
||||
value += "\n%sfork fingerprint: %s" % (blank, fork)
|
||||
|
||||
return value
|
||||
|
||||
def checkDbms(self):
|
||||
|
|
|
@ -11,7 +11,6 @@ from lib.core.data import conf
|
|||
from lib.core.data import kb
|
||||
from lib.core.data import logger
|
||||
from lib.core.enums import DBMS
|
||||
from lib.core.enums import OS
|
||||
from lib.core.session import setDbms
|
||||
from lib.core.settings import VERTICA_ALIASES
|
||||
from lib.request import inject
|
||||
|
|
Loading…
Reference in New Issue
Block a user