This site is the archived OWASP Foundation Wiki and is no longer accepting Account Requests.
To view the new OWASP Foundation website, please visit https://owasp.org
Difference between revisions of "Category:OWASP SQLiX Project"
From OWASP
m (Added a date to be more clear.) |
|||
(41 intermediate revisions by 14 users not shown) | |||
Line 1: | Line 1: | ||
− | = | + | =Main= |
− | + | <!-- DO NOT ALTER OR REMOVE THE TEXT ON NEXT LINE --> | |
+ | <div style="width:100%;height:100px;border:0,margin:0;overflow: hidden;">[[Image:OWASP Inactive Banner.jpg|800px| link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Inactive_Projects]] </div> | ||
− | == | + | {| style="padding: 0;margin:0;margin-top:10px;text-align:left;" |- |
− | '''SQLiX''' is a '''SQL Injection scanner''' which attempts to fill the gap between what commercial software available on the market can do and what can really be done to detect and identify SQL injection. | + | | valign="top" style="border-right: 1px dotted gray;padding-right:25px;" | |
+ | '''NOTE:''' | ||
+ | |||
+ | The project is currently under the process of porting from Perl to Python. The next version will be released soon!<br />-- AnirudhAnand, 16 March 2014 | ||
+ | |||
+ | ==Introduction== | ||
+ | |||
+ | SQLiX is a [[SQL Injection]] scanner coded in Perl. It is able to crawl, detect SQL injection vectors, identify the back-end database, and grab function call/UDF results (even execute system commands for MS-SQL). The concepts in use are different than the one used in other SQL injection scanners. SQLiX is able to find normal and blind SQL injection vectors and doesn't need to reverse engineer the original SQL request (using only function calls). | ||
+ | |||
+ | If you are a developer interested in remediating or avoiding the kinds of SQL injection vulnerabilities this tool can find, check out the OWASP [[SQL Injection Prevention Cheat Sheet]]. | ||
+ | |||
+ | ==Description== | ||
+ | |||
+ | '''SQLiX''' is a '''[[SQL Injection]] scanner''' which attempts to fill the gap between what commercial software available on the market can do and what can really be done to detect and identify SQL injection. | ||
Current injection methods used by commercial web assessment software are based on error generation or statement injections. | Current injection methods used by commercial web assessment software are based on error generation or statement injections. | ||
Line 17: | Line 31: | ||
'''statement injection:''' | '''statement injection:''' | ||
− | The second method used is statement injection. | + | The second method used is statement injection. Let's look at an example: |
− | Let's look at an example: | ||
The target URL | The target URL | ||
Line 40: | Line 53: | ||
− | ---- | + | ==Licensing== |
+ | OWASP SQLiX is free to use. It is licensed under the http://creativecommons.org/licenses/by-sa/3.0/ Creative Commons Attribution-ShareAlike 3.0 license], so you can copy, distribute and transmit the work, and you can adapt it, and use it commercially, but all provided that you attribute the work and if you alter, transform, or build upon this work, you may distribute the resulting work only under the same or similar license to this one. | ||
+ | |||
+ | |||
+ | | valign="top" style="padding-left:25px;width:200px;border-right: 1px dotted gray;padding-right:25px;" | | ||
+ | == What is SQLiX? == | ||
− | + | OWASP SQLiX provides: | |
* SQLiX uses multiple techniques to determine if the current server-side script is vulnerable to SQL Injection | * SQLiX uses multiple techniques to determine if the current server-side script is vulnerable to SQL Injection | ||
Line 54: | Line 72: | ||
* SQLiX contains an exploit module to demonstrate how a hacker could exploit the found SQL injection to gather sensitive information | * SQLiX contains an exploit module to demonstrate how a hacker could exploit the found SQL injection to gather sensitive information | ||
− | |||
− | + | == Presentation == | |
− | + | Link to presentation | |
− | |||
− | == Command line usage | + | |
+ | == Project Leader == | ||
+ | |||
+ | Anirudh | ||
+ | |||
+ | |||
+ | |||
+ | == Related Projects == | ||
+ | |||
+ | |||
+ | |||
+ | | valign="top" style="padding-left:25px;width:200px;" | | ||
+ | |||
+ | == Quick Download == | ||
+ | |||
+ | OWASP SQLiX v1.0 is available for download [http://cedri.cc/tools/SQLiX_v1.0.tar.gz '''here'''] or [http://www.mediafire.com/?5lbt0tb1jee '''here''']. | ||
+ | |||
+ | |||
+ | == News and Events == | ||
+ | * [20 Nov 2013] News 2 | ||
+ | * [30 Sep 2013] News 1 | ||
+ | |||
+ | |||
+ | == In Print == | ||
+ | |||
+ | |||
+ | |||
+ | ==Classifications== | ||
+ | |||
+ | {| width="200" cellpadding="2" | ||
+ | |- | ||
+ | | align="center" valign="top" width="50%" rowspan="2"| [[File:Owasp-incubator-trans-85.png|link=https://www.owasp.org/index.php/OWASP_Project_Stages#tab=Incubator_Projects]] | ||
+ | | align="center" valign="top" width="50%"| [[File:Owasp-builders-small.png|link=]] | ||
+ | |- | ||
+ | | align="center" valign="top" width="50%"| [[File:Owasp-defenders-small.png|link=]] | ||
+ | |- | ||
+ | | colspan="2" align="center" | [[File:Cc-button-y-sa-small.png|link=http://creativecommons.org/licenses/by-sa/3.0/]] | ||
+ | |- | ||
+ | | colspan="2" align="center" | [[File:Project_Type_Files_CODE.jpg|link=]] | ||
+ | |} | ||
+ | |||
+ | |} | ||
+ | |||
+ | =Requirements= | ||
+ | Perl with the following dependencies: | ||
+ | |||
+ | WWW::CheckSite | ||
+ | |||
+ | Tie::CharArray | ||
+ | |||
+ | perl -MCPAN -e 'install WWW::CheckSite' | ||
+ | perl -MCPAN -e 'install Tie::CharArray' | ||
+ | |||
+ | = Command line usage = | ||
'''Usage: SQLiX.pl [options]''' | '''Usage: SQLiX.pl [options]''' | ||
− | + | -help Show this help | |
Target specification: | Target specification: | ||
− | + | -url [URL] Scan a given URL. | |
− | + | Example: -url="http://target.com/index.php?id=1" | |
− | + | --post_content [CONTENT] Add a content to the current [URL] | |
− | + | and change the HTTP method to POST | |
− | + | -file [FILE_NAME] Scan a list of URI provided via a flat file. | |
− | + | Example: -file="./crawling" | |
− | + | -crawl [ROOT_URL] Scan a web site from the given root URL. | |
+ | Example: -crawl="http://target.com/" | ||
Injection vectors: | Injection vectors: | ||
− | + | -referer Use HTTP referer as a potential injection vector. | |
− | + | -agent Use HTTP User agent as a potential injection vector. | |
− | + | -cookie [COOKIE] Use the cookie as a potential injection vector. | |
− | + | Cookie value has to be specified and the injection area | |
− | + | tagged as "--INJECT_HERE--". | |
− | + | Example: -cookie="userID=--INJECT_HERE--" | |
Injection methods: | Injection methods: | ||
− | + | -all Use all the injection methods. | |
− | + | -method_taggy Use MS-SQL "verbose" error messages method. | |
− | + | -method_error Use conditional error messages injection method. | |
− | + | -method_blind Use all blind injection methods. | |
− | + | -method_blind_integer Use integer blind injection method. | |
− | + | -method_blind_string Use string blind injection method. | |
− | + | -method_blind_statement Use statement blind injection method. | |
− | + | -method_blind_comment Use MySQL comment blind injection method. | |
Attack modules: | Attack modules: | ||
− | + | -exploit Exploit the found injection to extract information. | |
− | + | by default the version of the database will be retrieved | |
− | + | -function [function] Used with exploit to retrieve a given function value. | |
− | + | Example: -function="system_user" | |
− | + | Example: -function="(select password from user_table)" | |
− | + | -union Analyse target for potential UNION attack [MS-SQL only]. | |
MS-SQL System command injection: | MS-SQL System command injection: | ||
− | + | -cmd [COMMAND] System command to be executed. | |
− | + | Example: -cmd="dir c:\\" | |
− | + | -login [LOGIN] MS-SQL login to use if known. | |
− | + | -password [PASSWORD] MS-SQL password to use if known. | |
Verbosity: | Verbosity: | ||
− | + | -v=[n] Verbose mode level | |
− | + | v=0 => no output, only results are displayed at the end | |
− | + | v=2 => realtime display, provide minimum result info | |
− | + | v=5 => debug view [all url,content and headers are displayed] | |
+ | |||
− | + | = Output example = | |
*'''MS-SQL System command execution''' | *'''MS-SQL System command execution''' | ||
Line 127: | Line 198: | ||
Analysing URI obtained by flat file [crawling] | Analysing URI obtained by flat file [crawling] | ||
http://www.target.example.com/DocumentDescription-HR.asp?DocID=2 | http://www.target.example.com/DocumentDescription-HR.asp?DocID=2 | ||
− | + | [+] working on DocID | |
− | + | [+] Method: MS-SQL error message | |
− | + | [FOUND] MS-SQL error message (implicite without quotes) | |
− | + | [FOUND] function [@@version]: | |
− | + | Microsoft SQL Server 2000 - 8.00.534 (Intel X86) | |
− | + | Nov 19 2001 13:23:50 | |
− | + | Copyright (c) 1988-2000 Microsoft Corporation | |
− | + | Personal Edition on Windows NT 5.0 (Build 2195: Service Pack 4) | |
− | + | [INFO] System command injector: | |
− | + | [INFO] Current database: HR | |
− | + | [INFO] We are not sysadmin for now | |
− | + | [INFO] Checking OpenRowSet availibility - please wait... | |
− | + | [INFO] Current user login: [HR] | |
− | + | [FOUND] OPENROWSET available - (login [sa] | password [sa]) | |
− | + | [INFO] Privilege escalation - from [HR] to [sa] | |
− | + | =========================================================================== | |
− | + | Volume in drive C has no label. | |
− | + | Volume Serial Number is 00BC-6F73 | |
− | + | Directory of c:\ | |
− | + | 11/21/2005 06:36p <DIR> 403679d1f6ca54e5384256556434111d | |
− | + | 07/14/2006 10:49a <DIR> Documents and Settings | |
− | + | 07/22/2005 02:21p <DIR> honeypot | |
− | + | 07/21/2005 04:38p <DIR> iDefense | |
− | + | 03/08/2002 08:23a <DIR> Inetpub | |
− | + | 07/14/2006 03:21p <DIR> Program Files | |
− | + | 08/07/2006 04:11p 622 tmp.txt | |
− | + | 11/28/2005 06:06p <DIR> WINNT | |
− | + | 1 File(s) 622 bytes | |
− | + | 7 Dir(s) 183,328,768 bytes free | |
− | + | =========================================================================== | |
− | + | [FOUND] MS-SQL error message | |
RESULTS: | RESULTS: | ||
Line 182: | Line 253: | ||
Analysing URI obtained by flat file [crawling] | Analysing URI obtained by flat file [crawling] | ||
http://www.target.example.com/MySQL-DocumentDescriptionMagicQuote.asp?DocID=2 | http://www.target.example.com/MySQL-DocumentDescriptionMagicQuote.asp?DocID=2 | ||
− | + | [+] working on DocID | |
− | + | [+] Method: MS-SQL error message | |
− | + | [+] Method: SQL error message | |
− | + | [FOUND] Match found INPUT:[user] - "Microsoft OLE DB Provider for ODBC Drivers" | |
− | + | [INFO] Error without quote | |
− | + | [INFO] Database identified: MySQL Server | |
− | + | [INFO] Current function: version() | |
− | + | [INFO] length: 19 | |
− | + | 4.1.20-community-nt | |
− | + | [FOUND] SQL error message | |
http://www.target.example.com/PGSQL-DocumentDescription.asp?DocID=2 | http://www.target.example.com/PGSQL-DocumentDescription.asp?DocID=2 | ||
− | + | [+] working on DocID | |
− | + | [+] Method: MS-SQL error message | |
− | + | [+] Method: SQL error message | |
− | + | [FOUND] Match found INPUT:['] - "Microsoft OLE DB Provider for ODBC Drivers" | |
− | + | [INFO] Error without quote | |
− | + | [INFO] Database identified: PostgreSQL Server | |
− | + | [INFO] Current function: version() | |
− | + | [INFO] length: 88 | |
− | + | PostgreSQL 8.0.7 on i686-pc-mingw32, compiled by GCC gcc.exe (GCC) 3.4.2 | |
− | + | [FOUND] SQL error message | |
RESULTS: | RESULTS: | ||
− | The variable [DocID] from [ http://www.target.example.com/MySQL-DocumentDescriptionMagicQuote.asp?DocID=2 ] ... | + | The variable [DocID] from |
+ | [ http://www.target.example.com/MySQL-DocumentDescriptionMagicQuote.asp?DocID=2 ] ... | ||
... is vulnerable to SQL Injection [Error message (user) - MySQL]. | ... is vulnerable to SQL Injection [Error message (user) - MySQL]. | ||
− | The variable [DocID] from [ http://www.target.example.com/PGSQL-DocumentDescription.asp?DocID=2 ] ... | + | The variable [DocID] from |
+ | [ http://www.target.example.com/PGSQL-DocumentDescription.asp?DocID=2 ] ... | ||
... is vulnerable to SQL Injection [Error message (') - PostgreSQL]. | ... is vulnerable to SQL Injection [Error message (') - PostgreSQL]. | ||
− | |||
− | |||
− | |||
− | == | + | = Acknowledgements = |
+ | ==Volunteers== | ||
− | |||
− | + | = Road Map and Getting Involved = | |
+ | As of XXX, the priorities are: | ||
+ | * xxx | ||
+ | * xxx | ||
+ | * xxx | ||
− | + | We hope you find the OWASP SQLiX Project useful. Please contribute to the Project by volunteering for one of the Tasks, sending your comments, questions, and suggestions to owasp@owasp.org. To join the OWASP SQLiX Project mailing list or view the archives, please visit the [http://lists.owasp.org/mailman/listinfo/owasp-sqlix subscription page.] | |
− | |||
− | |||
− | |||
− | |||
− | + | =Project About= | |
+ | ==== Project Identification ==== | ||
+ | {{:GPC_Project_Details/OWASP_SQLiX_Project | OWASP Project Identification Tab}}}} | ||
− | + | __NOTOC__ <headertabs /> | |
− | |||
− | + | [[Category:OWASP Project|SQLiX Project]] | |
− | [[Category:OWASP Project]] | ||
[[Category:OWASP Download]] | [[Category:OWASP Download]] | ||
[[Category:OWASP Tool]] | [[Category:OWASP Tool]] | ||
− | |||
− | |||
[[Category:SQL]] | [[Category:SQL]] | ||
+ | [[Category:OWASP Oracle Project]] |
Latest revision as of 18:51, 25 May 2017
Subcategories
This category has only the following subcategory.