mirror of
				https://github.com/sqlmapproject/sqlmap.git
				synced 2025-11-04 09:57:38 +03:00 
			
		
		
		
	Removing obsolete code
This commit is contained in:
		
							parent
							
								
									bb51c0e41e
								
							
						
					
					
						commit
						6b45199766
					
				| 
						 | 
				
			
			@ -1398,7 +1398,6 @@ def setPaths(rootPath):
 | 
			
		|||
    paths.WORDLIST = os.path.join(paths.SQLMAP_TXT_PATH, "wordlist.tx_")
 | 
			
		||||
    paths.ERRORS_XML = os.path.join(paths.SQLMAP_XML_PATH, "errors.xml")
 | 
			
		||||
    paths.BOUNDARIES_XML = os.path.join(paths.SQLMAP_XML_PATH, "boundaries.xml")
 | 
			
		||||
    paths.LIVE_TESTS_XML = os.path.join(paths.SQLMAP_XML_PATH, "livetests.xml")
 | 
			
		||||
    paths.QUERIES_XML = os.path.join(paths.SQLMAP_XML_PATH, "queries.xml")
 | 
			
		||||
    paths.GENERIC_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "generic.xml")
 | 
			
		||||
    paths.MSSQL_XML = os.path.join(paths.SQLMAP_XML_BANNER_PATH, "mssql.xml")
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -2602,7 +2602,7 @@ def _basicOptionValidation():
 | 
			
		|||
        errMsg = "value for option '--union-char' must be an alpha-numeric value (e.g. 1)"
 | 
			
		||||
        raise SqlmapSyntaxException(errMsg)
 | 
			
		||||
 | 
			
		||||
    if conf.hashFile and any((conf.direct, conf.url, conf.logFile, conf.bulkFile, conf.googleDork, conf.configFile, conf.requestFile, conf.updateAll, conf.smokeTest, conf.liveTest, conf.wizard, conf.dependencies, conf.purge, conf.listTampers)):
 | 
			
		||||
    if conf.hashFile and any((conf.direct, conf.url, conf.logFile, conf.bulkFile, conf.googleDork, conf.configFile, conf.requestFile, conf.updateAll, conf.smokeTest, conf.wizard, conf.dependencies, conf.purge, conf.listTampers)):
 | 
			
		||||
        errMsg = "option '--crack' should be used as a standalone"
 | 
			
		||||
        raise SqlmapSyntaxException(errMsg)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -2669,7 +2669,7 @@ def init():
 | 
			
		|||
 | 
			
		||||
    parseTargetDirect()
 | 
			
		||||
 | 
			
		||||
    if any((conf.url, conf.logFile, conf.bulkFile, conf.requestFile, conf.googleDork, conf.liveTest)):
 | 
			
		||||
    if any((conf.url, conf.logFile, conf.bulkFile, conf.requestFile, conf.googleDork)):
 | 
			
		||||
        _setHostname()
 | 
			
		||||
        _setHTTPTimeout()
 | 
			
		||||
        _setHTTPExtraHeaders()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -252,7 +252,6 @@ optDict = {
 | 
			
		|||
        "forceDns": "boolean",
 | 
			
		||||
        "murphyRate": "integer",
 | 
			
		||||
        "smokeTest": "boolean",
 | 
			
		||||
        "liveTest": "boolean",
 | 
			
		||||
        "stopFail": "boolean",
 | 
			
		||||
        "runCase": "string",
 | 
			
		||||
    },
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,7 +18,7 @@ from lib.core.enums import OS
 | 
			
		|||
from thirdparty.six import unichr as _unichr
 | 
			
		||||
 | 
			
		||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
 | 
			
		||||
VERSION = "1.4.1.4"
 | 
			
		||||
VERSION = "1.4.1.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)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -289,130 +289,6 @@ def adjustValueType(tagName, value):
 | 
			
		|||
                break
 | 
			
		||||
    return value
 | 
			
		||||
 | 
			
		||||
