mirror of
https://github.com/sqlmapproject/sqlmap.git
synced 2025-01-23 15:54:24 +03:00
Adding support for detecting CAPTCHA
This commit is contained in:
parent
d326965966
commit
ec8cf6aadc
|
@ -1833,6 +1833,8 @@ def _setKnowledgeBaseAttributes(flushAll=True):
|
|||
kb.cache.regex = {}
|
||||
kb.cache.stdev = {}
|
||||
|
||||
kb.captchaDetected = None
|
||||
|
||||
kb.chars = AttribDict()
|
||||
kb.chars.delimiter = randomStr(length=6, lowercase=True)
|
||||
kb.chars.start = "%s%s%s" % (KB_CHARS_BOUNDARY_CHAR, randomStr(length=3, alphabet=KB_CHARS_LOW_FREQUENCY_ALPHABET), KB_CHARS_BOUNDARY_CHAR)
|
||||
|
|
|
@ -19,7 +19,7 @@ from lib.core.enums import OS
|
|||
from lib.core.revision import getRevisionNumber
|
||||
|
||||
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
|
||||
VERSION = "1.0.6.7"
|
||||
VERSION = "1.0.6.8"
|
||||
REVISION = getRevisionNumber()
|
||||
STABLE = VERSION.count('.') <= 2
|
||||
VERSION_STRING = "sqlmap/%s#%s" % (VERSION, "stable" if STABLE else "dev")
|
||||
|
|
|
@ -354,6 +354,15 @@ def processResponse(page, responseHeaders):
|
|||
conf.paramDict[PLACE.POST][name] = value
|
||||
conf.parameters[PLACE.POST] = re.sub("(?i)(%s=)[^&]+" % name, r"\g<1>%s" % value, conf.parameters[PLACE.POST])
|
||||
|
||||
page += "<form>\n</form><form>\ncaptcha</form>"
|
||||
if not kb.captchaDetected and re.search(r"(?i)captcha", page or ""):
|
||||
for match in re.finditer(r"(?si)<form.+?</form>", page):
|
||||
if re.search(r"(?i)captcha", match.group(0)):
|
||||
kb.captchaDetected = True
|
||||
errMsg = "potential CAPTCHA protection mechanism detected"
|
||||
singleTimeLogMessage(errMsg, logging.ERROR)
|
||||
break
|
||||
|
||||
if re.search(BLOCKED_IP_REGEX, page):
|
||||
errMsg = "it appears that you have been blocked by the target server"
|
||||
singleTimeLogMessage(errMsg, logging.ERROR)
|
||||
|
|
Loading…
Reference in New Issue
Block a user