mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-29 04:53:48 +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.WORDLIST = os.path.join(paths.SQLMAP_TXT_PATH, "wordlist.tx_")
|
||||||
paths.ERRORS_XML = os.path.join(paths.SQLMAP_XML_PATH, "errors.xml")
|
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.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.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.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")
|
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)"
|
errMsg = "value for option '--union-char' must be an alpha-numeric value (e.g. 1)"
|
||||||
raise SqlmapSyntaxException(errMsg)
|
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"
|
errMsg = "option '--crack' should be used as a standalone"
|
||||||
raise SqlmapSyntaxException(errMsg)
|
raise SqlmapSyntaxException(errMsg)
|
||||||
|
|
||||||
|
@ -2669,7 +2669,7 @@ def init():
|
||||||
|
|
||||||
parseTargetDirect()
|
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()
|
_setHostname()
|
||||||
_setHTTPTimeout()
|
_setHTTPTimeout()
|
||||||
_setHTTPExtraHeaders()
|
_setHTTPExtraHeaders()
|
||||||
|
|
|
@ -252,7 +252,6 @@ optDict = {
|
||||||
"forceDns": "boolean",
|
"forceDns": "boolean",
|
||||||
"murphyRate": "integer",
|
"murphyRate": "integer",
|
||||||
"smokeTest": "boolean",
|
"smokeTest": "boolean",
|
||||||
"liveTest": "boolean",
|
|
||||||
"stopFail": "boolean",
|
"stopFail": "boolean",
|
||||||
"runCase": "string",
|
"runCase": "string",
|
||||||
},
|
},
|
||||||
|
|
|
@ -18,7 +18,7 @@ from lib.core.enums import OS
|
||||||
from thirdparty.six import unichr as _unichr
|
from thirdparty.six import unichr as _unichr
|
||||||
|
|
||||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
# 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 = "dev" if VERSION.count('.') > 2 and VERSION.split('.')[-1] != '0' else "stable"
|
||||||
TYPE_COLORS = {"dev": 33, "stable": 90, "pip": 34}
|
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)
|
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
|
break
|
||||||
return value
|
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):
|
def initCase(switches, count):
|
||||||
_failures.failedItems = []
|
_failures.failedItems = []
|
||||||
_failures.failedParseOn = None
|
_failures.failedParseOn = None
|
||||||
|
|
|
@ -787,9 +787,6 @@ def cmdLineParser(argv=None):
|
||||||
parser.add_argument("--smoke-test", dest="smokeTest", action="store_true",
|
parser.add_argument("--smoke-test", dest="smokeTest", action="store_true",
|
||||||
help=SUPPRESS)
|
help=SUPPRESS)
|
||||||
|
|
||||||
parser.add_argument("--live-test", dest="liveTest", action="store_true",
|
|
||||||
help=SUPPRESS)
|
|
||||||
|
|
||||||
parser.add_argument("--vuln-test", dest="vulnTest", action="store_true",
|
parser.add_argument("--vuln-test", dest="vulnTest", action="store_true",
|
||||||
help=SUPPRESS)
|
help=SUPPRESS)
|
||||||
|
|
||||||
|
@ -1005,7 +1002,7 @@ def cmdLineParser(argv=None):
|
||||||
if args.dummy:
|
if args.dummy:
|
||||||
args.url = args.url or DUMMY_URL
|
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 = "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"
|
errMsg += "Use -h for basic and -hh for advanced help\n"
|
||||||
parser.error(errMsg)
|
parser.error(errMsg)
|
||||||
|
|
|
@ -569,13 +569,6 @@ class Metasploit(object):
|
||||||
errMsg += "to open a remote session"
|
errMsg += "to open a remote session"
|
||||||
raise SqlmapGenericException(errMsg)
|
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:
|
except select.error as ex:
|
||||||
# Reference: https://github.com/andymccurdy/redis-py/pull/743/commits/2b59b25bb08ea09e98aede1b1f23a270fc085a9f
|
# Reference: https://github.com/andymccurdy/redis-py/pull/743/commits/2b59b25bb08ea09e98aede1b1f23a270fc085a9f
|
||||||
if ex.args[0] == errno.EINTR:
|
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 "??:??"))))
|
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 self._amount >= self._max:
|
||||||
if not conf.liveTest:
|
dataToStdout("\r%s\r" % (" " * self._width))
|
||||||
dataToStdout("\r%s\r" % (" " * self._width))
|
kb.prependFlag = False
|
||||||
kb.prependFlag = False
|
|
||||||
else:
|
|
||||||
dataToStdout("\n")
|
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
"""
|
"""
|
||||||
|
|
|
@ -173,9 +173,6 @@ def main():
|
||||||
elif conf.vulnTest:
|
elif conf.vulnTest:
|
||||||
from lib.core.testing import vulnTest
|
from lib.core.testing import vulnTest
|
||||||
os._exitcode = 1 - (vulnTest() or 0)
|
os._exitcode = 1 - (vulnTest() or 0)
|
||||||
elif conf.liveTest:
|
|
||||||
from lib.core.testing import liveTest
|
|
||||||
os._exitcode = 1 - (liveTest() or 0)
|
|
||||||
else:
|
else:
|
||||||
from lib.controller.controller import start
|
from lib.controller.controller import start
|
||||||
if conf.profile and six.PY2:
|
if conf.profile and six.PY2:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user