mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-26 03:23:48 +03:00
Adding support for generic XML POST data
This commit is contained in:
parent
f71b937add
commit
098e446ca4
|
@ -197,5 +197,6 @@ SQL_STATEMENTS = {
|
||||||
|
|
||||||
POST_HINT_CONTENT_TYPES = {
|
POST_HINT_CONTENT_TYPES = {
|
||||||
POST_HINT.JSON: "application/json",
|
POST_HINT.JSON: "application/json",
|
||||||
POST_HINT.SOAP: "application/soap+xml"
|
POST_HINT.SOAP: "application/soap+xml",
|
||||||
|
POST_HINT.XML: "application/xml"
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,6 +68,7 @@ class PLACE:
|
||||||
class POST_HINT:
|
class POST_HINT:
|
||||||
SOAP = "SOAP"
|
SOAP = "SOAP"
|
||||||
JSON = "JSON"
|
JSON = "JSON"
|
||||||
|
XML = "XML (generic)"
|
||||||
|
|
||||||
class HTTPMETHOD:
|
class HTTPMETHOD:
|
||||||
GET = "GET"
|
GET = "GET"
|
||||||
|
|
|
@ -99,7 +99,7 @@ def __setRequestParams():
|
||||||
kb.postHint = POST_HINT.JSON
|
kb.postHint = POST_HINT.JSON
|
||||||
|
|
||||||
elif re.search(SOAP_RECOGNITION_REGEX, conf.data):
|
elif re.search(SOAP_RECOGNITION_REGEX, conf.data):
|
||||||
message = "SOAP like data found in POST data. "
|
message = "SOAP/XML like data found in POST data. "
|
||||||
message += "Do you want to process it? [Y/n/q] "
|
message += "Do you want to process it? [Y/n/q] "
|
||||||
test = readInput(message, default="Y")
|
test = readInput(message, default="Y")
|
||||||
if test and test[0] in ("q", "Q"):
|
if test and test[0] in ("q", "Q"):
|
||||||
|
@ -107,7 +107,7 @@ def __setRequestParams():
|
||||||
elif test[0] not in ("n", "N"):
|
elif test[0] not in ("n", "N"):
|
||||||
conf.data = re.sub(r"(<([^>]+)( [^<]*)?>)([^<]+)(</\2)", r"\g<1>\g<4>*\g<5>", conf.data)
|
conf.data = re.sub(r"(<([^>]+)( [^<]*)?>)([^<]+)(</\2)", r"\g<1>\g<4>*\g<5>", conf.data)
|
||||||
kb.processUserMarks = True
|
kb.processUserMarks = True
|
||||||
kb.postHint = POST_HINT.SOAP
|
kb.postHint = POST_HINT.SOAP if "soap" in conf.data.lower() else POST_HINT.XML
|
||||||
|
|
||||||
else:
|
else:
|
||||||
place = PLACE.POST
|
place = PLACE.POST
|
||||||
|
|
|
@ -583,8 +583,8 @@ class Connect:
|
||||||
logger.log(CUSTOM_LOGGING.PAYLOAD, safecharencode(payload))
|
logger.log(CUSTOM_LOGGING.PAYLOAD, safecharencode(payload))
|
||||||
|
|
||||||
if place == PLACE.CUSTOM_POST:
|
if place == PLACE.CUSTOM_POST:
|
||||||
if kb.postHint == POST_HINT.SOAP:
|
if kb.postHint in (POST_HINT.SOAP, POST_HINT.XML):
|
||||||
# payloads in SOAP should have chars > and < replaced
|
# payloads in SOAP/XML should have chars > and < replaced
|
||||||
# with their HTML encoded counterparts
|
# with their HTML encoded counterparts
|
||||||
payload = payload.replace('>', ">").replace('<', "<")
|
payload = payload.replace('>', ">").replace('<', "<")
|
||||||
elif kb.postHint == POST_HINT.JSON:
|
elif kb.postHint == POST_HINT.JSON:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user