further update regarding last commit

This commit is contained in:
Miroslav Stampar
2011-03-03 10:39:04 +00:00
parent bc50387a17
commit 8edc3b3302
3 changed files with 14 additions and 7 deletions

View File

@@ -19,6 +19,7 @@ import struct
import urllib
from lib.core.data import conf
from lib.core.settings import UNICODE_ENCODING
def base64decode(value):
return value.decode("base64")
@@ -62,17 +63,21 @@ def sha1hash(value):
else:
return sha.new(value).hexdigest()
def urldecode(value):
def urldecode(value, encoding=None):
result = None
if value:
try:
# for cases like T%C3%BCrk%C3%A7e
value = str(value)
result = utf8decode(urllib.unquote_plus(value))
except ValueError:
pass
finally:
result = urllib.unquote_plus(value)
if isinstance(result, str):
result = unicode(result, encoding or UNICODE_ENCODING, errors="replace")
return result
def urlencode(value, safe=":/?%&=", convall=False):

View File

@@ -446,9 +446,9 @@ def __findPageForms():
if forms:
for form in forms:
request = form.click()
url = urldecode(request.get_full_url())
url = urldecode(request.get_full_url(), kb.pageEncoding)
method = request.get_method()
data = urldecode(getUnicode(request.get_data(), kb.pageEncoding)) if request.has_data() else None
data = urldecode(request.get_data(), kb.pageEncoding) if request.has_data() else None
target = (url, method, data, conf.cookie)
kb.targetUrls.add(target)
kb.formNames.append(target)