@@ -3009,28 +3009,37 @@ def geturl(self):
30093009
30103010 if forms :
30113011 for form in forms :
3012- for control in form .controls :
3013- if hasattr (control , "items" ):
3014- # if control has selectable items select first non-disabled
3015- for item in control .items :
3016- if not item .disabled :
3017- if not item .selected :
3018- item .selected = True
3019- break
3020-
3021- request = form .click ()
3022- url = urldecode (request .get_full_url (), kb .pageEncoding )
3023- method = request .get_method ()
3024- data = request .get_data () if request .has_data () else None
3025- data = urldecode (data , kb .pageEncoding ) if data and urlencode (DEFAULT_GET_POST_DELIMITER , None ) not in data else data
3026-
3027- if not data and method and method .upper () == HTTPMETHOD .POST :
3028- debugMsg = "invalid POST form with blank data detected"
3029- logger .debug (debugMsg )
3030- continue
3012+ try :
3013+ for control in form .controls :
3014+ if hasattr (control , "items" ):
3015+ # if control has selectable items select first non-disabled
3016+ for item in control .items :
3017+ if not item .disabled :
3018+ if not item .selected :
3019+ item .selected = True
3020+ break
3021+
3022+ request = form .click ()
3023+ except (ValueError , TypeError ), ex :
3024+ errMsg = "there has been a problem while "
3025+ errMsg += "processing page forms ('%s')" % ex
3026+ if raise_ :
3027+ raise sqlmapGenericException , errMsg
3028+ else :
3029+ logger .debug (errMsg )
3030+ else :
3031+ url = urldecode (request .get_full_url (), kb .pageEncoding )
3032+ method = request .get_method ()
3033+ data = request .get_data () if request .has_data () else None
3034+ data = urldecode (data , kb .pageEncoding ) if data and urlencode (DEFAULT_GET_POST_DELIMITER , None ) not in data else data
3035+
3036+ if not data and method and method .upper () == HTTPMETHOD .POST :
3037+ debugMsg = "invalid POST form with blank data detected"
3038+ logger .debug (debugMsg )
3039+ continue
30313040
3032- target = (url , method , data , conf .cookie )
3033- retVal .add (target )
3041+ target = (url , method , data , conf .cookie )
3042+ retVal .add (target )
30343043 else :
30353044 errMsg = "there were no forms found at the given target url"
30363045 if raise_ :
0 commit comments