minor update regarding --load-cookies

This commit is contained in:
Miroslav Stampar 2012-03-08 10:19:34 +00:00
parent 2c87d061e9
commit cd28eb6544
4 changed files with 19 additions and 8 deletions

View File

@ -8,6 +8,7 @@ See the file 'doc/COPYING' for copying permission
""" """
import codecs import codecs
import cookielib
import copy import copy
import ctypes import ctypes
import httplib import httplib
@ -3194,3 +3195,15 @@ def hashDBRetrieve(key, unserialize=False, checkConf=False):
_ = "%s%s" % (conf.url or "%s%s" % (conf.hostname, conf.port), key) _ = "%s%s" % (conf.url or "%s%s" % (conf.hostname, conf.port), key)
return conf.hashDB.retrieve(_, unserialize) if kb.resumeValues and not (checkConf and any([conf.flushSession, conf.freshQueries])) else None return conf.hashDB.retrieve(_, unserialize) if kb.resumeValues and not (checkConf and any([conf.flushSession, conf.freshQueries])) else None
def resetCookieJar(cookieJar):
if not conf.loC:
cookieJar.clear()
else:
try:
cookieJar.load(conf.loC)
cookieJar.clear_expired_cookies()
except cookielib.LoadError, msg:
errMsg = "there was a problem loading "
errMsg += "cookies file ('%s')" % msg
raise sqlmapGenericException, errMsg

View File

@ -44,6 +44,7 @@ from lib.core.common import paths
from lib.core.common import randomRange from lib.core.common import randomRange
from lib.core.common import randomStr from lib.core.common import randomStr
from lib.core.common import readInput from lib.core.common import readInput
from lib.core.common import resetCookieJar
from lib.core.common import runningAsAdmin from lib.core.common import runningAsAdmin
from lib.core.common import sanitizeStr from lib.core.common import sanitizeStr
from lib.core.common import setOptimize from lib.core.common import setOptimize
@ -152,12 +153,7 @@ def __urllib2Opener():
conf.cj = cookielib.CookieJar() conf.cj = cookielib.CookieJar()
else: else:
conf.cj = cookielib.MozillaCookieJar() conf.cj = cookielib.MozillaCookieJar()
try: resetCookieJar(conf.cj)
conf.cj.load(conf.loC)
except cookielib.LoadError, msg:
errMsg = "there was a problem loading "
errMsg += "cookies file ('%s')" % msg
raise sqlmapGenericException, errMsg
handlers.append(urllib2.HTTPCookieProcessor(conf.cj)) handlers.append(urllib2.HTTPCookieProcessor(conf.cj))

View File

@ -18,6 +18,7 @@ from lib.core.common import hashDBRetrieve
from lib.core.common import intersect from lib.core.common import intersect
from lib.core.common import paramToDict from lib.core.common import paramToDict
from lib.core.common import readInput from lib.core.common import readInput
from lib.core.common import resetCookieJar
from lib.core.convert import urldecode from lib.core.convert import urldecode
from lib.core.data import cmdLineOptions from lib.core.data import cmdLineOptions
from lib.core.data import conf from lib.core.data import conf
@ -409,7 +410,7 @@ def initTargetEnv():
conf.hashDB.close() conf.hashDB.close()
if conf.cj: if conf.cj:
conf.cj.clear() resetCookieJar(conf.cj)
conf.paramDict = {} conf.paramDict = {}
conf.parameters = {} conf.parameters = {}

View File

@ -19,6 +19,7 @@ from lib.core.common import extractErrorMessage
from lib.core.common import extractRegexResult from lib.core.common import extractRegexResult
from lib.core.common import getUnicode from lib.core.common import getUnicode
from lib.core.common import readInput from lib.core.common import readInput
from lib.core.common import resetCookieJar
from lib.core.common import singleTimeLogMessage from lib.core.common import singleTimeLogMessage
from lib.core.data import conf from lib.core.data import conf
from lib.core.data import kb from lib.core.data import kb
@ -71,7 +72,7 @@ def forgeHeaders(items=None):
headers[HTTPHEADER.COOKIE] += "%s %s=%s" % (DEFAULT_COOKIE_DELIMITER, cookie.name, cookie.value) headers[HTTPHEADER.COOKIE] += "%s %s=%s" % (DEFAULT_COOKIE_DELIMITER, cookie.name, cookie.value)
if kb.testMode: if kb.testMode:
conf.cj.clear() resetCookieJar(conf.cj)
if kb.redirectSetCookie and not conf.dropSetCookie: if kb.redirectSetCookie and not conf.dropSetCookie:
if HTTPHEADER.COOKIE in headers: if HTTPHEADER.COOKIE in headers: