mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 09:57:38 +03:00 
			
		
		
		
	Deprecate sqlmap update code, will use pysvn to update from latest development version from subversion repository.
This commit is contained in:
		
							parent
							
								
									9c9988c375
								
							
						
					
					
						commit
						50bbb0cf8a
					
				| 
						 | 
				
			
			@ -196,135 +196,8 @@ def __updateMSSQLXML():
 | 
			
		|||
        infoMsg += "last update"
 | 
			
		||||
        logger.info(infoMsg)
 | 
			
		||||
 | 
			
		||||
def __createFile(pathname, data):
 | 
			
		||||
    mkpath(os.path.dirname(pathname))
 | 
			
		||||
 | 
			
		||||
    fileFP = open(pathname, "wb")
 | 
			
		||||
    fileFP.write(data)
 | 
			
		||||
    fileFP.close()
 | 
			
		||||
 | 
			
		||||
def __extractZipFile(tempDir, zipFile):
 | 
			
		||||
    # Check if the saved binary file is really a ZIP file
 | 
			
		||||
    if zipfile.is_zipfile(zipFile):
 | 
			
		||||
        sqlmapZipFile = zipfile.ZipFile(zipFile)
 | 
			
		||||
    else:
 | 
			
		||||
        raise sqlmapFilePathException, "the downloaded file does not seem to be a ZIP file"
 | 
			
		||||
 | 
			
		||||
    # Extract each file within the ZIP file in the temporary directory
 | 
			
		||||
    for info in sqlmapZipFile.infolist():
 | 
			
		||||
        if info.filename[-1] != '/':
 | 
			
		||||
            data = sqlmapZipFile.read(info.filename)
 | 
			
		||||
            __createFile(os.path.join(tempDir, info.filename), data)
 | 
			
		||||
 | 
			
		||||
