mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-02-03 13:14:13 +03:00
minor fix and some refactoring
This commit is contained in:
parent
3edb30968b
commit
b53c9a2599
|
@ -67,6 +67,14 @@ class HTTPHEADER:
|
||||||
RANGE = "Range"
|
RANGE = "Range"
|
||||||
CONTENT_LENGTH = "Content-Length"
|
CONTENT_LENGTH = "Content-Length"
|
||||||
CONTENT_RANGE = "Content-Range"
|
CONTENT_RANGE = "Content-Range"
|
||||||
|
CONTENT_ENCODING = "Content-Encoding"
|
||||||
|
CONTENT_TYPE = "Content-Type"
|
||||||
|
AUTHORIZATION = "Authorization"
|
||||||
|
PROXY_AUTHORIZATION = "Proxy-authorization"
|
||||||
|
COOKIE = "Cookie"
|
||||||
|
CONNECTION = "Connection"
|
||||||
|
ACCEPT_ENCODING = "Accept-Encoding"
|
||||||
|
REFERER = "Referer"
|
||||||
|
|
||||||
class EXPECTED:
|
class EXPECTED:
|
||||||
BOOL = "bool"
|
BOOL = "bool"
|
||||||
|
|
|
@ -127,7 +127,7 @@ class Connect:
|
||||||
page = conn.read()
|
page = conn.read()
|
||||||
responseHeaders = conn.info()
|
responseHeaders = conn.info()
|
||||||
responseHeaders[URI_HTTP_HEADER] = conn.geturl()
|
responseHeaders[URI_HTTP_HEADER] = conn.geturl()
|
||||||
page = decodePage(page, responseHeaders.get("Content-Encoding"), responseHeaders.get("Content-Type"))
|
page = decodePage(page, responseHeaders.get(HTTPHEADER.CONTENT_ENCODING), responseHeaders.get(HTTPHEADER.CONTENT_TYPE))
|
||||||
|
|
||||||
return page
|
return page
|
||||||
|
|
||||||
|
@ -149,13 +149,13 @@ class Connect:
|
||||||
headers = forgeHeaders(cookie, ua, referer)
|
headers = forgeHeaders(cookie, ua, referer)
|
||||||
|
|
||||||
if conf.realTest:
|
if conf.realTest:
|
||||||
headers["Referer"] = "%s://%s" % (conf.scheme, conf.hostname)
|
headers[HTTPHEADER.REFERER] = "%s://%s" % (conf.scheme, conf.hostname)
|
||||||
|
|
||||||
if kb.authHeader:
|
if kb.authHeader:
|
||||||
headers["Authorization"] = kb.authHeader
|
headers[HTTPHEADER.AUTHORIZATION] = kb.authHeader
|
||||||
|
|
||||||
if kb.proxyAuthHeader:
|
if kb.proxyAuthHeader:
|
||||||
headers["Proxy-authorization"] = kb.proxyAuthHeader
|
headers[HTTPHEADER.PROXY_AUTHORIZATION] = kb.proxyAuthHeader
|
||||||
|
|
||||||
if auxHeaders:
|
if auxHeaders:
|
||||||
for key, item in auxHeaders.items():
|
for key, item in auxHeaders.items():
|
||||||
|
@ -183,16 +183,16 @@ class Connect:
|
||||||
|
|
||||||
cookieStr += "%s; " % cookie[8:index]
|
cookieStr += "%s; " % cookie[8:index]
|
||||||
|
|
||||||
if not req.has_header("Accept-Encoding"):
|
if not req.has_header(HTTPHEADER.ACCEPT_ENCODING):
|
||||||
requestHeaders += "Accept-Encoding: identity\n"
|
requestHeaders += "%s: identity\n" % HTTPHEADER.ACCEPT_ENCODING
|
||||||
|
|
||||||
requestHeaders += "\n".join(["%s: %s" % (header, value) for header, value in req.header_items()])
|
requestHeaders += "\n".join(["%s: %s" % (header, value) for header, value in req.header_items()])
|
||||||
|
|
||||||
if not req.has_header("Cookie") and cookieStr:
|
if not req.has_header(HTTPHEADER.COOKIE) and cookieStr:
|
||||||
requestHeaders += "\n%s" % cookieStr[:-2]
|
requestHeaders += "\n%s" % cookieStr[:-2]
|
||||||
|
|
||||||
if not req.has_header("Connection"):
|
if not req.has_header(HTTPHEADER.CONNECTION):
|
||||||
requestHeaders += "\nConnection: close"
|
requestHeaders += "\n%s: close" % HTTPHEADER.CONNECTION
|
||||||
|
|
||||||
requestMsg += "\n%s" % requestHeaders
|
requestMsg += "\n%s" % requestHeaders
|
||||||
|
|
||||||
|
@ -205,11 +205,11 @@ class Connect:
|
||||||
|
|
||||||
conn = urllib2.urlopen(req)
|
conn = urllib2.urlopen(req)
|
||||||
|
|
||||||
if not kb.authHeader and req.has_header("Authorization"):
|
if not kb.authHeader and req.has_header(HTTPHEADER.AUTHORIZATION):
|
||||||
kb.authHeader = req.get_header("Authorization")
|
kb.authHeader = req.get_header(HTTPHEADER.AUTHORIZATION)
|
||||||
|
|
||||||
if not kb.proxyAuthHeader and req.has_header("Proxy-authorization"):
|
if not kb.proxyAuthHeader and req.has_header(HTTPHEADER.PROXY_AUTHORIZATION):
|
||||||
kb.proxyAuthHeader = req.get_header("Proxy-authorization")
|
kb.proxyAuthHeader = req.get_header(HTTPHEADER.PROXY_AUTHORIZATION)
|
||||||
|
|
||||||
if hasattr(conn, "setcookie"):
|
if hasattr(conn, "setcookie"):
|
||||||
kb.redirectSetCookie = conn.setcookie
|
kb.redirectSetCookie = conn.setcookie
|
||||||
|
@ -250,7 +250,7 @@ class Connect:
|
||||||
code = conn.code
|
code = conn.code
|
||||||
responseHeaders = conn.info()
|
responseHeaders = conn.info()
|
||||||
responseHeaders[URI_HTTP_HEADER] = conn.geturl()
|
responseHeaders[URI_HTTP_HEADER] = conn.geturl()
|
||||||
page = decodePage(page, responseHeaders.get("Content-Encoding"), responseHeaders.get("Content-Type"))
|
page = decodePage(page, responseHeaders.get(HTTPHEADER.CONTENT_ENCODING), responseHeaders.get(HTTPHEADER.CONTENT_TYPE))
|
||||||
status = getUnicode(conn.msg)
|
status = getUnicode(conn.msg)
|
||||||
|
|
||||||
# Explicit closing of connection object
|
# Explicit closing of connection object
|
||||||
|
@ -270,7 +270,7 @@ class Connect:
|
||||||
page = e.read()
|
page = e.read()
|
||||||
responseHeaders = e.info()
|
responseHeaders = e.info()
|
||||||
responseHeaders[URI_HTTP_HEADER] = e.geturl()
|
responseHeaders[URI_HTTP_HEADER] = e.geturl()
|
||||||
page = decodePage(page, responseHeaders.get("Content-Encoding"), responseHeaders.get("Content-Type"))
|
page = decodePage(page, responseHeaders.get(HTTPHEADER.CONTENT_ENCODING), responseHeaders.get(HTTPHEADER.CONTENT_TYPE))
|
||||||
except socket.timeout:
|
except socket.timeout:
|
||||||
warnMsg = "connection timed out while trying "
|
warnMsg = "connection timed out while trying "
|
||||||
warnMsg += "to get error page information (%d)" % e.code
|
warnMsg += "to get error page information (%d)" % e.code
|
||||||
|
|
|
@ -12,8 +12,10 @@ import urllib2
|
||||||
from lib.core.data import conf
|
from lib.core.data import conf
|
||||||
from lib.core.data import logger
|
from lib.core.data import logger
|
||||||
from lib.core.common import getUnicode
|
from lib.core.common import getUnicode
|
||||||
|
from lib.core.enums import HTTPHEADER
|
||||||
from lib.core.exception import sqlmapConnectionException
|
from lib.core.exception import sqlmapConnectionException
|
||||||
from lib.core.threads import getCurrentThreadData
|
from lib.core.threads import getCurrentThreadData
|
||||||
|
from lib.request.basic import decodePage
|
||||||
|
|
||||||
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
|
class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
|
||||||
# maximum number of redirections to any single URL
|
# maximum number of redirections to any single URL
|
||||||
|
@ -25,6 +27,8 @@ class SmartRedirectHandler(urllib2.HTTPRedirectHandler):
|
||||||
max_redirections = 10
|
max_redirections = 10
|
||||||
|
|
||||||
def common_http_redirect(self, result, headers, code, content, msg):
|
def common_http_redirect(self, result, headers, code, content, msg):
|
||||||
|
content = decodePage(content, headers.get(HTTPHEADER.CONTENT_ENCODING), headers.get(HTTPHEADER.CONTENT_TYPE))
|
||||||
|
|
||||||
threadData = getCurrentThreadData()
|
threadData = getCurrentThreadData()
|
||||||
threadData.lastRedirectMsg = (threadData.lastRequestUID, content)
|
threadData.lastRedirectMsg = (threadData.lastRequestUID, content)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user