From ee1598887884abf8910b056d703b4d2508bc7c95 Mon Sep 17 00:00:00 2001 From: Miroslav Stampar Date: Thu, 31 Mar 2011 17:34:07 +0000 Subject: [PATCH] another minor update related to previous commit --- lib/core/agent.py | 14 +++++++------- lib/utils/hash.py | 3 ++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/lib/core/agent.py b/lib/core/agent.py index c389e2f00..482ebcd3d 100644 --- a/lib/core/agent.py +++ b/lib/core/agent.py @@ -363,13 +363,13 @@ class Agent: """ prefixRegex = "(?:\s+(?:FIRST|SKIP)\s+\d+)*" - fieldsSelectTop = re.search("\ASELECT\s+TOP\s+[\d]+\s+(.+?)\s+FROM", query, re.I) - fieldsSelectDistinct = re.search("\ASELECT%s\s+DISTINCT\((.+?)\)\s+FROM" % prefixRegex, query, re.I) - fieldsSelectCase = re.search("\ASELECT%s\s+(\(CASE WHEN\s+.+\s+END\))" % prefixRegex, query, re.I) - fieldsSelectFrom = re.search("\ASELECT%s\s+(.+?)\s+FROM\s+" % prefixRegex, query, re.I) - fieldsExists = re.search("EXISTS(.*)", query, re.I) - fieldsSelect = re.search("\ASELECT%s\s+(.*)" % prefixRegex, query, re.I) - fieldsSubstr = re.search("\ASUBSTR", query, re.I) + fieldsSelectTop = getCompiledRegex("\ASELECT\s+TOP\s+[\d]+\s+(.+?)\s+FROM", re.I).search(query) + fieldsSelectDistinct = getCompiledRegex("\ASELECT%s\s+DISTINCT\((.+?)\)\s+FROM" % prefixRegex, re.I).search(query) + fieldsSelectCase = getCompiledRegex("\ASELECT%s\s+(\(CASE WHEN\s+.+\s+END\))" % prefixRegex, re.I).search(query) + fieldsSelectFrom = getCompiledRegex("\ASELECT%s\s+(.+?)\s+FROM\s+" % prefixRegex, re.I).search(query) + fieldsExists = getCompiledRegex("EXISTS(.*)", re.I).search(query) + fieldsSelect = getCompiledRegex("\ASELECT%s\s+(.*)" % prefixRegex, re.I).search(query) + fieldsSubstr = getCompiledRegex("\ASUBSTR", re.I).search(query) fieldsNoSelect = query if fieldsSubstr: diff --git a/lib/utils/hash.py b/lib/utils/hash.py index 46dde0fae..6e47da819 100644 --- a/lib/utils/hash.py +++ b/lib/utils/hash.py @@ -28,6 +28,7 @@ from lib.core.common import dataToStdout from lib.core.common import getCompiledRegex from lib.core.common import getFileItems from lib.core.common import Backend +from lib.core.common import getCompiledRegex from lib.core.common import getPublicTypeMembers from lib.core.common import normalizeUnicode from lib.core.common import paths @@ -338,7 +339,7 @@ def dictionaryAttack(attack_dict): hash_ = hash_.split()[0] - if re.match(hash_regex, hash_): + if getCompiledRegex(hash_regex).match(hash_): hash_ = hash_.lower() if hash_regex in (HASH.MYSQL, HASH.MYSQL_OLD, HASH.MD5_GENERIC, HASH.SHA1_GENERIC):