@@ -3073,7 +3073,7 @@ def quote(s, safe):
30733073
30743074def findPageForms (content , url , raise_ = False , addToTargets = False ):
30753075 class _ (StringIO ):
3076- def __init__ (self ):
3076+ def __init__ (self , content , url ):
30773077 StringIO .__init__ (self , unicodeencode (content , kb .pageEncoding ) if isinstance (content , unicode ) else content )
30783078 self ._url = url
30793079 def geturl (self ):
@@ -3083,17 +3083,21 @@ def geturl(self):
30833083 errMsg = "can't parse forms as the page content appears to be blank"
30843084 raise sqlmapGenericException , errMsg
30853085
3086+ forms = None
30863087 retVal = set ()
3087- response = _ ()
3088+ response = _ (content , url )
30883089 try :
30893090 forms = ParseResponse (response , backwards_compat = False )
30903091 except ParseError :
30913092 errMsg = "badly formed HTML at the target url. will try to filter it"
30923093 logger .error (errMsg )
30933094 response .seek (0 )
3094- filtered = _ ("" .join (re .findall (r'<form.+?</form>' , response .read (), re .I | re .S )), response .geturl ())
3095+ filtered = re .findall (r'<form.+?</form>' , response .read (), re .I | re .S )
3096+ for i in xrange (len (filtered )):
3097+ filtered [i ] = filtered [i ][filtered [i ].lower ().rfind ("<form" ):]
3098+ response = _ ("" .join (filtered ), response .geturl ())
30953099 try :
3096- forms = ParseResponse (filtered , backwards_compat = False )
3100+ forms = ParseResponse (response , backwards_compat = False )
30973101 except ParseError :
30983102 errMsg = "no success"
30993103 if raise_ :
0 commit comments