mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-12-15 20:29:04 +00:00
Merge branch 'master' of github.com:sqlmapproject/sqlmap
This commit is contained in:
@@ -31,7 +31,7 @@ def comparison(page, headers, code=None, getRatioValue=False, pageLength=None):
|
||||
return _
|
||||
|
||||
def _adjust(condition, getRatioValue):
|
||||
if not any([conf.string, conf.regexp, conf.code]):
|
||||
if not any([conf.string, conf.notString, conf.regexp, conf.code]):
|
||||
# Negative logic approach is used in raw page comparison scheme as that what is "different" than original
|
||||
# PAYLOAD.WHERE.NEGATIVE response is considered as True; in switch based approach negative logic is not
|
||||
# applied as that what is by user considered as True is that what is returned by the comparison mechanism
|
||||
@@ -54,14 +54,18 @@ def _comparison(page, headers, code, getRatioValue, pageLength):
|
||||
seqMatcher = threadData.seqMatcher
|
||||
seqMatcher.set_seq1(kb.pageTemplate)
|
||||
|
||||
if any([conf.string, conf.regexp]):
|
||||
if any([conf.string, conf.notString, conf.regexp]):
|
||||
rawResponse = "%s%s" % (listToStrValue(headers.headers if headers else ""), page)
|
||||
|
||||
# String to match in page when the query is valid
|
||||
# String to match in page when the query is True and/or valid
|
||||
if conf.string:
|
||||
return conf.string in rawResponse
|
||||
|
||||
# Regular expression to match in page when the query is valid
|
||||
# String to match in page when the query is False and/or invalid
|
||||
if conf.notString:
|
||||
return conf.notString not in rawResponse
|
||||
|
||||
# Regular expression to match in page when the query is True and/or valid
|
||||
if conf.regexp:
|
||||
return re.search(conf.regexp, rawResponse, re.I | re.M) is not None
|
||||
|
||||
|
||||
@@ -192,7 +192,7 @@ class Connect:
|
||||
code = None
|
||||
page = None
|
||||
requestMsg = u"HTTP request [#%d]:\n%s " % (threadData.lastRequestUID, method or (HTTPMETHOD.POST if post else HTTPMETHOD.GET))
|
||||
requestMsg += "%s" % urlparse.urlsplit(url)[2] or "/"
|
||||
requestMsg += ("%s" % urlparse.urlsplit(url)[2] or "/") if not any((refreshing, crawling)) else url
|
||||
responseMsg = u"HTTP response "
|
||||
requestHeaders = u""
|
||||
responseHeaders = None
|
||||
@@ -236,7 +236,7 @@ class Connect:
|
||||
|
||||
return page
|
||||
|
||||
elif any ([refreshing, crawling]):
|
||||
elif any ((refreshing, crawling)):
|
||||
pass
|
||||
|
||||
elif target:
|
||||
@@ -595,8 +595,8 @@ class Connect:
|
||||
if PLACE.COOKIE in conf.parameters:
|
||||
cookie = conf.parameters[PLACE.COOKIE] if place != PLACE.COOKIE or not value else value
|
||||
|
||||
if PLACE.UA in conf.parameters:
|
||||
ua = conf.parameters[PLACE.UA] if place != PLACE.UA or not value else value
|
||||
if PLACE.USER_AGENT in conf.parameters:
|
||||
ua = conf.parameters[PLACE.USER_AGENT] if place != PLACE.USER_AGENT or not value else value
|
||||
|
||||
if PLACE.REFERER in conf.parameters:
|
||||
referer = conf.parameters[PLACE.REFERER] if place != PLACE.REFERER or not value else value
|
||||
@@ -731,6 +731,9 @@ class Connect:
|
||||
if not pageLength:
|
||||
page, headers, code = Connect.getPage(url=uri, get=get, post=post, cookie=cookie, ua=ua, referer=referer, host=host, silent=silent, method=method, auxHeaders=auxHeaders, response=response, raise404=raise404, ignoreTimeout=timeBasedCompare)
|
||||
|
||||
if conf.secondOrder:
|
||||
page, headers, code = Connect.getPage(url=conf.secondOrder, cookie=cookie, ua=ua, silent=silent, auxHeaders=auxHeaders, response=response, raise404=False, ignoreTimeout=timeBasedCompare, refreshing=True)
|
||||
|
||||
threadData.lastQueryDuration = calculateDeltaSeconds(start)
|
||||
|
||||
kb.originalCode = kb.originalCode or code
|
||||
|
||||
Reference in New Issue
Block a user