Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 8004652

Browse files
committed
Some more optimization
1 parent c9b410c commit 8004652

2 files changed

Lines changed: 13 additions & 3 deletions

File tree

lib/core/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
from lib.core.revision import getRevisionNumber
2121

2222
# sqlmap version (<major>.<minor>.<month>.<monthly commit>)
23-
VERSION = "1.0.4.12"
23+
VERSION = "1.0.4.13"
2424
REVISION = getRevisionNumber()
2525
STABLE = VERSION.count('.') <= 2
2626
VERSION_STRING = "sqlmap/%s#%s" % (VERSION, "stable" if STABLE else "dev")

lib/parse/html.py

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ def __init__(self, page):
2424
ContentHandler.__init__(self)
2525

2626
self._dbms = None
27-
self._page = page
27+
self._page = (page or "")
28+
self._lower_page = self._page.lower()
2829

2930
self.dbms = None
3031

@@ -33,11 +34,20 @@ def _markAsErrorPage(self):
3334
threadData.lastErrorPage = (threadData.lastRequestUID, self._page)
3435

3536
def startElement(self, name, attrs):
37+
if self.dbms:
38+
return
39+
3640
if name == "dbms":
3741
self._dbms = attrs.get("value")
3842

3943
elif name == "error":
40-
if re.search(attrs.get("regexp"), self._page, re.I):
44+
regexp = attrs.get("regexp")
45+
if regexp not in kb.cache.regex:
46+
keywords = re.findall("\w+", re.sub(r"\\.", " ", regexp))
47+
keywords = sorted(keywords, key=len)
48+
kb.cache.regex[regexp] = keywords[-1].lower()
49+
50+
if kb.cache.regex[regexp] in self._lower_page and re.search(regexp, self._page, re.I):
4151
self.dbms = self._dbms
4252
self._markAsErrorPage()
4353

0 commit comments

Comments
 (0)