From b12d9552747c1ca1ec9c81055e224c8fb9efdfaf Mon Sep 17 00:00:00 2001 From: Bernardo Damele Date: Tue, 3 Feb 2009 15:38:40 +0000 Subject: [PATCH] Updated packaging scripts, site and finalized the documentation to release version 0.6.4 --- doc/ChangeLog | 2 +- doc/README.html | 23 +++++++++++++++++------ doc/README.pdf | Bin 336625 -> 337338 bytes doc/README.sgml | 24 ++++++++++++++++++------ lib/core/settings.py | 2 +- 5 files changed, 37 insertions(+), 14 deletions(-) diff --git a/doc/ChangeLog b/doc/ChangeLog index 38c633893..8ebecd164 100644 --- a/doc/ChangeLog +++ b/doc/ChangeLog @@ -27,7 +27,7 @@ sqlmap (0.6.4-1) stable; urgency=low provided; * Updated documentation. - -- Bernardo Damele A. G. Day, DD MMM 2009 10:00:00 +0000 + -- Bernardo Damele A. G. Tue, 3 Feb 2009 23:30:00 +0000 sqlmap (0.6.3-1) stable; urgency=low diff --git a/doc/README.html b/doc/README.html index 9e48db94a..497abee0b 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.4, DDth of MMM 2009 +Bernardo Damele A. G.version 0.6.4, 3rd of February 2009
This document is the user's manual to use sqlmap. @@ -407,7 +407,7 @@ $ python sqlmap.py -h sqlmap/0.6.4 coded by Bernardo Damele A. G. <bernardo.damele@gmail.com> and Daniele Bellucci <daniele.bellucci@gmail.com> - + Usage: sqlmap.py [options] Options: @@ -3801,7 +3801,8 @@ back-end DBMS: PostgreSQL sql> SELECT COUNT(name) FROM users [10:11:57] [INFO] fetching SQL SELECT statement query output: 'SELECT COUNT(name) FROM users' [10:11:57] [INPUT] can the SQL query provided return multiple entries? [Y/n] n -[10:11:59] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) FROM users +[10:11:59] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) +FROM users [10:11:59] [INFO] retrieved: 4 [10:11:59] [INFO] performed 13 queries in 0 seconds SELECT COUNT(name) FROM users: '4' @@ -3809,12 +3810,14 @@ SELECT COUNT(name) FROM users: '4' sql> INSERT INTO users (id, name, surname) VALUES (5, 'from', 'sql shell'); [10:12:35] [INFO] testing stacked queries support on parameter 'id' [10:12:40] [INFO] the web application supports stacked queries on parameter 'id' -[10:12:40] [INFO] executing SQL data manipulation query: 'INSERT INTO users (id, name, surname) VALUES (5, 'from', 'sql shell');' +[10:12:40] [INFO] executing SQL data manipulation query: 'INSERT INTO users (id, name, surname) +VALUES (5, 'from', 'sql shell');' [10:12:40] [INFO] done sql> SELECT COUNT(name) FROM users [10:12:51] [INFO] fetching SQL SELECT statement query output: 'SELECT COUNT(name) FROM users' [10:12:51] [INPUT] can the SQL query provided return multiple entries? [Y/n] n -[10:12:53] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) FROM users +[10:12:53] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) +FROM users [10:12:53] [INFO] retrieved: 5 [10:12:54] [INFO] performed 20 queries in 0 seconds SELECT COUNT(name) FROM users: '5' @@ -3822,7 +3825,15 @@ SELECT COUNT(name) FROM users: '5'

-

TODO

+

As you can see from this last example, when the user provides a SQL +statement other than SELECT, sqlmap recognizes it, tests if the +web application supports stacked queries and in case it does, it executes +the provided SQL statement in a multiple statement.

+ +

Beware that some web application technologies do not support stacked +queries on specific database management systems. For instance, PHP does not +support stacked queries when the back-end DBMS is MySQL, but it does +support when the back-end DBMS is PostgreSQL.

