One of my favorite parts about working in the tech industry is the opportunity to learn new things on an almost daily basis. For me, there are fewer things that I enjoy more than learning something new. It's really easy to get caught up in the fast lane and blow through every day like it's a race to the finish line. The problem with this mentality is that you miss out on a lot of cool and interesting things.
While researching a project I was working on, my research began to take me towards more resources focused on SQL injection attacks. In a nut shell, a SQL injection attack involves providing specially crafted user input to an application that uses that input to construct a SQL statement in order to get additional SQL commands executed during the normal course of operation. The severity of a SQL injection attack depends upon the level of input validation present in the application and how well secured the database server is configured.
I'm not going to say much more about how an attack is done as there's lots of resources out there that go in to much better detail than I care to right here. Start with the Wikipedia article I linked above. Here's another good article that starts with the basics and builds upon that until the full capability of this style of attack is made clear to you.
If the information above makes sense to you (or frightens you), then this next one is going to blow your mind. This video lays it all out in front of you with a real-world example demonstrated in real-time. In the video, a hypothetical web-based business is the target of the attack. As a web-based business, their credit card transactions are processed electronically. This processing is done on a computer with no direct interface to the Internet. Sounds "safe," right?
As you'll see in the video, it's only as safe as the code that makes it all possible. Exploiting the weak user input verification present on the company's web site (and a poorly configured DB server), he shows how a hacker can:
- Build a binary copy of the data contained in the database.
- Snoop around the computer using directory listings.
- Transfer files to and from the targeted machine using TFTP (check your Windows system32 directory - unless you're running Vista, you probably have it).
The end result is that the hacker can use the company's web site to perform just about any action he desires. The interface through which it's done might seem cumbersome, but if you're a hacker, it's a small price to pay when you're got the keys to the kingdom.
Scary stuff, right?