@@ -181,35 +181,44 @@ <H2><A NAME="ss1.2">1.2</A> <A HREF="#toc1.2">Scenario</A>
181181< H2 > < A NAME ="ss1.3 "> 1.3</ A > < A HREF ="#toc1.3 "> Techniques</ A >
182182</ H2 >
183183
184- < P > sqlmap implements two techniques to exploit a SQL injection vulnerability:</ P >
184+ < P > sqlmap implements three techniques to exploit a SQL injection
185+ vulnerability:</ P >
185186< P >
186187< UL >
187- < LI > < B > Blind SQL injection</ B > , also known as < B > Inferential Blind SQL
188- injection</ B > in this implementation: sqlmap appends to the affected
189- parameter in the HTTP request, a syntatically valid SQL statement string
190- containing a < CODE > SELECT</ CODE > sub-statement, or any other SQL statement
191- whose the user want to retrieve the output.
188+ < LI > < B > Inferential Blind SQL injection</ B > : sqlmap appends to the
189+ affected parameter in the HTTP request, a syntatically valid SQL statement
190+ string containing a < CODE > SELECT</ CODE > sub-statement, or any other SQL
191+ statement whose the user want to retrieve the output.
192192For each HTTP response, by making a comparison based upon HTML page
193193content hashes, or string matches, with the original request, the tool
194194determines the output value of the statement character by character.
195195The bisection algorithm implemented in sqlmap to perform this technique
196196is able to fetch each output character with at maximum seven HTTP
197197requests.
198198This is sqlmap default SQL injection technique.</ LI >
199- < LI > < B > Inband SQL injection</ B > , also known as < B > Full UNION query SQL
200- injection</ B > : sqlmap appends to the affected parameter in the HTTP
201- request, a syntatically valid SQL statement string starting with a
202- < CODE > UNION ALL SELECT</ CODE > . This techique is useful if the web application
203- page passes the output of the < CODE > SELECT</ CODE > statement to a < CODE > for </ CODE >
204- cycle, or similar, so that each line of the query output is printed on the
205- page content.
199+ < LI > < B > UNION query (inband) SQL injection</ B > , also known as < B > Full
200+ UNION query SQL injection</ B > : sqlmap appends to the affected parameter
201+ in the HTTP request, a syntatically valid SQL statement string starting
202+ with a < CODE > UNION ALL SELECT</ CODE > . This techique is useful if the web
203+ application page passes the output of the < CODE > SELECT</ CODE > statement to a
204+ < CODE > for </ CODE > cycle, or similar, so that each line of the query output is
205+ printed on the page content.
206206sqlmap is also able to exploit < B > Partial UNION query SQL injection</ B >
207207vulnerabilities which occur when the output of the statement is not cycled
208208in a for construct whereas only the first entry output is displayed.
209209This technique is much faster if the target url is affected by because
210210in a single HTTP response it returns the whole query output or a entry
211211per each response within the page content.
212212This SQL injection technique is an alternative to the first one.</ LI >
213+ < LI > < B > Stacked queries support</ B > , also known as < B > multiple
214+ statements support</ B > : sqlmap tests if the web application supports
215+ stacked queries then, in case it does support, it appends to the affected
216+ parameter in the HTTP request, a semi-colon (< CODE > ;</ CODE > ) followed by the
217+ SQL statement to be executed. This technique is useful if to run SQL
218+ statements other than < CODE > SELECT</ CODE > like, for instance, < EM > data
219+ definition</ EM > or < EM > data manipulation</ EM > statements possibly leading
220+ to file system read and write access and operating system command
221+ execution depending on the underlying back-end database management system.</ LI >
213222</ UL >
214223</ P >
215224< P > It is strongly recommended to run at least once sqlmap with the
@@ -241,16 +250,17 @@ <H2><A NAME="s2">2.</A> <A HREF="#toc2">Features</A></H2>
241250to fingerprint the web server operating system, the web application
242251technology and, in some circumstances, the back-end DBMS operating system.
243252</ LI >
244- < LI > Full support for two SQL injection techniques: < B > blind SQL
245- injection</ B > and < B > inband SQL injection</ B > . sqlmap can also test for
246- < B > Time based blind SQL injection</ B > .
253+ < LI > Full support for three SQL injection techniques: < B > inferential
254+ blind SQL injection</ B > , < B > UNION query (inband) SQL injection</ B > and
255+ < B > stacked queries (multiple statements) support</ B > . sqlmap can also
256+ test for < B > time based blind SQL injection</ B > .
247257</ LI >
248258< LI > Options to retrieve on all four back-end database management system
249259< B > banner</ B > , < B > current user</ B > , < B > current database</ B > ,
250260enumerate < B > users</ B > , < B > users password hashes</ B > , < B > users
251261privileges</ B > , < B > databases</ B > , < B > tables</ B > , < B > columns</ B > ,
252262dump < B > tables entries</ B > , dump < B > whole database management
253- system</ B > and run your < B > own SQL < CODE > SELECT </ CODE > statement</ B > .
263+ system</ B > and run your < B > own SQL statement</ B > .
254264</ LI >
255265< LI > If the back-end database management system is MySQL it is also
256266possible to < B > read a specific file content</ B > from the ile system and,
@@ -460,7 +470,7 @@ <H2><A NAME="s5">5.</A> <A HREF="#toc5">Usage</A></H2>
460470 Enumeration:
461471 These options can be used to enumerate the back-end database
462472 management system information, structure and data contained in the
463- tables. Moreover you can run your own SQL SELECT queries .
473+ tables. Moreover you can run your own SQL statements .
464474
465475 -b, --banner Retrieve DBMS banner
466476 --current-user Retrieve DBMS current user
@@ -481,7 +491,7 @@ <H2><A NAME="s5">5.</A> <A HREF="#toc5">Usage</A></H2>
481491 --exclude-sysdbs Exclude DBMS system databases when enumerating tables
482492 --start=LIMITSTART First table entry to dump
483493 --stop=LIMITSTOP Last table entry to dump
484- --sql-query=QUERY SQL SELECT query to be executed
494+ --sql-query=QUERY SQL statement to be executed
485495 --sql-shell Prompt for an interactive SQL shell
486496
487497 File system access:
@@ -3406,7 +3416,7 @@ <H3>Dump all databases tables entries</H3>
34063416as a users' database.</ P >
34073417
34083418
3409- < H3 > Run your own SQL SELECT statement</ H3 >
3419+ < H3 > Run your own SQL statement</ H3 >
34103420
34113421< P > Options: < CODE > --sql-query</ CODE > and < CODE > --sql-shell</ CODE > </ P >
34123422
0 commit comments