mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-03-03 19:55:47 +03:00
Minor workflow update
This commit is contained in:
parent
eddc634ceb
commit
d570e25b1b
|
@ -80,44 +80,48 @@ def __setRequestParams():
|
||||||
errMsg = "HTTP POST method depends on HTTP data value to be posted"
|
errMsg = "HTTP POST method depends on HTTP data value to be posted"
|
||||||
raise sqlmapSyntaxException, errMsg
|
raise sqlmapSyntaxException, errMsg
|
||||||
|
|
||||||
if re.search(JSON_RECOGNITION_REGEX, conf.data or ""):
|
if conf.data:
|
||||||
message = "JSON like data found in POST data. "
|
conf.method = HTTPMETHOD.POST
|
||||||
message += "Do you want to process it? [Y/n/q] "
|
|
||||||
test = readInput(message, default="Y")
|
|
||||||
if test and test[0] in ("q", "Q"):
|
|
||||||
raise sqlmapUserQuitException
|
|
||||||
elif test[0] not in ("n", "N"):
|
|
||||||
conf.data = re.sub(r'("[^"]+"\s*:\s*"[^"]+)"', r'\g<1>*"', conf.data)
|
|
||||||
conf.data = re.sub(r'("[^"]+"\s*:\s*)(\d+)', r'\g<1>"\g<2>*"', conf.data)
|
|
||||||
kb.processUserMarks = True
|
|
||||||
kb.postHint = POST_HINT.JSON
|
|
||||||
|
|
||||||
elif re.search(SOAP_RECOGNITION_REGEX, conf.data or ""):
|
|
||||||
message = "SOAP like data found in POST data. "
|
|
||||||
message += "Do you want to process it? [Y/n/q] "
|
|
||||||
test = readInput(message, default="Y")
|
|
||||||
if test and test[0] in ("q", "Q"):
|
|
||||||
raise sqlmapUserQuitException
|
|
||||||
elif test[0] not in ("n", "N"):
|
|
||||||
conf.data = re.sub(r"(<([^>]+)( [^<]*)?>)([^<]+)(</\2)", r"\g<1>\g<4>*\g<5>", conf.data)
|
|
||||||
kb.processUserMarks = True
|
|
||||||
kb.postHint = POST_HINT.SOAP
|
|
||||||
|
|
||||||
elif conf.data:
|
|
||||||
if hasattr(conf.data, UNENCODED_ORIGINAL_VALUE):
|
if hasattr(conf.data, UNENCODED_ORIGINAL_VALUE):
|
||||||
original = getattr(conf.data, UNENCODED_ORIGINAL_VALUE)
|
original = getattr(conf.data, UNENCODED_ORIGINAL_VALUE)
|
||||||
setattr(conf.data, UNENCODED_ORIGINAL_VALUE, original)
|
setattr(conf.data, UNENCODED_ORIGINAL_VALUE, original)
|
||||||
|
|
||||||
place = PLACE.POST
|
if CUSTOM_INJECTION_MARK_CHAR in conf.data: # later processed
|
||||||
|
pass
|
||||||
|
|
||||||
conf.parameters[place] = conf.data
|
elif re.search(JSON_RECOGNITION_REGEX, conf.data):
|
||||||
paramDict = paramToDict(place, conf.data)
|
message = "JSON like data found in POST data. "
|
||||||
|
message += "Do you want to process it? [Y/n/q] "
|
||||||
|
test = readInput(message, default="Y")
|
||||||
|
if test and test[0] in ("q", "Q"):
|
||||||
|
raise sqlmapUserQuitException
|
||||||
|
elif test[0] not in ("n", "N"):
|
||||||
|
conf.data = re.sub(r'("[^"]+"\s*:\s*"[^"]+)"', r'\g<1>*"', conf.data)
|
||||||
|
conf.data = re.sub(r'("[^"]+"\s*:\s*)(\d+)', r'\g<1>"\g<2>*"', conf.data)
|
||||||
|
kb.processUserMarks = True
|
||||||
|
kb.postHint = POST_HINT.JSON
|
||||||
|
|
||||||
if paramDict:
|
elif re.search(SOAP_RECOGNITION_REGEX, conf.data):
|
||||||
conf.paramDict[place] = paramDict
|
message = "SOAP like data found in POST data. "
|
||||||
testableParameters = True
|
message += "Do you want to process it? [Y/n/q] "
|
||||||
|
test = readInput(message, default="Y")
|
||||||
|
if test and test[0] in ("q", "Q"):
|
||||||
|
raise sqlmapUserQuitException
|
||||||
|
elif test[0] not in ("n", "N"):
|
||||||
|
conf.data = re.sub(r"(<([^>]+)( [^<]*)?>)([^<]+)(</\2)", r"\g<1>\g<4>*\g<5>", conf.data)
|
||||||
|
kb.processUserMarks = True
|
||||||
|
kb.postHint = POST_HINT.SOAP
|
||||||
|
|
||||||
conf.method = HTTPMETHOD.POST
|
else:
|
||||||
|
place = PLACE.POST
|
||||||
|
|
||||||
|
conf.parameters[place] = conf.data
|
||||||
|
paramDict = paramToDict(place, conf.data)
|
||||||
|
|
||||||
|
if paramDict:
|
||||||
|
conf.paramDict[place] = paramDict
|
||||||
|
testableParameters = True
|
||||||
|
|
||||||
if re.search(URI_INJECTABLE_REGEX, conf.url, re.I) and not any(map(lambda place: place in conf.parameters, [PLACE.GET, PLACE.POST])):
|
if re.search(URI_INJECTABLE_REGEX, conf.url, re.I) and not any(map(lambda place: place in conf.parameters, [PLACE.GET, PLACE.POST])):
|
||||||
warnMsg = "you've provided target url without any GET "
|
warnMsg = "you've provided target url without any GET "
|
||||||
|
@ -156,7 +160,7 @@ def __setRequestParams():
|
||||||
parts = value.split(CUSTOM_INJECTION_MARK_CHAR)
|
parts = value.split(CUSTOM_INJECTION_MARK_CHAR)
|
||||||
|
|
||||||
for i in xrange(len(parts) - 1):
|
for i in xrange(len(parts) - 1):
|
||||||
conf.paramDict[place]["#%d%s" % (i + 1, CUSTOM_INJECTION_MARK_CHAR)] = "".join("%s%s" % (parts[j], CUSTOM_INJECTION_MARK_CHAR if i == j else "") for j in xrange(len(parts)))
|
conf.paramDict[place]["%s#%d%s" % (("%s " % kb.postHint) if kb.postHint else "", i + 1, CUSTOM_INJECTION_MARK_CHAR)] = "".join("%s%s" % (parts[j], CUSTOM_INJECTION_MARK_CHAR if i == j else "") for j in xrange(len(parts)))
|
||||||
|
|
||||||
if place == PLACE.URI and PLACE.GET in conf.paramDict:
|
if place == PLACE.URI and PLACE.GET in conf.paramDict:
|
||||||
del conf.paramDict[PLACE.GET]
|
del conf.paramDict[PLACE.GET]
|
||||||
|
|
Loading…
Reference in New Issue
Block a user