This carries on from the SQL injection article. The previous example was a slightly contorted result since I was using information that I knew about the database and the results returned were appearing in the page. I was just trying to introduce the concepts. Now here I’m introducing automated blind SQL injection. Source code for this article is avaiable in a zip file.
Here’s a code example:
Suppose I have a feedback form on a webpage. Something like:
<form method="get" action="testmail.php">
Email: <input name="email" type="text" value="" />
Feedback: <textarea name="feedback"></textarea>
And suppose I deal with it in PHP a bit like this:
$from = '' .POST["email"];
$feedback = '' . $_POST["feedback"];
$rtn = mail('firstname.lastname@example.org', "Feedback from website", $feedback, "From: " . $from);
What could possibly go wrong?
Quite a lot.
I’m going to create the worst blogging software in the world, consisting of a single web page displaying a list of comments and where users can post new comments or search for comments. The data will be stored in a MySQL database. The site is going to have horrendous security flaws (on purpose). Then I’m going to hack it’s innermost secrets just through the web page. Then I’ll show you how to make it secure.