|
74 | 74 | from lib.core.exception import sqlmapSyntaxException |
75 | 75 | from lib.core.optiondict import optDict |
76 | 76 | from lib.core.settings import BIGARRAY_CHUNK_LENGTH |
| 77 | +from lib.core.settings import DEFAULT_COOKIE_DELIMITER |
| 78 | +from lib.core.settings import DEFAULT_GET_POST_DELIMITER |
77 | 79 | from lib.core.settings import INFERENCE_UNKNOWN_CHAR |
78 | 80 | from lib.core.settings import UNICODE_ENCODING |
79 | 81 | from lib.core.settings import DBMS_DICT |
@@ -658,7 +660,7 @@ def paramToDict(place, parameters=None): |
658 | 660 | if place != PLACE.SOAP: |
659 | 661 | parameters = parameters.replace(", ", ",") |
660 | 662 |
|
661 | | - splitParams = parameters.split(conf.pDel or (";" if place == PLACE.COOKIE else "&")) |
| 663 | + splitParams = parameters.split(conf.pDel or (DEFAULT_COOKIE_DELIMITER if place == PLACE.COOKIE else DEFAULT_GET_POST_DELIMITER)) |
662 | 664 |
|
663 | 665 | for element in splitParams: |
664 | 666 | elem = element.split("=") |
@@ -1270,7 +1272,7 @@ def parseTargetUrl(): |
1270 | 1272 | conf.port = 80 |
1271 | 1273 |
|
1272 | 1274 | if __urlSplit[3]: |
1273 | | - conf.parameters[PLACE.GET] = urldecode(__urlSplit[3]) |
| 1275 | + conf.parameters[PLACE.GET] = urldecode(__urlSplit[3]) if __urlSplit[3] and urlencode(DEFAULT_GET_POST_DELIMITER, None) not in __urlSplit[3] else __urlSplit[3] |
1274 | 1276 |
|
1275 | 1277 | conf.url = "%s://%s:%d%s" % (conf.scheme, conf.hostname, conf.port, conf.path) |
1276 | 1278 | conf.url = conf.url.replace(URI_QUESTION_MARKER, '?') |
@@ -3109,7 +3111,8 @@ def geturl(self): |
3109 | 3111 | request = form.click() |
3110 | 3112 | url = urldecode(request.get_full_url(), kb.pageEncoding) |
3111 | 3113 | method = request.get_method() |
3112 | | - data = urldecode(request.get_data(), kb.pageEncoding) if request.has_data() else None |
| 3114 | + data = request if request.has_data() else None |
| 3115 | + data = urldecode(data, kb.pageEncoding) if data and urlencode(DEFAULT_GET_POST_DELIMITER, None) not in data else data |
3113 | 3116 | if not data and method and method.upper() == HTTPMETHOD.POST: |
3114 | 3117 | debugMsg = "invalid POST form with blank data detected" |
3115 | 3118 | logger.debug(debugMsg) |
|
0 commit comments