diff --git a/lib/core/common.py b/lib/core/common.py index f060039e6..eb28e355c 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -3347,6 +3347,22 @@ def unhandledExceptionMessage(): return errMsg +def getLatestRevision(): + """ + Retrieves latest revision from the offical repository + """ + + retVal = None + req = urllib2.Request(url="https://raw.githubusercontent.com/sqlmapproject/sqlmap/master/lib/core/settings.py") + + try: + content = urllib2.urlopen(req).read() + retVal = extractRegexResult(r"VERSION\s*=\s*[\"'](?P[\d.]+)", content) + except: + pass + + return retVal + def createGithubIssue(errMsg, excMsg): """ Automatically create a Github issue with unhandled exception information diff --git a/lib/core/settings.py b/lib/core/settings.py index 6f13d38cf..74e88c056 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -19,7 +19,7 @@ from lib.core.enums import DBMS_DIRECTORY_NAME from lib.core.enums import OS # sqlmap version (...) -VERSION = "1.2.7.14" +VERSION = "1.2.7.15" 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/lib/core/update.py b/lib/core/update.py index b9a54e549..e027024e3 100644 --- a/lib/core/update.py +++ b/lib/core/update.py @@ -17,6 +17,7 @@ import zipfile from lib.core.common import dataToStdout from lib.core.common import getSafeExString +from lib.core.common import getLatestRevision from lib.core.common import pollProcess from lib.core.common import readInput from lib.core.data import conf @@ -25,6 +26,7 @@ from lib.core.data import paths from lib.core.revision import getRevisionNumber from lib.core.settings import GIT_REPOSITORY from lib.core.settings import IS_WIN +from lib.core.settings import VERSION from lib.core.settings import ZIPBALL_PAGE from lib.core.settings import UNICODE_ENCODING @@ -39,6 +41,10 @@ def update(): warnMsg += "from GitHub (e.g. 'git clone --depth 1 %s sqlmap')" % GIT_REPOSITORY logger.warn(warnMsg) + if VERSION == getLatestRevision(): + logger.info("already at the latest revision '%s'" % getRevisionNumber()) + return + message = "do you want to try to fetch the latest 'zipball' from repository and extract it (experimental) ? [y/N]" if readInput(message, default='N', boolean=True): directory = os.path.abspath(paths.SQLMAP_ROOT_PATH) diff --git a/txt/checksum.md5 b/txt/checksum.md5 index 81db47e4e..c3b4fe4e9 100644 --- a/txt/checksum.md5 +++ b/txt/checksum.md5 @@ -28,7 +28,7 @@ c7443613a0a2505b1faec931cee2a6ef lib/controller/handler.py 1e5532ede194ac9c083891c2f02bca93 lib/controller/__init__.py 0adf547455a76dc71e6a599e52da1ed9 lib/core/agent.py fd8f239e259afaf5f24bcf34a0ad187f lib/core/bigarray.py -ab2f7ecb7d3dff9afd05675031942e8e lib/core/common.py +5e498b6dd232bca7c698699cf5ceec03 lib/core/common.py 0d082da16c388b3445e656e0760fb582 lib/core/convert.py 9f87391b6a3395f7f50830b391264f27 lib/core/data.py 72016ea5c994a711a262fd64572a0fcd lib/core/datatype.py @@ -48,14 +48,14 @@ c8c386d644d57c659d74542f5f57f632 lib/core/patch.py 0c3eef46bdbf87e29a3f95f90240d192 lib/core/replication.py a7db43859b61569b601b97f187dd31c5 lib/core/revision.py fcb74fcc9577523524659ec49e2e964b lib/core/session.py -2c474df57ac9d142f8747701b70082a5 lib/core/settings.py +5d09048bf6682159e784d762a2772137 lib/core/settings.py dd68a9d02fccb4fa1428b20e15b0db5d lib/core/shell.py a7edc9250d13af36ac0108f259859c19 lib/core/subprocessng.py 95f04c1c1d8c3998d86e1bdf0e12771c lib/core/target.py 72d499ca8d792e90a1ebfb2ad2341a51 lib/core/testing.py de9922a29c71a235cb95a916ff925db2 lib/core/threads.py c40758411bb0bd68764d78e0bb72bd0f lib/core/unescaper.py -9d395b143be295a143eb5c9b926f3569 lib/core/update.py +b35636650cfe721f5cc47fb91737c061 lib/core/update.py e772deb63270375e685fa5a7b775c382 lib/core/wordlist.py 1e5532ede194ac9c083891c2f02bca93 lib/__init__.py 7620f1f4b8791e13c7184c06b5421754 lib/parse/banner.py