From 88f22c34400e870b432e4b1d31e0ae5c60c1c336 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Mon, 12 Jan 2026 21:28:41 +0100 Subject: [PATCH] Heuristic checks for Snowflake implementation (#5980) --- data/txt/sha256sums.txt | 6 +++--- data/xml/errors.xml | 7 +++++++ lib/core/dicts.py | 3 ++- lib/core/settings.py | 2 +- 4 files changed, 13 insertions(+), 5 deletions(-) diff --git a/data/txt/sha256sums.txt b/data/txt/sha256sums.txt index 08de25421..883160555 100644 --- a/data/txt/sha256sums.txt +++ b/data/txt/sha256sums.txt @@ -78,7 +78,7 @@ a7eb4d1bcbdfd155383dcd35396e2d9dd40c2e89ce9d5a02e63a95a94f0ab4ea data/xml/banne e2febc92f9686eacf17a0054f175917b783cc6638ca570435a5203b03245fc18 data/xml/banner/x-aspnet-version.xml 3a440fbbf8adffbe6f570978e96657da2750c76043f8e88a2c269fe9a190778c data/xml/banner/x-powered-by.xml 1ac399c49ce3cb8c0812bb246e60c8a6718226efe89ccd1f027f49a18dbeb634 data/xml/boundaries.xml -47c444f260fcba24bb1f13e3d4819ed846909f8d2b6e715069d6372ea30f026f data/xml/errors.xml +ffb3ce7c98e033b5fb7f392f833aa08781041d958b97c53179d1d667237b51af data/xml/errors.xml cfa1f0557fb71be0631796a4848d17be536e38f94571cf6ef911454fbc6b30d1 data/xml/payloads/boolean_blind.xml f2b711ea18f20239ba9902732631684b61106d4a4271669125a4cf41401b3eaf data/xml/payloads/error_based.xml b0f434f64105bd61ab0f6867b3f681b97fa02b4fb809ac538db382d031f0e609 data/xml/payloads/inline_query.xml @@ -175,7 +175,7 @@ c03dc585f89642cfd81b087ac2723e3e1bb3bfa8c60e6f5fe58ef3b0113ebfe6 lib/core/data. e396b7971d38896e0e20b973a3a6a3fbc3171d080a21bc6e66a65bee452fd69c lib/core/datatype.py e18c0c2c5a57924a623792a48bfd36e98d9bc085f6db61a95fc0dc8a3bcedc0c lib/core/decorators.py 147823c37596bd6a56d677697781f34b8d1d1671d5a2518fbc9468d623c6d07d lib/core/defaults.py -76e2c68051c2c1d811d09eec1ca63bc146f4d047708d6296be1460d047743074 lib/core/dicts.py +62f64070ad11cc2e48cbed81bf2bc2ec3212de990f0d4cf40befc741c8960425 lib/core/dicts.py 143f0b5b30e0f24b3527945879497de1542ba1aee9e6f0f98865e626c4c9317e lib/core/dump.py 1abf1edeacb85eaf5cffd35fcbde4eee2da6f5fc722a8dc1f9287fb55d138418 lib/core/enums.py 5387168e5dfedd94ae22af7bb255f27d6baaca50b24179c6b98f4f325f5cc7b4 lib/core/exception.py @@ -189,7 +189,7 @@ e18c0c2c5a57924a623792a48bfd36e98d9bc085f6db61a95fc0dc8a3bcedc0c lib/core/decor 48797d6c34dd9bb8a53f7f3794c85f4288d82a9a1d6be7fcf317d388cb20d4b3 lib/core/replication.py 3574639db4942d16a2dc0a2f04bb7c0913c40c3862b54d34c44075a760e0c194 lib/core/revision.py 888daba83fd4a34e9503fe21f01fef4cc730e5cde871b1d40e15d4cbc847d56c lib/core/session.py -74d0189039d4de82ee513e5869262257ea9d24b56dd597f4d1b64e47f1c0333f lib/core/settings.py +7012d1e019603ca9db4c3e1d8ebb6defc5425710e711b2ba3e5fb79a2054ab49 lib/core/settings.py cd5a66deee8963ba8e7e9af3dd36eb5e8127d4d68698811c29e789655f507f82 lib/core/shell.py bcb5d8090d5e3e0ef2a586ba09ba80eef0c6d51feb0f611ed25299fbb254f725 lib/core/subprocessng.py d35650179816193164a5f177102f18379dfbe6bb6d40fbb67b78d907b41c8038 lib/core/target.py diff --git a/data/xml/errors.xml b/data/xml/errors.xml index 74555d54a..491373370 100644 --- a/data/xml/errors.xml +++ b/data/xml/errors.xml @@ -237,4 +237,11 @@ + + + + + + + diff --git a/lib/core/dicts.py b/lib/core/dicts.py index 29b249a1a..f4822ceae 100644 --- a/lib/core/dicts.py +++ b/lib/core/dicts.py @@ -290,7 +290,8 @@ HEURISTIC_NULL_EVAL = { DBMS.EXTREMEDB: "NULLIFZERO(hashcode(NULL))", DBMS.RAIMA: "IF(ROWNUMBER()>0,CONVERT(NULL,TINYINT),NULL)", DBMS.VIRTUOSO: "__MAX_NOTNULL(NULL)", - DBMS.CLICKHOUSE: "halfMD5(NULL) IS NULL", + DBMS.CLICKHOUSE: "halfMD5(NULL)", + DBMS.SNOWFLAKE: "BOOLNOT(NULL)", } SQL_STATEMENTS = { diff --git a/lib/core/settings.py b/lib/core/settings.py index 4040711db..c2dc58ff1 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.10.1.29" +VERSION = "1.10.1.30" 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)