From 171ebf2ef64ade48d66ae1e1eeecf05cadc1a407 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Fri, 1 Mar 2024 12:02:04 +0100 Subject: [PATCH] Update of the checksum validation mechanism --- lib/core/common.py | 20 ++++++++++++++++++++ lib/core/settings.py | 2 +- sha256sums.txt | 4 ++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/lib/core/common.py b/lib/core/common.py index bccab6c67..00cd99e61 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -1520,6 +1520,7 @@ def setPaths(rootPath): paths.MYSQL_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "mysql.xml") paths.ORACLE_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "oracle.xml") paths.PGSQL_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "postgresql.xml") + paths.DIGEST_FILE = os.path.join(paths.SQLMAP_ROOT_PATH, "sha256sums.txt") for path in paths.values(): if any(path.endswith(_) for _ in (".txt", ".xml", ".tx_")): @@ -5591,3 +5592,22 @@ def chunkSplitPostData(data): retVal += "0\r\n\r\n" return retVal + +def checkSums(): + """ + Validate the content of the digest file (i.e. sha256sums.txt) + """ + + retVal = True + + for entry in getFileItems(paths.DIGEST_FILE): + match = re.search(r"([0-9a-f]+)\s+([^\s]+)", entry) + if match: + expected, filename = match.groups() + filepath = os.path.join(paths.SQLMAP_ROOT_PATH, filename) + checkFile(filepath) + if not hashlib.sha256(open(filepath, "rb").read()).hexdigest() == expected: + retVal &= False + break + + return retVal diff --git a/lib/core/settings.py b/lib/core/settings.py index df7395abc..8b6bef44b 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -20,7 +20,7 @@ from thirdparty import six from thirdparty.six import unichr as _unichr # sqlmap version (...) -VERSION = "1.8.3.2" +VERSION = "1.8.3.3" 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/sha256sums.txt b/sha256sums.txt index f27862b48..6ff75c348 100644 --- a/sha256sums.txt +++ b/sha256sums.txt @@ -173,7 +173,7 @@ f9c96cd3fe99578bed9d49a8bdf8d76836d320a7c48c56eb0469f48b36775c35 lib/controller 99d0e94dd5fe60137abf48bfa051129fb251f5c40f0f7a270c89fbcb07323730 lib/controller/__init__.py 826c33f1105be4c0985e1bbe1d75bdb009c17815ad6552fc8d9bf39090d3c40f lib/core/agent.py b2d69c99632da5c2acd0c0934e70d55862f1380a3f602cbe7456d617fb9c1fc9 lib/core/bigarray.py -8ef410802052ca28b9f3513859ac2de28769aaab12b254337e0eff02b7cd178e lib/core/common.py +484c6a755451b20a45a2694b168fb279c000fec16ba53489614c90b726d42f98 lib/core/common.py 5c26b0f308266bc3a9679ef837439e38d1dc7a69eac6bd3422280f49aaf114d2 lib/core/compat.py b60c96780cad4a257f91a0611b08cfcc52f242908c5d5ab2bf9034ef07869602 lib/core/convert.py 5e381515873e71c395c77df00bf1dd8c4592afc6210a2f75cbc20daf384e539f lib/core/data.py @@ -195,7 +195,7 @@ bf77f9fc4296f239687297aee1fd6113b34f855965a6f690b52e26bd348cb353 lib/core/profi 4eff81c639a72b261c8ba1c876a01246e718e6626e8e77ae9cc6298b20a39355 lib/core/replication.py bbd1dcda835934728efc6d68686e9b0da72b09b3ee38f3c0ab78e8c18b0ba726 lib/core/revision.py eed6b0a21b3e69c5583133346b0639dc89937bd588887968ee85f8389d7c3c96 lib/core/session.py -5ee74d3884f2b37f06c8e9b26da439ceedde3b641063b4c97364c2d41f7f65cf lib/core/settings.py +dbf74242ba1b3bf6698e0e844dd1bf272d9786a6ca37cba6fa9ec5d5fbac700a lib/core/settings.py 2bec97d8a950f7b884e31dfe9410467f00d24f21b35672b95f8d68ed59685fd4 lib/core/shell.py e90a359b37a55c446c60e70ccd533f87276714d0b09e34f69b0740fd729ddbf8 lib/core/subprocessng.py 54f7c70b4c7a9931f7ff3c1c12030180bde38e35a306d5e343ad6052919974cd lib/core/target.py