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

Skip to content

Commit 2b5e429

Browse files
committed
one more level of defense against user himself
1 parent a675c88 commit 2b5e429

2 files changed

Lines changed: 7 additions & 3 deletions

File tree

lib/core/common.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -78,6 +78,7 @@
7878
from lib.core.settings import BIGARRAY_CHUNK_LENGTH
7979
from lib.core.settings import DEFAULT_COOKIE_DELIMITER
8080
from lib.core.settings import DEFAULT_GET_POST_DELIMITER
81+
from lib.core.settings import DUMMY_USER_INJECTION
8182
from lib.core.settings import INFERENCE_UNKNOWN_CHAR
8283
from lib.core.settings import UNICODE_ENCODING
8384
from lib.core.settings import DBMS_DICT
@@ -675,13 +676,13 @@ def paramToDict(place, parameters=None):
675676
if condition:
676677
testableParameters[parameter] = "=".join(elem[1:])
677678
if testableParameters[parameter].strip(DUMMY_SQL_INJECTION_CHARS) != testableParameters[parameter]\
678-
or re.search(r'\A9{3,}', testableParameters[parameter]):
679+
or re.search(r'\A9{3,}', testableParameters[parameter]) or re.search(DUMMY_USER_INJECTION, testableParameters[parameter]):
679680
errMsg = "you have provided tainted parameter values "
680-
errMsg += "(%s) with most probably leftover " % element
681+
errMsg += "('%s') with most probably leftover " % element
681682
errMsg += "chars from manual sql injection "
682683
errMsg += "tests (%s) or non-valid numerical value. " % DUMMY_SQL_INJECTION_CHARS
683684
errMsg += "Please, always use only valid parameter values "
684-
errMsg += "so sqlmap could be able to do a valid run."
685+
errMsg += "so sqlmap could be able to properly run"
685686
raise sqlmapSyntaxException, errMsg
686687
else:
687688
root = ET.XML(parameters)

lib/core/settings.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -373,6 +373,9 @@
373373
# Chars used to quickly distinguish if the user provided tainted parameter values
374374
DUMMY_SQL_INJECTION_CHARS = ";()'"
375375

376+
# Simple check against dummy users
377+
DUMMY_USER_INJECTION = "(?i)[^\w](AND|OR)\s+[^\s]+[=><]"
378+
376379
# Extensions skipped by crawler
377380
CRAWL_EXCLUDE_EXTENSIONS = ("gif","jpg","jar","tif","bmp","war","ear","mpg","wmv","mpeg","scm","iso","dmp","dll","cab","so","avi","bin","exe","iso","tar","png","pdf","ps","mp3","zip","rar","gz")
378381

0 commit comments

Comments
 (0)