def __updateSqlmap():
 | 
			
		||||
    infoMsg = "updating sqlmap"
 | 
			
		||||
    logger.info(infoMsg)
 | 
			
		||||
 | 
			
		||||
    debugMsg = "checking if a new version is available"
 | 
			
		||||
    logger.debug(debugMsg)
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        sqlmapNewestVersion, _ = Request.getPage(url=SQLMAP_VERSION_URL, direct=True)
 | 
			
		||||
    except sqlmapConnectionException, _:
 | 
			
		||||
        __sqlmapPath     = urlparse.urlsplit(SQLMAP_VERSION_URL)
 | 
			
		||||
        __sqlmapHostname = __sqlmapPath[1]
 | 
			
		||||
 | 
			
		||||
        warnMsg  = "sqlmap was unable to connect to %s" % __sqlmapHostname
 | 
			
		||||
        warnMsg += ", check your Internet connection and retry"
 | 
			
		||||
        logger.warn(warnMsg)
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    sqlmapNewestVersion = str(sqlmapNewestVersion).replace("\n", "")
 | 
			
		||||
 | 
			
		||||
    if not re.search("^([\w\.\-]+)$", sqlmapNewestVersion):
 | 
			
		||||
        errMsg = "sqlmap version is in a wrong syntax"
 | 
			
		||||
        logger.error(errMsg)
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    if sqlmapNewestVersion == VERSION:
 | 
			
		||||
        infoMsg = "you are already running sqlmap latest stable version"
 | 
			
		||||
        logger.info(infoMsg)
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    elif sqlmapNewestVersion > VERSION:
 | 
			
		||||
        infoMsg  = "sqlmap latest stable version is %s. " % sqlmapNewestVersion
 | 
			
		||||
        infoMsg += "Going to download it from the SourceForge File List page"
 | 
			
		||||
        logger.info(infoMsg)
 | 
			
		||||
 | 
			
		||||
    elif sqlmapNewestVersion < VERSION:
 | 
			
		||||
        infoMsg  = "you are running a version of sqlmap more updated than "
 | 
			
		||||
        infoMsg += "the latest stable version (%s)" % sqlmapNewestVersion
 | 
			
		||||
        logger.info(infoMsg)
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    sqlmapBinaryStringUrl = SQLMAP_SOURCE_URL % sqlmapNewestVersion
 | 
			
		||||
 | 
			
		||||
    try:
 | 
			
		||||
        sqlmapBinaryString, _ = Request.getPage(url=sqlmapBinaryStringUrl, direct=True)
 | 
			
		||||
    except sqlmapConnectionException, _:
 | 
			
		||||
        __sqlmapPath     = urlparse.urlsplit(sqlmapBinaryStringUrl)
 | 
			
		||||
        __sqlmapHostname = __sqlmapPath[1]
 | 
			
		||||
 | 
			
		||||
        warnMsg  = "sqlmap was unable to connect to %s" % __sqlmapHostname
 | 
			
		||||
        warnMsg += ", check your Internet connection and retry"
 | 
			
		||||
        logger.warn(warnMsg)
 | 
			
		||||
 | 
			
		||||
        return
 | 
			
		||||
 | 
			
		||||
    debugMsg  = 'saving the sqlmap compressed source to a ZIP file into '
 | 
			
		||||
    debugMsg += 'the temporary directory and extract it'
 | 
			
		||||
    logger.debug(debugMsg)
 | 
			
		||||
 | 
			
		||||
    tempDir = tempfile.gettempdir()
 | 
			
		||||
    zipFile = os.path.join(tempDir, "sqlmap-%s.zip" % sqlmapNewestVersion)
 | 
			
		||||
    __createFile(zipFile, sqlmapBinaryString)
 | 
			
		||||
    __extractZipFile(tempDir, zipFile)
 | 
			
		||||
 | 
			
		||||
    # For each file and directory in the temporary directory copy it
 | 
			
		||||
    # to the sqlmap root path and set right permission
 | 
			
		||||
    for root, _, files in os.walk(os.path.join(tempDir, "sqlmap-%s" % sqlmapNewestVersion)):
 | 
			
		||||
        # Just for development release
 | 
			
		||||
        if '.svn' in root:
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        cleanRoot = root.replace(tempDir, "")
 | 
			
		||||
        cleanRoot = cleanRoot.replace("%ssqlmap-%s" % (os.sep, sqlmapNewestVersion), "")
 | 
			
		||||
 | 
			
		||||
        if cleanRoot.startswith(os.sep):
 | 
			
		||||
            cleanRoot = cleanRoot[1:]
 | 
			
		||||
 | 
			
		||||
        for f in files:
 | 
			
		||||
            # Just for development release
 | 
			
		||||
            if f.endswith(".pyc") or f.endswith(".pyo"):
 | 
			
		||||
                continue
 | 
			
		||||
 | 
			
		||||
            srcFile = os.path.join(root, f)
 | 
			
		||||
            dstFile = os.path.join(paths.SQLMAP_ROOT_PATH, os.path.join(cleanRoot, f))
 | 
			
		||||
 | 
			
		||||
            if f == "sqlmap.conf" and os.path.exists(dstFile):
 | 
			
		||||
                infoMsg = "backupping configuration file to '%s.bak'" % dstFile
 | 
			
		||||
                logger.info(infoMsg)
 | 
			
		||||
                shutil.move(dstFile, "%s.bak" % dstFile)
 | 
			
		||||
 | 
			
		||||
            if os.path.exists(dstFile):
 | 
			
		||||
                debugMsg = "replacing file '%s'" % dstFile
 | 
			
		||||
            else:
 | 
			
		||||
                debugMsg = "creating new file '%s'" % dstFile
 | 
			
		||||
 | 
			
		||||
            logger.debug(debugMsg)
 | 
			
		||||
 | 
			
		||||
            mkpath(os.path.dirname(dstFile))
 | 
			
		||||
            shutil.copy(srcFile, dstFile)
 | 
			
		||||
 | 
			
		||||
            if f.endswith(".py"):
 | 
			
		||||
                os.chmod(dstFile, 0755)
 | 
			
		||||
 | 
			
		||||
    infoMsg = "sqlmap updated successfully"
 | 
			
		||||
    logger.info(infoMsg)
 | 
			
		||||
    pass
 | 
			
		||||
 | 
			
		||||
def update():
 | 
			
		||||
    if not conf.updateAll:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -395,10 +395,10 @@ def cmdLineParser():
 | 
			
		|||
                                      "estimated time of arrival")
 | 
			
		||||
 | 
			
		||||
        miscellaneous.add_option("--gpage", dest="googlePage", type="int",
 | 
			
		||||
                               help="Use google dork results from specified page number")
 | 
			
		||||
                                 help="Use google dork results from specified page number")
 | 
			
		||||
 | 
			
		||||
        miscellaneous.add_option("--update", dest="updateAll", action="store_true",
 | 
			
		||||
                                help="Update sqlmap to the latest stable version")
 | 
			
		||||
                                  help="Update Microsoft SQL Server XML signature file")
 | 
			
		||||
 | 
			
		||||
        miscellaneous.add_option("--save", dest="saveCmdline", action="store_true",
 | 
			
		||||
                                 help="Save options on a configuration INI file")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -401,7 +401,7 @@ eta = False
 | 
			
		|||
# Default: 1
 | 
			
		||||
googlePage = 1
 | 
			
		||||
 | 
			
		||||
# Update sqlmap to the latest stable version.
 | 
			
		||||
# Update Microsoft SQL Server XML signature file.
 | 
			
		||||
# Valid: True or False
 | 
			
		||||
updateAll = False
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user