Check out these resources for manual SQL injection testing:. Several automated SQL injection tools are available to carry out attacks. Offering features from front-end Web application and database footprinting to vulnerability detection and the actual extraction of database tables, there are plenty of free and commercial hacking tools to choose from. Given the complexity of our information systems and the fact that we don't have unlimited time, using automated tools to find and exploit SQL injection is the only reasonable way to go about doing it. If you have a Web application with a backend database that allows dynamic user input supported by ASP.NET, Java, or similar languages, odds are that it's susceptible to SQL injection.
SqlMap is an open-source penetration testing tool that automates the process of sql injections over the database servers and exploiting and detecting SQL injection bugs or flaws. This tool comes with a great variety of features that includes database fingerprinting, accessing the underlying file system and fetching information from the database.
In, what you can do is perform automated SQL injection attacks against your own systems to identify just what can be compromised from the outside world. No more 'SELECT' this or 'apostrophe' that – you can let your tools do the work for you. Testing your own systems for SQL injection vulnerabilities in an automated fashion is a two-step process. Here's what you need to do: Step 1: Scan for vulnerabilities First, you must scan your site with a Web application vulnerability scanner to see if any input filtering or other SQL injection-specific holes exist. Since I'm always in a time crunch and need good reporting capabilities, I like using commercial tools such as or from Hewlett-Packard (HP). Both are great at finding SQL injection holes.
HP also offers a free tool called. There's also the Perl-based – an open source SQL injection scanner supported. An example of SQL injection vulnerabilities discovered by Acunetix Web Vulnerability Scanner is shown in Figure 1. Acunetix Web Vulnerability Scanner (click to enlarge) Step 2: Begin SQL injection Once you determine whether or not your target system is vulnerable to SQL injection, your next step is to carry out the SQL injection process and determine just what can be gleaned from the database. My favorite tool for automating the actual SQL injection process is HP's SQL Injector (which comes with WebInspect). You can also use, shown in Figure 2.
Absinthe tool for automated SQL injection (click to enlarge) Both tools allow you to perform basic and blind SQL injection. As a side note, both types of tests should be performed - especially if basic SQL injection doesn't return any results.
These tools can query and extract data very quickly in an automated fashion, easily dumping large tables in just a matter of minutes. Other options include a free Web services testing framework from called from McAfee, Inc. That can generate basic SQL injection attacks against Web services. There's also, which you can use to perform automated SQL injection queries against SQL Server-based systems. Finally, if you want to get some hands-on practice outside of your live systems and learn more about SQL injection and other front-end Web application vulnerabilities that can lead to database compromise, I highly recommend you check out and. In the end, however, it doesn't matter which tools you use for automating your SQL injection tests as long as you're comfortable with how they work and are getting the expected results.
Just do something - the bad guys certainly are! ABOUT THE AUTHOR Kevin Beaver, is an with Atlanta-based Principle Logic LLC. Kevin specializes in performing independent security assessments.
Kevin has authored/co-authored several books on information security, including and (Wiley). He's also the creator of the Security on Wheels and providing security learning for IT professionals on the go. Kevin can be reached.