From 6e548eb2ec37e03e6c0f2a4c7ef2d8007af52887 Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Thu, 27 Nov 2008 22:33:33 +0000 Subject: [PATCH] Completed support to get the list of targets from WebScarab/Burp proxies log file and updated the documentation --- doc/ChangeLog | 9 +- doc/README.html | 35 +++--- doc/README.pdf | Bin 292617 -> 293015 bytes doc/README.sgml | 37 +++--- doc/THANKS | 9 +- lib/controller/controller.py | 41 +++++-- lib/core/common.py | 2 +- lib/core/option.py | 219 ++++++++++++++++++----------------- lib/core/target.py | 14 +++ lib/parse/cmdline.py | 8 +- lib/utils/google.py | 11 +- lib/utils/resume.py | 2 +- sqlmap.conf | 11 +- 13 files changed, 232 insertions(+), 166 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 1ea7867c8..5fcf66cd9 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -3,6 +3,10 @@ sqlmap (0.6.3-1) stable; urgency=low * Major enhancement to support stacked queries when the web application supports it which will be used in the long run by takeover functionality; + * Major enhancement to get list of targets to test from Burp proxy + (http://portswigger.net/suite/) requests log file path or WebScarab + proxy (http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project) + 'conversations/' folder path; * Minor enhancement to test if the injectable parameter is affected by a time based blind SQL injection technique; * Minor enhancement to fingerprint the web server operating system and @@ -28,6 +32,7 @@ sqlmap (0.6.3-1) stable; urgency=low * Minor bug fix to correctly enumerate columns on Microsoft SQL Server; * Minor bug fix to correctly dump table entries when the column is provided; + * Updated documentation. -- Bernardo Damele A. G. Day, X YYY 2008 10:00:00 +0000 @@ -218,14 +223,14 @@ sqlmap (0.4-1) stable; urgency=low the remote DBMS; * Major improvements in union.UnionCheck() and union.UnionUse() functions to make it possible to exploit inband SQL injection also - with database comment characters ('--' and '#') in UNION SELECT + with database comment characters ('--' and '#') in UNION query statements; * Added the possibility to save the output into a file while performing the queries (-o OUTPUTFILE) so it is possible to stop and resume the same query output retrieving in a second time (--resume); * Added support to specify the database table column to enumerate (-C COL); - * Added inband SQL injection (UNION SELECT) support (--union-use); + * Added inband SQL injection (UNION query) support (--union-use); * Complete code refactoring, a lot of minor and some major fixes in libraries, many minor improvements; * Reviewed the directory tree structure; diff --git a/doc/README.html b/doc/README.html index 583ba0679..da2b257be 100644 --- a/doc/README.html +++ b/doc/README.html @@ -8,7 +8,7 @@

sqlmap user's manual

by -Bernardo Damele A. G.

version 0.6.3, DDth of November 2008 +Bernardo Damele A. G.version 0.6.3, DDth of December 2008
This document is the user's manual to use sqlmap. @@ -349,7 +349,7 @@ $ python sqlmap.py -h sqlmap/0.6.3 coded by Bernardo Damele A. G. <bernardo.damele@gmail.com> and Daniele Bellucci <daniele.bellucci@gmail.com> -Usage: sqlmap.py [options] {-u <URL> | -g <google dork> | -c <config file>} +Usage: sqlmap.py [options] {-u "<URL>" | -g "<google dork>" | -c "<config file>"} Options: --version show program's version number and exit @@ -384,8 +384,8 @@ Options: using the default blind SQL injection technique. --time-test Test for Time based blind SQL injection - --union-test Test for UNION SELECT (inband) SQL injection - --union-use Use the UNION SELECT (inband) SQL injection to + --union-test Test for UNION query (inband) SQL injection + --union-use Use the UNION query (inband) SQL injection to retrieve the queries output. No need to go blind Fingerprint: @@ -487,7 +487,7 @@ headers and level 5 show also HTTP responses page content.

-$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 1
+$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 1
 
 [hh:mm:01] [INFO] testing connection to the target url
 [hh:mm:01] [INFO] testing if the url is stable, wait a few seconds
@@ -525,7 +525,7 @@ back-end DBMS:    MySQL >= 5.0.0
 

-$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 2
+$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 2
 
 [hh:mm:34] [DEBUG] initializing the configuration
 [hh:mm:34] [DEBUG] initializing the knowledge base
@@ -548,7 +548,7 @@ $ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat
 

-$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 3
+$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 3
 
 [...]
 [hh:mm:28] [INFO] testing connection to the target url
@@ -575,7 +575,7 @@ Connection: close
 

-$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 4
+$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 4
 
 [...]
 [hh:mm:32] [INFO] testing connection to the target url
@@ -620,7 +620,7 @@ Content-Type: text/html
 

-$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 5
+$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 5
 
 [...]
 [hh:mm:23] [INFO] testing connection to the target url
@@ -675,6 +675,13 @@ Content-Type: text/html
 

+

List of targets

+ +

Option: -l

+ +

TODO

+ +

Process Google dork results as target urls

Option: -g

@@ -733,7 +740,7 @@ injection test and inject directly only against the provided parameter(s).

 $ python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1&cat=2" -v 1 \
-  -p id
+  -p "id"
 
 [hh:mm:48] [INFO] testing connection to the target url
 [hh:mm:48] [INFO] testing if the url is stable, wait a few seconds
@@ -769,7 +776,7 @@ $ python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1&ca
 
 $ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 1 \
-  -p user-agent --user-agent "sqlmap/0.6.3 (http://sqlmap.sourceforge.net)"
+  -p "user-agent" --user-agent "sqlmap/0.6.3 (http://sqlmap.sourceforge.net)"
 
 [hh:mm:40] [WARNING] the testable parameter 'user-agent' you provided is not into the GET
 [hh:mm:40] [INFO] testing connection to the target url
@@ -816,7 +823,7 @@ tested for SQL injection like the GET parameters.

-$ python sqlmap.py -u http://192.168.1.121/sqlmap/oracle/post_int.php --method POST \
+$ python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/post_int.php" --method POST \
   --data "id=1&cat=2"
 
 [hh:mm:53] [INFO] testing connection to the target url
@@ -1216,7 +1223,7 @@ request. The valid value is a float, for instance 0.5.

TODO

-

Test for UNION SELECT query SQL injection

+

Test for UNION query SQL injection

Option: --union-test

@@ -1266,7 +1273,7 @@ affected by an inband SQL injection. In case this vulnerability is exploitable it is strongly recommended to use it.

-

Use the UNION SELECT query SQL injection

+

Use the UNION query SQL injection

Option: --union-use

diff --git a/doc/README.pdf b/doc/README.pdf index d99406f46b3493150b1096cc30ce9b73d64b22fa..d418440f690f8e67b5376e827771a58164401eef 100644 GIT binary patch delta 72178 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

`CZg2)=+*?%ZB$96lrh?Gv8;td*6>_ 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 delta 71824 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 user's manual by -version 0.6.3, DDth of November 2008 +version 0.6.3, DDth of December 2008 This document is the user's manual to use . Check the project @@ -309,7 +309,7 @@ $ python sqlmap.py -h sqlmap/0.6.3 coded by Bernardo Damele A. G. and Daniele Bellucci -Usage: sqlmap.py [options] {-u | -g | -c } +Usage: sqlmap.py [options] {-u "" | -g "" | -c ""} Options: --version show program's version number and exit @@ -344,8 +344,8 @@ Options: using the default blind SQL injection technique. --time-test Test for Time based blind SQL injection - --union-test Test for UNION SELECT (inband) SQL injection - --union-use Use the UNION SELECT (inband) SQL injection to + --union-test Test for UNION query (inband) SQL injection + --union-use Use the UNION query (inband) SQL injection to retrieve the queries output. No need to go blind Fingerprint: @@ -446,7 +446,7 @@ headers and level 5 show also HTTP responses page content. Example on a MySQL 5.0.51 target (verbosity level 1): -$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 1 +$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 1 [hh:mm:01] [INFO] testing connection to the target url [hh:mm:01] [INFO] testing if the url is stable, wait a few seconds @@ -482,7 +482,7 @@ back-end DBMS: MySQL >= 5.0.0 Example on a MySQL 5.0.51 target (verbosity level 2): -$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 2 +$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 2 [hh:mm:34] [DEBUG] initializing the configuration [hh:mm:34] [DEBUG] initializing the knowledge base @@ -503,7 +503,7 @@ $ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat Example on a MySQL 5.0.51 target (verbosity level 3): -$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 3 +$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 3 [...] [hh:mm:28] [INFO] testing connection to the target url @@ -528,7 +528,7 @@ Connection: close Example on a MySQL 5.0.51 target (verbosity level 4): -$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 4 +$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 4 [...] [hh:mm:32] [INFO] testing connection to the target url @@ -571,7 +571,7 @@ Content-Type: text/html Example on a MySQL 5.0.51 target (verbosity level 5): -$ python sqlmap.py -u http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 -v 5 +$ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 5 [...] [hh:mm:23] [INFO] testing connection to the target url @@ -624,6 +624,15 @@ Content-Type: text/html +List of targets + +

+Option: -l + +

+TODO + + Process Google dork results as target urls

@@ -685,7 +694,7 @@ Example on a PostgreSQL 8.2.7 target: $ python sqlmap.py -u "http://192.168.1.121/sqlmap/pgsql/get_int.php?id=1&cat=2" -v 1 \ - -p id + -p "id" [hh:mm:48] [INFO] testing connection to the target url [hh:mm:48] [INFO] testing if the url is stable, wait a few seconds @@ -718,7 +727,7 @@ Example on a MySQL 5.0.51 target: $ python sqlmap.py -u "http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2" -v 1 \ - -p user-agent --user-agent "sqlmap/0.6.3 (http://sqlmap.sourceforge.net)" + -p "user-agent" --user-agent "sqlmap/0.6.3 (http://sqlmap.sourceforge.net)" [hh:mm:40] [WARNING] the testable parameter 'user-agent' you provided is not into the GET [hh:mm:40] [INFO] testing connection to the target url @@ -765,7 +774,7 @@ tested for SQL injection like the GET parameters. Example on an Oracle XE 10.2.0.1 target: -$ python sqlmap.py -u http://192.168.1.121/sqlmap/oracle/post_int.php --method POST \ +$ python sqlmap.py -u "http://192.168.1.121/sqlmap/oracle/post_int.php" --method POST \ --data "id=1&cat=2" [hh:mm:53] [INFO] testing connection to the target url @@ -1158,7 +1167,7 @@ Option: --time-test TODO -Test for UNION SELECT query SQL injection +Test for UNION query SQL injection

Option: --union-test @@ -1207,7 +1216,7 @@ affected by an inband SQL injection. In case this vulnerability is exploitable it is strongly recommended to use it. -Use the UNION SELECT query SQL injection +Use the UNION query SQL injection

Option: --union-use diff --git a/doc/THANKS b/doc/THANKS index 7bdb270e7..38474a788 100644 --- a/doc/THANKS +++ b/doc/THANKS @@ -51,8 +51,11 @@ Will Holcomb Luke Jahnke for reporting a bug when running against MySQL < 5.0 +Anant Kochhar + for providing me with feedback on the user's manual + Nico Leidecker - for providing with feedback on a few features + for providing me with feedback on a few features Pavol Luptak for reporting a bug when injecting on a POST data parameter @@ -62,6 +65,10 @@ Michael Majchrowicz for providing really appreciated feedback for suggesting a lot of ideas and features +Ferruh Mavituna + for providing me with ideas on the implementation on a couple of + new features + Enrico Milanese for reporting a bugs when using (-a) a single line User-Agent file for providing me with some ideas for the PHP backdoor diff --git a/lib/controller/controller.py b/lib/controller/controller.py index 7da39b948..bc7ad8e54 100644 --- a/lib/controller/controller.py +++ b/lib/controller/controller.py @@ -92,25 +92,40 @@ def start(): """ if conf.url: - kb.targetUrls[conf.url] = None + kb.targetUrls.add(( conf.url, conf.method, conf.data, conf.cookie )) if conf.configFile and not kb.targetUrls: errMsg = "you did not edit the configuration file properly, set " errMsg += "the target url, list of targets or google dork" logger.error(errMsg) + if kb.targetUrls and len(kb.targetUrls) > 1: + infoMsg = "sqlmap got a total of %d targets" % len(kb.targetUrls) + logger.info(infoMsg) + hostCount = 0 - injData = [] receivedCookies = [] cookieStr = "" setCookieAsInjectable = True - for targetUrl, targetData in kb.targetUrls.items(): + for targetUrl, targetMethod, targetData, targetCookie in kb.targetUrls: + conf.url = targetUrl + conf.method = targetMethod + conf.data = targetData + conf.cookie = targetCookie + injData = [] + if conf.multipleTargets: hostCount += 1 + message = "url %d:\n%s %s" % (hostCount, conf.method, targetUrl) - message = "url %d: %s, " % (hostCount, targetUrl) - message += "do you want to test this url? [Y/n/q] " + if conf.cookie: + message += "\nCookie: %s" % conf.cookie + + if conf.data: + message += "\nPOST data: %s" % conf.data + + message += "\ndo you want to test this url? [Y/n/q] " test = readInput(message, default="Y") if not test: @@ -123,10 +138,6 @@ def start(): logMsg = "testing url %s" % targetUrl logger.info(logMsg) - if targetData: - conf.method, conf.data, conf.cookie = targetData - - conf.url = targetUrl initTargetEnv() if not checkConnection() or not checkString(): @@ -206,9 +217,14 @@ def start(): break else: - warnMsg = "%s parameter '%s' is not " % (place, parameter) - warnMsg += "injectable with %d parenthesis" % parenthesis - logger.warn(warnMsg) + infoMsg = "%s parameter '%s' is not " % (place, parameter) + infoMsg += "injectable with %d parenthesis" % parenthesis + logger.info(infoMsg) + + if not injData: + warnMsg = "%s parameter '%s' is not " % (place, parameter) + warnMsg += "injectable" + logger.warn(warnMsg) if not kb.injPlace or not kb.injParameter or not kb.injType: if len(injData) == 1: @@ -230,6 +246,7 @@ def start(): kb.injPlace, kb.injParameter, kb.injType = injDataSelected setInjection() + print kb.injPlace, kb.injParameter, kb.injType if not conf.multipleTargets and ( not kb.injPlace or not kb.injParameter or not kb.injType ): raise sqlmapNotVulnerableException, "all parameters are not injectable" elif kb.injPlace and kb.injParameter and kb.injType: diff --git a/lib/core/common.py b/lib/core/common.py index adbf534d5..e5fdac7f1 100644 --- a/lib/core/common.py +++ b/lib/core/common.py @@ -75,7 +75,7 @@ def paramToDict(place, parameters=None): elem = element.split("=") if len(elem) == 2: - parameter = elem[0] + parameter = elem[0].replace(" ", "") condition = not conf.testParameter condition |= parameter in conf.testParameter diff --git a/lib/core/option.py b/lib/core/option.py index 3e2ca9e4d..b41e9e115 100644 --- a/lib/core/option.py +++ b/lib/core/option.py @@ -81,6 +81,111 @@ def __urllib2Opener(): urllib2.install_opener(opener) +def __feedTargetsDict(reqFile, addedTargetUrls): + fp = open(reqFile, "r") + + fread = fp.read() + fread = fread.replace("\r", "") + + reqResList = fread.split("======================================================") + + for request in reqResList: + if not re.search ("^[\n]*(GET|POST).*?\sHTTP\/", request, re.I): + continue + + getPostReq = False + url = None + host = None + method = None + data = None + cookie = None + params = False + lines = request.split("\n") + + for line in lines: + if len(line) == 0 or line == "\n": + continue + + if line.startswith("GET ") or line.startswith("POST "): + if line.startswith("GET "): + index = 4 + else: + index = 5 + + url = line[index:line.index(" HTTP/")] + method = line[:index-1] + + if "?" in line and "=" in line: + params = True + + getPostReq = True + + elif "?" in line and "=" in line and ": " not in line: + data = line + params = True + + elif ": " in line: + key, value = line.split(": ", 1) + + if key.lower() == "cookie": + cookie = value + elif key.lower() == "host": + host = value + + if getPostReq and params: + if not url.startswith("http"): + url = "http://%s%s" % (host, url) + + if not kb.targetUrls or url not in addedTargetUrls: + kb.targetUrls.add(( url, method, data, cookie )) + addedTargetUrls.add(url) + + +def __setMultipleTargets(): + """ + Define a configuration parameter if we are running in multiple target + mode. + """ + + initialTargetsCount = len(kb.targetUrls) + addedTargetUrls = set() + + if not conf.list: + return + + debugMsg = "parsing targets list from '%s'" % conf.list + logger.debug(debugMsg) + + if not os.path.exists(conf.list): + errMsg = "the specified list of targets does not exist" + raise sqlmapFilePathException, errMsg + + if os.path.isfile(conf.list): + __feedTargetsDict(conf.list, addedTargetUrls) + + elif os.path.isdir(conf.list): + files = os.listdir(conf.list) + files.sort() + + for reqFile in files: + if not re.search("([\d]+)\-request", reqFile): + continue + + __feedTargetsDict(os.path.join(conf.list, reqFile), addedTargetUrls) + + else: + errMsg = "the specified list of targets is not a file " + errMsg += "nor a directory" + raise sqlmapFilePathException, errMsg + + updatedTargetsCount = len(kb.targetUrls) + + if updatedTargetsCount > initialTargetsCount: + infoMsg = "sqlmap parsed %d " % (updatedTargetsCount - initialTargetsCount) + infoMsg += "testable requests from the targets list" + logger.info(infoMsg) + + def __setGoogleDorking(): """ This function checks if the way to request testable hosts is through @@ -109,7 +214,7 @@ def __setGoogleDorking(): errMsg += "Google dork expression" raise sqlmapGenericException, errMsg - kb.targetUrls = googleObj.getTargetUrls() + googleObj.getTargetUrls() if kb.targetUrls: logMsg = "sqlmap got %d results for your " % len(matches) @@ -120,7 +225,7 @@ def __setGoogleDorking(): else: logMsg += "%d " % len(kb.targetUrls) - logMsg += "of them are testable hosts" + logMsg += "of them are testable targets" logger.info(logMsg) else: errMsg = "sqlmap got %d results " % len(matches) @@ -129,103 +234,6 @@ def __setGoogleDorking(): raise sqlmapGenericException, errMsg -def __feedTargetsDict(reqFile): - fp = open(reqFile, "r") - - fread = fp.read() - fread = fread.replace("\r", "") - - # TODO: fix for Burp log file - reqResList = fread.split("\n\n======================================================\n\n\n\n") - - for request in reqResList: - url = None - host = None - method = None - data = None - cookie = None - params = False - lines = request.split("\n") - - for line in lines: - if len(line) == 0 or line == "\n": - continue - - if line.startswith("GET ") or line.startswith("POST "): - if line.startswith("GET "): - index = 4 - else: - index = 5 - - url = line[index:line.index(" HTTP/")] - method = line[:index-1] - - if "?" in line and "=" in line: - params = True - - elif "?" in line and "=" in line: - data = line - params = True - - elif ": " in line: - key, value = line.split(": ", 1) - - if key.lower() == "cookie": - cookie = value - elif key.lower() == "host": - host = value - - if params: - if not url.startswith("http"): - url = "http://%s%s" % (host, url) - - # TODO: exclude duplicated urls - kb.targetUrls[url] = ( method, data, cookie ) - - -def __setMultipleTargets(): - """ - Define a configuration parameter if we are running in multiple target - mode. - """ - - initialTargetsCount = len(kb.targetUrls) - - if conf.googleDork or conf.list: - conf.multipleTargets = True - - if not conf.list: - return - - if not os.path.exists(conf.list): - errMsg = "the specified list of target urls does not exist" - raise sqlmapFilePathException, errMsg - - if os.path.isfile(conf.list): - __feedTargetsDict(conf.list) - - elif os.path.isdir(conf.list): - files = os.listdir(conf.list) - files.sort() - - for reqFile in files: - if not re.search("([\d]+)\-request", reqFile): - continue - - __feedTargetsDict(os.path.join(conf.list, reqFile)) - - else: - errMsg = "the specified list of target urls is not a file " - errMsg += "nor a directory" - raise sqlmapFilePathException, errMsg - - updatedTargetsCount = len(kb.targetUrls) - - if updatedTargetsCount > initialTargetsCount: - infoMsg = "sqlmap parsed %d requests from the targets list" % (updatedTargetsCount - initialTargetsCount) - logger.info(infoMsg) - - def __setRemoteDBMS(): """ Checks and set the back-end DBMS option. @@ -359,9 +367,6 @@ def __setHTTPMethod(): """ if conf.method: - debugMsg = "setting the HTTP method to perform HTTP requests through" - logger.debug(debugMsg) - conf.method = conf.method.upper() if conf.method not in ("GET", "POST"): @@ -374,6 +379,9 @@ def __setHTTPMethod(): else: conf.method = "GET" + debugMsg = "setting the HTTP method to %s" % conf.method + logger.debug(debugMsg) + def __setHTTPStandardHeaders(): conf.httpHeaders.append(("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8")) @@ -509,6 +517,9 @@ def __cleanupOptions(): if conf.delay: conf.delay = float(conf.delay) + if conf.googleDork or conf.list: + conf.multipleTargets = True + def __setConfAttributes(): """ @@ -560,7 +571,7 @@ def __setKnowledgeBaseAttributes(): kb.injType = None kb.parenthesis = None kb.resumedQueries = {} - kb.targetUrls = {} + kb.targetUrls = set() kb.timeTest = None kb.unionComment = "" kb.unionCount = None @@ -680,8 +691,8 @@ def init(inputOptions=advancedDict()): __setHTTPProxy() __setThreads() __setRemoteDBMS() - __setMultipleTargets() __setGoogleDorking() + __setMultipleTargets() __urllib2Opener() update() diff --git a/lib/core/target.py b/lib/core/target.py index 36364d7e2..05353b873 100644 --- a/lib/core/target.py +++ b/lib/core/target.py @@ -197,6 +197,20 @@ def initTargetEnv(): Initialize target environment. """ + if conf.multipleTargets: + conf.paramDict = {} + conf.parameters = {} + kb.dbms = None + kb.dbmsDetected = False + kb.dbmsVersion = None + kb.injParameter = None + kb.injPlace = None + kb.injType = None + kb.parenthesis = None + kb.unionComment = "" + kb.unionCount = None + kb.unionPosition = None + parseTargetUrl() __setRequestParams() __setOutputResume() diff --git a/lib/parse/cmdline.py b/lib/parse/cmdline.py index 34468218d..a7b28da2a 100644 --- a/lib/parse/cmdline.py +++ b/lib/parse/cmdline.py @@ -37,7 +37,7 @@ def cmdLineParser(): This function parses the command line parameters and arguments """ - usage = "sqlmap.py [options] {-u | -g | -c }" + usage = "sqlmap.py [options] {-u \"\" | -g \"\" | -c \"\"}" parser = OptionParser(usage=usage, version=VERSION_STRING) try: @@ -49,7 +49,7 @@ def cmdLineParser(): request.add_option("-u", "--url", dest="url", help="Target url") - request.add_option("-l", dest="list", help="List of target urls") + request.add_option("-l", dest="list", help="List of targets") request.add_option("-g", dest="googleDork", help="Process Google dork results as target urls") @@ -118,11 +118,11 @@ def cmdLineParser(): techniques.add_option("--union-test", dest="unionTest", action="store_true", - help="Test for UNION SELECT (inband) SQL injection") + help="Test for UNION query (inband) SQL injection") techniques.add_option("--union-use", dest="unionUse", action="store_true", - help="Use the UNION SELECT (inband) SQL injection " + help="Use the UNION query (inband) SQL injection " "to retrieve the queries output. No " "need to go blind") diff --git a/lib/utils/google.py b/lib/utils/google.py index 3ef479792..0a1b0cb72 100644 --- a/lib/utils/google.py +++ b/lib/utils/google.py @@ -30,6 +30,7 @@ import urllib2 from lib.core.convert import urlencode from lib.core.data import conf +from lib.core.data import kb from lib.core.exception import sqlmapConnectionException from lib.core.exception import sqlmapRegExprException @@ -68,17 +69,9 @@ class Google: your Google dork search results """ - targetUrls = {} - targetUrlsSet = set() - for match in self.__matches: if re.search("(.*?)\?(.+)", match, re.I): - targetUrlsSet.add(match) - - for targetUrl in targetUrlsSet: - targetUrls[targetUrl] = None - - return targetUrls + kb.targetUrls.add(( match, None, None, None )) def getCookie(self): diff --git a/lib/utils/resume.py b/lib/utils/resume.py index 03d0311d2..38880163f 100644 --- a/lib/utils/resume.py +++ b/lib/utils/resume.py @@ -126,7 +126,7 @@ def resume(expression, payload): # If we called this function without providing a payload it means that # we have called it from lib/request/inject __goInband() function - # in UNION SELECT (inband) SQL injection so we return to the calling + # in UNION query (inband) SQL injection so we return to the calling # function so that the query output will be retrieved taking advantage # of the inband SQL injection vulnerability. if not payload: diff --git a/sqlmap.conf b/sqlmap.conf index 85fcc4018..6de0e63b4 100644 --- a/sqlmap.conf +++ b/sqlmap.conf @@ -3,13 +3,13 @@ # Target URL. # Example: http://192.168.1.121/sqlmap/mysql/get_int.php?id=1&cat=2 # PHP and MySQL (local) -#url = http://127.0.0.1/sqlmap/mysql/get_int.php?id=1 +url = http://127.0.0.1/sqlmap/mysql/get_int.php?id=1 # PHP and Oracle (local) #url = http://127.0.0.1/sqlmap/oracle/get_int.php?id=1 # PHP and PostgreSQL (local) #url = http://127.0.0.1/sqlmap/pgsql/get_int.php?id=1 # PHP and Microsoft SQL Server (remote) -url = http://127.0.0.1/sqlmap/mssql/get_int.php?id=1 +#url = http://127.0.0.1/sqlmap/mssql/get_int.php?id=1 # PHP and MySQL (remote on Windows) #url = http://127.0.0.1/sqlmap/mysql/win_get_int.php?id=1 # ASP and Microsoft SQL Server (local) @@ -21,6 +21,9 @@ url = http://127.0.0.1/sqlmap/mssql/get_int.php?id=1 #url = # List of targets +# Valid: Burp proxy (http://portswigger.net/suite/) requests log file path +# or WebScarab proxy (http://www.owasp.org/index.php/Category:OWASP_WebScarab_Project) +# 'conversations/' folder path list = # Rather than providing a target url, let Google return target @@ -107,11 +110,11 @@ dbms = # Valid: True or False timeTest = False -# Test for UNION SELECT (inband) SQL injection. +# Test for UNION query (inband) SQL injection. # Valid: True or False unionTest = False -# Use the UNION SELECT (inband) SQL injection to retrieve the queries +# Use the UNION query (inband) SQL injection to retrieve the queries # output. No need to go blind. # Valid: True or False unionUse = False