mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2024-11-26 11:33:47 +03:00
conf.md5hash thrown out
This commit is contained in:
parent
9a3879feba
commit
9c94a233a1
|
@ -22,7 +22,6 @@ from lib.core.common import randomStr
|
||||||
from lib.core.common import readInput
|
from lib.core.common import readInput
|
||||||
from lib.core.common import showStaticWords
|
from lib.core.common import showStaticWords
|
||||||
from lib.core.common import DynamicContentItem
|
from lib.core.common import DynamicContentItem
|
||||||
from lib.core.convert import md5hash
|
|
||||||
from lib.core.convert import urlencode
|
from lib.core.convert import urlencode
|
||||||
from lib.core.data import conf
|
from lib.core.data import conf
|
||||||
from lib.core.data import kb
|
from lib.core.data import kb
|
||||||
|
@ -202,11 +201,10 @@ def checkStability():
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
secondPage, _ = Request.queryPage(content=True)
|
secondPage, _ = Request.queryPage(content=True)
|
||||||
|
|
||||||
condition = (firstPage == secondPage)
|
kb.pageStable = (firstPage == secondPage)
|
||||||
|
|
||||||
if condition:
|
if kb.pageStable:
|
||||||
if firstPage:
|
if firstPage:
|
||||||
conf.md5hash = md5hash(firstPage)
|
|
||||||
logMsg = "url is stable"
|
logMsg = "url is stable"
|
||||||
logger.info(logMsg)
|
logger.info(logMsg)
|
||||||
else:
|
else:
|
||||||
|
@ -216,7 +214,7 @@ def checkStability():
|
||||||
errMsg += "using higher verbosity levels"
|
errMsg += "using higher verbosity levels"
|
||||||
raise sqlmapNoneDataException, errMsg
|
raise sqlmapNoneDataException, errMsg
|
||||||
|
|
||||||
elif not condition:
|
else:
|
||||||
warnMsg = "url is not stable, sqlmap will base the page "
|
warnMsg = "url is not stable, sqlmap will base the page "
|
||||||
warnMsg += "comparison on a sequence matcher. If no dynamic nor "
|
warnMsg += "comparison on a sequence matcher. If no dynamic nor "
|
||||||
warnMsg += "injectable parameters are detected, or in case of "
|
warnMsg += "injectable parameters are detected, or in case of "
|
||||||
|
@ -253,7 +251,7 @@ def checkStability():
|
||||||
else:
|
else:
|
||||||
checkDynamicContent(firstPage, secondPage)
|
checkDynamicContent(firstPage, secondPage)
|
||||||
|
|
||||||
return condition
|
return kb.pageStable
|
||||||
|
|
||||||
def checkString():
|
def checkString():
|
||||||
if not conf.string:
|
if not conf.string:
|
||||||
|
|
|
@ -1014,7 +1014,6 @@ def __setConfAttributes():
|
||||||
conf.loggedToOut = None
|
conf.loggedToOut = None
|
||||||
conf.logic = "AND"
|
conf.logic = "AND"
|
||||||
conf.matchRatio = None
|
conf.matchRatio = None
|
||||||
conf.md5hash = None
|
|
||||||
conf.multipleTargets = False
|
conf.multipleTargets = False
|
||||||
conf.outputPath = None
|
conf.outputPath = None
|
||||||
conf.paramDict = {}
|
conf.paramDict = {}
|
||||||
|
@ -1083,6 +1082,7 @@ def __setKnowledgeBaseAttributes():
|
||||||
kb.osVersion = None
|
kb.osVersion = None
|
||||||
kb.osSP = None
|
kb.osSP = None
|
||||||
|
|
||||||
|
kb.pageStable = None
|
||||||
kb.parenthesis = None
|
kb.parenthesis = None
|
||||||
kb.partRun = None
|
kb.partRun = None
|
||||||
kb.proxyAuthHeader = None
|
kb.proxyAuthHeader = None
|
||||||
|
|
|
@ -298,6 +298,7 @@ def initTargetEnv():
|
||||||
kb.injPlace = None
|
kb.injPlace = None
|
||||||
kb.injType = None
|
kb.injType = None
|
||||||
kb.nullConnection = None
|
kb.nullConnection = None
|
||||||
|
kb.pageStable = None
|
||||||
kb.parenthesis = None
|
kb.parenthesis = None
|
||||||
kb.proxyAuthHeader = None
|
kb.proxyAuthHeader = None
|
||||||
kb.stackedTest = None
|
kb.stackedTest = None
|
||||||
|
|
|
@ -77,11 +77,11 @@ def comparison(page, headers=None, getSeqMatcher=False, pageLength=None):
|
||||||
if conf.thold:
|
if conf.thold:
|
||||||
conf.matchRatio = conf.thold
|
conf.matchRatio = conf.thold
|
||||||
|
|
||||||
elif conf.md5hash is not None and ratio > 0.6 and ratio < 1:
|
elif kb.pageStable and ratio > 0.6 and ratio < 1:
|
||||||
logger.debug("setting match ratio to %.3f" % ratio)
|
logger.debug("setting match ratio to %.3f" % ratio)
|
||||||
conf.matchRatio = ratio
|
conf.matchRatio = ratio
|
||||||
|
|
||||||
elif conf.md5hash is None or ( conf.md5hash is not None and ratio < 0.6 ):
|
elif not kb.pageStable or ( kb.pageStable and ratio < 0.6 ):
|
||||||
logger.debug("setting match ratio to default value 0.900")
|
logger.debug("setting match ratio to default value 0.900")
|
||||||
conf.matchRatio = 0.900
|
conf.matchRatio = 0.900
|
||||||
|
|
||||||
|
@ -93,13 +93,6 @@ def comparison(page, headers=None, getSeqMatcher=False, pageLength=None):
|
||||||
if getSeqMatcher:
|
if getSeqMatcher:
|
||||||
return ratio
|
return ratio
|
||||||
|
|
||||||
# If the url is stable it returns True if the page has the same MD5
|
|
||||||
# hash of the original one
|
|
||||||
# NOTE: old implementation, it did not handle automatically the fact
|
|
||||||
# that the url could be not stable (due to VIEWSTATE, counter, etc.)
|
|
||||||
#elif conf.md5hash is not None:
|
|
||||||
# return conf.md5hash == md5hash(page)
|
|
||||||
|
|
||||||
# In case of an DBMS error page return False
|
# In case of an DBMS error page return False
|
||||||
elif conf.errorComparison and kb.lastErrorPage and kb.lastErrorPage[0]==kb.lastRequestUID:
|
elif conf.errorComparison and kb.lastErrorPage and kb.lastErrorPage[0]==kb.lastRequestUID:
|
||||||
return False
|
return False
|
||||||
|
|
Loading…
Reference in New Issue
Block a user