Top 15 Free SQL Injection Scanners
J.R writes "The Security-Hacks blog has a summary of the 15 best free SQL Injection scanners, with links to download and a little information about each one. The list is intended asan aid for both web application developers and professional security auditors."
The DB interface in PHP5 supports positional arguments AFAIK. Now, if only the service providers would switch to PHP5, there would be less problems. Unfortunately, it seems that, at least here, the major providers are still stuck in PHP4-for-compatibility-with-existing-apps mode.
Karma cannot be described by words alone.
It's the completely wrong answer to the problem though, as it still promotes the idea of using SQL built by string concatenation.
The result being that SQL injection is only one forgotten function call away.
Advanced users are users too!
SQL injection attacks target code in which sql statements are dynamically created.
e.g.
'select * from employees where fullName like ' + mySQLInjectedInputFromUser
where mySQLInjectedInputFromUser has been asssigned a value entered by the user:-
Fred Flinstone; GO; delete employees; GO
Validating input prevents alot of problems. Prepared queries help but can still be exploited in poorly written statements. As in the classic SELECT query example, "where id=23 OR 1=1", using a datatype test as well as testing for null values for a $_GET or $_POST parameter before executing the query would throw back an error if expecting an unsigned integer.
...was in conjunction with an error page which displayed the results of failed SQL.
... from catalog where section=1' into 'select ... from catalog where section=(select password from users where id=1)'.
I was able to change an innocuous 'select
This was nicely reported back to me as a SQL error stating that SQL was unable to convert "sdfsdfsdfsdf" into an integer, where "sdfsdfsdfsdf" was user id 1's password. I reported the problem to the site's owners, and it was still a month before they fixed it.
Moral of story - don't show the users any SQL errors, it gives them far too much information.
Once I was a four stone apology. Now I am two separate gorillas.