5.8 File system access diff --git a/doc/README.pdf b/doc/README.pdf index e18c43b52c281f6d80f24661b687908ea498d8ca..48d5dc3676c3dd695619c41cd8eb8bad76d412ed 100644 GIT binary patch delta 35596 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 n|L>GvzVP6KXFq-Y+LPCRf(xEG4MyVGKS`riBf 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 G5B~#ev#uHd diff --git a/doc/README.sgml b/doc/README.sgml index 29e9f3758..cddf7cf53 100644 --- a/doc/README.sgml +++ b/doc/README.sgml @@ -4,7 +4,7 @@ sqlmap user's manual <author>by <htmlurl url="mailto:bernardo.damele@gmail.com" name="Bernardo Damele A. G."> -<date>version 0.6.4, DDth of MMM 2009 +<date>version 0.6.4, 3rd of February 2009 <abstract> This document is the user's manual to use <htmlurl url="http://sqlmap.sourceforge.net" name="sqlmap">. Check the project <htmlurl url="http://sqlmap.sourceforge.net" name="homepage"> @@ -362,7 +362,7 @@ $ python sqlmap.py -h sqlmap/0.6.4 coded by Bernardo Damele A. G. <bernardo.damele@gmail.com> and Daniele Bellucci <daniele.bellucci@gmail.com> - + Usage: sqlmap.py [options] Options: @@ -3698,7 +3698,8 @@ back-end DBMS: PostgreSQL sql> SELECT COUNT(name) FROM users [10:11:57] [INFO] fetching SQL SELECT statement query output: 'SELECT COUNT(name) FROM users' [10:11:57] [INPUT] can the SQL query provided return multiple entries? [Y/n] n -[10:11:59] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) FROM users +[10:11:59] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) +FROM users [10:11:59] [INFO] retrieved: 4 [10:11:59] [INFO] performed 13 queries in 0 seconds SELECT COUNT(name) FROM users: '4' @@ -3706,19 +3707,30 @@ SELECT COUNT(name) FROM users: '4' sql> INSERT INTO users (id, name, surname) VALUES (5, 'from', 'sql shell'); [10:12:35] [INFO] testing stacked queries support on parameter 'id' [10:12:40] [INFO] the web application supports stacked queries on parameter 'id' -[10:12:40] [INFO] executing SQL data manipulation query: 'INSERT INTO users (id, name, surname) VALUES (5, 'from', 'sql shell');' +[10:12:40] [INFO] executing SQL data manipulation query: 'INSERT INTO users (id, name, surname) +VALUES (5, 'from', 'sql shell');' [10:12:40] [INFO] done sql> SELECT COUNT(name) FROM users [10:12:51] [INFO] fetching SQL SELECT statement query output: 'SELECT COUNT(name) FROM users' [10:12:51] [INPUT] can the SQL query provided return multiple entries? [Y/n] n -[10:12:53] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) FROM users +[10:12:53] [INFO] query: SELECT COALESCE(CAST(COUNT(name) AS CHARACTER(10000)), CHR(32)) +FROM users [10:12:53] [INFO] retrieved: 5 [10:12:54] [INFO] performed 20 queries in 0 seconds SELECT COUNT(name) FROM users: '5' </verb></tscreen> <p> -TODO +As you can see from this last example, when the user provides a SQL +statement other than <tt>SELECT</tt>, sqlmap recognizes it, tests if the +web application supports stacked queries and in case it does, it executes +the provided SQL statement in a multiple statement. + +<p> +Beware that some web application technologies do not support stacked +queries on specific database management systems. For instance, PHP does not +support stacked queries when the back-end DBMS is MySQL, but it does +support when the back-end DBMS is PostgreSQL. <sect1>File system access diff --git a/lib/core/settings.py b/lib/core/settings.py index 6597a63eb..335eeffce 100644 --- a/lib/core/settings.py +++ b/lib/core/settings.py @@ -30,7 +30,7 @@ import sys # sqlmap version and site -VERSION = "0.6.4-rc6" +VERSION = "0.6.4" VERSION_STRING = "sqlmap/%s" % VERSION SITE = "http://sqlmap.sourceforge.net"