diff --git a/data/txt/sha256sums.txt b/data/txt/sha256sums.txt index 84b7bb6a9..fdd497b0e 100644 --- a/data/txt/sha256sums.txt +++ b/data/txt/sha256sums.txt @@ -175,7 +175,7 @@ bdd1b5b3eb42cffdc1be78b8fe4e1bb2ec17cd86440a7aeb08fc599205089e94 lib/core/decor 9219f0bd659e4e22f4238ca67830adcb1e86041ce7fd3a8ae0e842f2593ae043 lib/core/defaults.py 123859300c89a741009f679459291d6028968c609c0c3f485b3fc5cd616065f0 lib/core/dicts.py 65fb5a2fc7b3bb502cc2db684370f213ab76bff875f3cf72ef2b9ace774efda9 lib/core/dump.py -0e28c66ea9dfa1b721cfca63c364bdc139f53ebc8f9c57126b0af7dc6b433dcc lib/core/enums.py +20cae8064045fbb3a257bca27cf90fad6972cc3307608f2c67c29c34a0583d58 lib/core/enums.py 64bf6a5c2e456306a7b4f4c51f077412daf6c697fed232d8e23b77fd1a4c736e lib/core/exception.py 93c256111dc753967169988e1289a0ea10ec77bfb8e2cbd1f6725e939bfbc235 lib/core/gui.py 1d6e741e19e467650dce2ca84aa824d6df68ff74aedbe4afa8dbdb0193d94918 lib/core/__init__.py @@ -188,7 +188,7 @@ c6a182f6b7d3b0ad6f0888ea2a4de4148f0770549038d7de8bc3267b4c6635f7 lib/core/readl 63ae69713c6ea9abfa10e71dfab8f2dcf42432177a38d2c1e98785bf1468674c lib/core/replication.py 5bad5bc7115051cef7b84efa73fbafbf5e1db46eef32a445056b56cda750b66f lib/core/revision.py 0dcb52c9c76a4b0acf2e9038f7d8f08c14543cef3cf7032831c6c0a99376ad24 lib/core/session.py -f2f4ae2166c3ff771baffaf5c4540e273ed6b583254a55b7a80adc160b7a6396 lib/core/settings.py +0bbe808ad64238a5105f754f552bbb45baa0b5075923a2ee4df2aca7dfc3a640 lib/core/settings.py a1e4f2860bffc73bbf2e5db293fa49dcb600ea35f950cda43dc953b3160ab3db lib/core/shell.py 841716e87b90a3b598515910841f7cf8d33bb87c24a27fba1a80e36a831cbcd7 lib/core/subprocessng.py 9731092f195e346716929323ea3c93247b23b9b92b0f32d3fd0acc3adf9876cc lib/core/target.py @@ -406,7 +406,7 @@ eb59dd2ce04fa676375166549b532e0a5b6cb4c1666b7b2b780446d615aefb07 plugins/dbms/m 057180682be97f3604e9f8e6bd160080a3ae154e45417ad71735c3a398ed4dfd plugins/dbms/oracle/connector.py 78e46d8d3635df6320cb6681b15f8cfaa6b5a99d6d2faf4a290a78e0c34b4431 plugins/dbms/oracle/enumeration.py 742ad0eb5c11920952314caaf85bb8d1e617c68b7ba6564f66bce4a8630219e7 plugins/dbms/oracle/filesystem.py -14efe3828c8693952bf9d9e2925091a5b4b6862a242b943525c268a3bc4735b9 plugins/dbms/oracle/fingerprint.py +43a7237962b33272676453fe459a2c961cc01487fe1357868c6c399a444d7729 plugins/dbms/oracle/fingerprint.py 04653ad487de6927e9fcd29e8c5668da8210a02ad3d4ac89707bd1c38307c9b5 plugins/dbms/oracle/__init__.py d5c9bba081766f14d14e2898d1a041f97961bebac3cf3e891f8942b31c28b47e plugins/dbms/oracle/syntax.py 4c83f4d043e5492b0b0ec1db677cbc61f450c8bd6f2314ee8cb4555b00bb64a6 plugins/dbms/oracle/takeover.py diff --git a/lib/core/enums.py b/lib/core/enums.py index 16a32d044..a5ed9fef6 100644 --- a/lib/core/enums.py +++ b/lib/core/enums.py @@ -107,6 +107,7 @@ class FORK(object): IRIS = "Iris" YUGABYTEDB = "YugabyteDB" OPENGAUSS = "OpenGauss" + DM8 = "DM8" class CUSTOM_LOGGING(object): PAYLOAD = 9 diff --git a/lib/core/settings.py b/lib/core/settings.py index 22b4c5cbc..3bad8ddb1 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import OS from thirdparty import six # sqlmap version (...) -VERSION = "1.9.5.4" +VERSION = "1.9.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) diff --git a/plugins/dbms/oracle/fingerprint.py b/plugins/dbms/oracle/fingerprint.py index 03e4e2dce..9f59bc05d 100644 --- a/plugins/dbms/oracle/fingerprint.py +++ b/plugins/dbms/oracle/fingerprint.py @@ -9,10 +9,14 @@ import re 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.session import setDbms from lib.core.settings import ORACLE_ALIASES from lib.request import inject @@ -23,6 +27,16 @@ class Fingerprint(GenericFingerprint): GenericFingerprint.__init__(self, DBMS.ORACLE) def getFingerprint(self): + fork = hashDBRetrieve(HASHDB_KEYS.DBMS_FORK) + + if fork is None: + if inject.checkBooleanExpression("NULL_EQU(NULL,NULL)=1"): + fork = FORK.DM8 + else: + fork = "" + + hashDBWrite(HASHDB_KEYS.DBMS_FORK, fork) + value = "" wsOsFp = Format.getOs("web server", kb.headersFp) @@ -39,6 +53,8 @@ class Fingerprint(GenericFingerprint): if not conf.extensiveFp: value += DBMS.ORACLE + if fork: + value += " (%s fork)" % fork return value actVer = Format.getDbms() @@ -57,6 +73,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):