@@ -44,6 +44,7 @@ def vulnTest():
44
44
("-u <url> --data='code=1' --code=200 --technique=B --banner --no-cast --flush-session" , ("back-end DBMS: SQLite" , "banner: '3." , "~COALESCE(CAST(" )),
45
45
(u"-c <config> --flush-session --smart --roles --statements --hostname --privileges --sql-query=\" SELECT '\u0161 u\u0107 uraj'\" --technique=U" , (u": '\u0161 u\u0107 uraj'" , "on SQLite it is not possible" )),
46
46
(u"-u <url> --flush-session --sql-query=\" SELECT '\u0161 u\u0107 uraj'\" --technique=B --no-escape --string=luther --unstable" , (u": '\u0161 u\u0107 uraj'" ,)),
47
+ ("-m <multiple> --flush-session --technique=B --banner" , ("URL 3:" , "back-end DBMS: SQLite" , "banner: '3." )),
47
48
("--dummy" , ("all tested parameters do not appear to be injectable" , "does not seem to be injectable" , "there is not at least one" , "~might be injectable" )),
48
49
("-u '<url>&id2=1' -p id2 -v 5 --flush-session --level=5 --text-only --test-filter='AND boolean-based blind - WHERE or HAVING clause (MySQL comment)'" , ("~1AND" ,)),
49
50
("--list-tampers" , ("between" , "MySQL" , "xforwardedfor" )),
@@ -117,6 +118,9 @@ def _thread():
117
118
handle , log = tempfile .mkstemp (suffix = ".log" )
118
119
os .close (handle )
119
120
121
+ handle , multiple = tempfile .mkstemp (suffix = ".lst" )
122
+ os .close (handle )
123
+
120
124
content = "POST / HTTP/1.0\n User-agent: foobar\n Host: %s:%s\n \n id=1\n " % (address , port )
121
125
122
126
open (request , "w+" ).write (content )
@@ -129,11 +133,13 @@ def _thread():
129
133
content = open (os .path .abspath (os .path .join (os .path .dirname (__file__ ), ".." , ".." , "sqlmap.conf" ))).read ().replace ("url =" , "url = %s" % url )
130
134
open (config , "w+" ).write (content )
131
135
136
+ open (multiple , "w+" ).write ("%s?%s=%d\n %s?%s=%d\n %s&%s=1" % (base , randomStr (), randomInt (), base , randomStr (), randomInt (), url , randomStr ()))
137
+
132
138
for options , checks in TESTS :
133
139
status = '%d/%d (%d%%) ' % (count , len (TESTS ), round (100.0 * count / len (TESTS )))
134
140
dataToStdout ("\r [%s] [INFO] complete: %s" % (time .strftime ("%X" ), status ))
135
141
136
- for tag , value in (("<url>" , url ), ("<base>" , base ), ("<direct>" , direct ), ("<request>" , request ), ("<log>" , log ), ("<config>" , config ), ("<base64>" , url .replace ("id=1" , "id=MZ=%3d" ))):
142
+ for tag , value in (("<url>" , url ), ("<base>" , base ), ("<direct>" , direct ), ("<request>" , request ), ("<log>" , log ), ("<multiple>" , multiple ), ( "< config>" , config ), ("<base64>" , url .replace ("id=1" , "id=MZ=%3d" ))):
137
143
options = options .replace (tag , value )
138
144
139
145
cmd = "%s \" %s\" %s --batch --non-interactive --debug" % (sys .executable , os .path .abspath (os .path .join (os .path .dirname (__file__ ), ".." , ".." , "sqlmap.py" )), options )
0 commit comments