@@ -44,6 +44,7 @@ def vulnTest():
4444 ("-u <url> --data='code=1' --code=200 --technique=B --banner --no-cast --flush-session" , ("back-end DBMS: SQLite" , "banner: '3." , "~COALESCE(CAST(" )),
4545 (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" )),
4646 (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." )),
4748 ("--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" )),
4849 ("-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" ,)),
4950 ("--list-tampers" , ("between" , "MySQL" , "xforwardedfor" )),
@@ -117,6 +118,9 @@ def _thread():
117118 handle , log = tempfile .mkstemp (suffix = ".log" )
118119 os .close (handle )
119120
121+ handle , multiple = tempfile .mkstemp (suffix = ".lst" )
122+ os .close (handle )
123+
120124 content = "POST / HTTP/1.0\n User-agent: foobar\n Host: %s:%s\n \n id=1\n " % (address , port )
121125
122126 open (request , "w+" ).write (content )
@@ -129,11 +133,13 @@ def _thread():
129133 content = open (os .path .abspath (os .path .join (os .path .dirname (__file__ ), ".." , ".." , "sqlmap.conf" ))).read ().replace ("url =" , "url = %s" % url )
130134 open (config , "w+" ).write (content )
131135
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+
132138 for options , checks in TESTS :
133139 status = '%d/%d (%d%%) ' % (count , len (TESTS ), round (100.0 * count / len (TESTS )))
134140 dataToStdout ("\r [%s] [INFO] complete: %s" % (time .strftime ("%X" ), status ))
135141
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" ))):
137143 options = options .replace (tag , value )
138144
139145 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