def liveTest():
 | 
			
		||||
    """
 | 
			
		||||
    Runs the test of a program against the live testing environment
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    retVal = True
 | 
			
		||||
    count = 0
 | 
			
		||||
    global_ = {}
 | 
			
		||||
    vars_ = {}
 | 
			
		||||
 | 
			
		||||
    livetests = readXmlFile(paths.LIVE_TESTS_XML)
 | 
			
		||||
    length = len(livetests.getElementsByTagName("case"))
 | 
			
		||||
 | 
			
		||||
    element = livetests.getElementsByTagName("global")
 | 
			
		||||
    if element:
 | 
			
		||||
        for item in element:
 | 
			
		||||
            for child in item.childNodes:
 | 
			
		||||
                if child.nodeType == child.ELEMENT_NODE and child.hasAttribute("value"):
 | 
			
		||||
                    global_[child.tagName] = adjustValueType(child.tagName, child.getAttribute("value"))
 | 
			
		||||
 | 
			
		||||
    element = livetests.getElementsByTagName("vars")
 | 
			
		||||
    if element:
 | 
			
		||||
        for item in element:
 | 
			
		||||
            for child in item.childNodes:
 | 
			
		||||
                if child.nodeType == child.ELEMENT_NODE and child.hasAttribute("value"):
 | 
			
		||||
                    var = child.getAttribute("value")
 | 
			
		||||
                    vars_[child.tagName] = randomStr(6) if var == "random" else var
 | 
			
		||||
 | 
			
		||||
    for case in livetests.getElementsByTagName("case"):
 | 
			
		||||
        parse_from_console_output = False
 | 
			
		||||
        count += 1
 | 
			
		||||
        name = None
 | 
			
		||||
        parse = []
 | 
			
		||||
        switches = dict(global_)
 | 
			
		||||
        value = ""
 | 
			
		||||
        vulnerable = True
 | 
			
		||||
        result = None
 | 
			
		||||
 | 
			
		||||
        if case.hasAttribute("name"):
 | 
			
		||||
            name = case.getAttribute("name")
 | 
			
		||||
 | 
			
		||||
        if conf.runCase and ((conf.runCase.isdigit() and conf.runCase != count) or not re.search(conf.runCase, name, re.DOTALL)):
 | 
			
		||||
            continue
 | 
			
		||||
 | 
			
		||||
        if case.getElementsByTagName("switches"):
 | 
			
		||||
            for child in case.getElementsByTagName("switches")[0].childNodes:
 | 
			
		||||
                if child.nodeType == child.ELEMENT_NODE and child.hasAttribute("value"):
 | 
			
		||||
                    value = replaceVars(child.getAttribute("value"), vars_)
 | 
			
		||||
                    switches[child.tagName] = adjustValueType(child.tagName, value)
 | 
			
		||||
 | 
			
		||||
        if case.getElementsByTagName("parse"):
 | 
			
		||||
            for item in case.getElementsByTagName("parse")[0].getElementsByTagName("item"):
 | 
			
		||||
                if item.hasAttribute("value"):
 | 
			
		||||
                    value = replaceVars(item.getAttribute("value"), vars_)
 | 
			
		||||
 | 
			
		||||
                if item.hasAttribute("console_output"):
 | 
			
		||||
                    parse_from_console_output = bool(item.getAttribute("console_output"))
 | 
			
		||||
 | 
			
		||||
                parse.append((value, parse_from_console_output))
 | 
			
		||||
 | 
			
		||||
        conf.verbose = global_.get("verbose", 1)
 | 
			
		||||
        setVerbosity()
 | 
			
		||||
 | 
			
		||||
        msg = "running live test case: %s (%d/%d)" % (name, count, length)
 | 
			
		||||
        logger.info(msg)
 | 
			
		||||
 | 
			
		||||
        initCase(switches, count)
 | 
			
		||||
 | 
			
		||||
        test_case_fd = codecs.open(os.path.join(paths.SQLMAP_OUTPUT_PATH, "test_case"), "wb", UNICODE_ENCODING)
 | 
			
		||||
        test_case_fd.write("%s\n" % name)
 | 
			
		||||
 | 
			
		||||
        try:
 | 
			
		||||
            result = runCase(parse)
 | 
			
		||||
        except SqlmapNotVulnerableException:
 | 
			
		||||
            vulnerable = False
 | 
			
		||||
        finally:
 | 
			
		||||
            conf.verbose = global_.get("verbose", 1)
 | 
			
		||||
            setVerbosity()
 | 
			
		||||
 | 
			
		||||
        if result is True:
 | 
			
		||||
            logger.info("test passed")
 | 
			
		||||
            cleanCase()
 | 
			
		||||
        else:
 | 
			
		||||
            errMsg = "test failed"
 | 
			
		||||
 | 
			
		||||
            if _failures.failedItems:
 | 
			
		||||
                errMsg += " at parsing items: %s" % ", ".join(i for i in _failures.failedItems)
 | 
			
		||||
 | 
			
		||||
            errMsg += " - scan folder: %s" % paths.SQLMAP_OUTPUT_PATH
 | 
			
		||||
            errMsg += " - traceback: %s" % bool(_failures.failedTraceBack)
 | 
			
		||||
 | 
			
		||||
            if not vulnerable:
 | 
			
		||||
                errMsg += " - SQL injection not detected"
 | 
			
		||||
 | 
			
		||||
            logger.error(errMsg)
 | 
			
		||||
            test_case_fd.write("%s\n" % errMsg)
 | 
			
		||||
 | 
			
		||||
            if _failures.failedParseOn:
 | 
			
		||||
                console_output_fd = codecs.open(os.path.join(paths.SQLMAP_OUTPUT_PATH, "console_output"), "wb", UNICODE_ENCODING)
 | 
			
		||||
                console_output_fd.write(_failures.failedParseOn)
 | 
			
		||||
                console_output_fd.close()
 | 
			
		||||
 | 
			
		||||
            if _failures.failedTraceBack:
 | 
			
		||||
                traceback_fd = codecs.open(os.path.join(paths.SQLMAP_OUTPUT_PATH, "traceback"), "wb", UNICODE_ENCODING)
 | 
			
		||||
                traceback_fd.write(_failures.failedTraceBack)
 | 
			
		||||
                traceback_fd.close()
 | 
			
		||||
 | 
			
		||||
            beep()
 | 
			
		||||
 | 
			
		||||
            if conf.stopFail is True:
 | 
			
		||||
                return retVal
 | 
			
		||||
 | 
			
		||||
        test_case_fd.close()
 | 
			
		||||
        retVal &= bool(result)
 | 
			
		||||
 | 
			
		||||
    dataToStdout("\n")
 | 
			
		||||
 | 
			
		||||
    if retVal:
 | 
			
		||||
        logger.info("live test final result: PASSED")
 | 
			
		||||
    else:
 | 
			
		||||
        logger.error("live test final result: FAILED")
 | 
			
		||||
 | 
			
		||||
    return retVal
 | 
			
		||||
 | 
			
		||||
def initCase(switches, count):
 | 
			
		||||
    _failures.failedItems = []
 | 
			
		||||
    _failures.failedParseOn = None
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -787,9 +787,6 @@ def cmdLineParser(argv=None):
 | 
			
		|||
        parser.add_argument("--smoke-test", dest="smokeTest", action="store_true",
 | 
			
		||||
            help=SUPPRESS)
 | 
			
		||||
 | 
			
		||||
        parser.add_argument("--live-test", dest="liveTest", action="store_true",
 | 
			
		||||
            help=SUPPRESS)
 | 
			
		||||
 | 
			
		||||
        parser.add_argument("--vuln-test", dest="vulnTest", action="store_true",
 | 
			
		||||
            help=SUPPRESS)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1005,7 +1002,7 @@ def cmdLineParser(argv=None):
 | 
			
		|||
        if args.dummy:
 | 
			
		||||
            args.url = args.url or DUMMY_URL
 | 
			
		||||
 | 
			
		||||
        if not any((args.direct, args.url, args.logFile, args.bulkFile, args.googleDork, args.configFile, args.requestFile, args.updateAll, args.smokeTest, args.vulnTest, args.liveTest, args.wizard, args.dependencies, args.purge, args.listTampers, args.hashFile)):
 | 
			
		||||
        if not any((args.direct, args.url, args.logFile, args.bulkFile, args.googleDork, args.configFile, args.requestFile, args.updateAll, args.smokeTest, args.vulnTest, args.wizard, args.dependencies, args.purge, args.listTampers, args.hashFile)):
 | 
			
		||||
            errMsg = "missing a mandatory option (-d, -u, -l, -m, -r, -g, -c, --list-tampers, --wizard, --update, --purge or --dependencies). "
 | 
			
		||||
            errMsg += "Use -h for basic and -hh for advanced help\n"
 | 
			
		||||
            parser.error(errMsg)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -569,13 +569,6 @@ class Metasploit(object):
 | 
			
		|||
                        errMsg += "to open a remote session"
 | 
			
		||||
                        raise SqlmapGenericException(errMsg)
 | 
			
		||||
 | 
			
		||||
                if conf.liveTest and timeout:
 | 
			
		||||
                    if initialized:
 | 
			
		||||
                        send_all(proc, "exit\n")
 | 
			
		||||
                        time.sleep(2)
 | 
			
		||||
                    else:
 | 
			
		||||
                        proc.kill()
 | 
			
		||||
 | 
			
		||||
            except select.error as ex:
 | 
			
		||||
                # Reference: https://github.com/andymccurdy/redis-py/pull/743/commits/2b59b25bb08ea09e98aede1b1f23a270fc085a9f
 | 
			
		||||
                if ex.args[0] == errno.EINTR:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -93,11 +93,8 @@ class ProgressBar(object):
 | 
			
		|||
 | 
			
		||||
        dataToStdout("\r%s %d/%d%s" % (self._progBar, self._amount, self._max, ("  (ETA %s)" % (self._convertSeconds(int(eta)) if eta is not None else "??:??"))))
 | 
			
		||||
        if self._amount >= self._max:
 | 
			
		||||
            if not conf.liveTest:
 | 
			
		||||
            dataToStdout("\r%s\r" % (" " * self._width))
 | 
			
		||||
            kb.prependFlag = False
 | 
			
		||||
            else:
 | 
			
		||||
                dataToStdout("\n")
 | 
			
		||||
 | 
			
		||||
    def __str__(self):
 | 
			
		||||
        """
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -173,9 +173,6 @@ def main():
 | 
			
		|||
            elif conf.vulnTest:
 | 
			
		||||
                from lib.core.testing import vulnTest
 | 
			
		||||
                os._exitcode = 1 - (vulnTest() or 0)
 | 
			
		||||
            elif conf.liveTest:
 | 
			
		||||
                from lib.core.testing import liveTest
 | 
			
		||||
                os._exitcode = 1 - (liveTest() or 0)
 | 
			
		||||
            else:
 | 
			
		||||
                from lib.controller.controller import start
 | 
			
		||||
                if conf.profile and six.PY2:
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue
	
	Block a user