← Back to Lessons

Vulnerable Databases and the Secrets That Shouldn't Be There

When an application needs to save or retrieve information, it turns to a database. And to talk to that database, it uses a language called SQL. It's like a conversation between the code and the machine's memory. Every time you register, log in, or search for something on a page, some SQL query is being executed to verify what you typed or to return information.

For example, when you log in, the server might build a query like this:

1 2SELECT * FROM users WHERE username='your_username' AND password='your_password'; 3

If that query finds a result, it lets you in. But the problem is that sometimes applications don't properly check what you enter. If the application doesn't filter your input, you can modify that query from the browser. And that's where things get dangerous.

This is called SQL Injection. It's when you, as an attacker, inject malicious SQL code into an input field, like the login form, and make the database behave differently. You don't need to guess passwords if you can make the query always return something true. For example, instead of entering a normal username, you put this:

1' OR '1'='1

the query breaks and ends up working like this:

1SELECT * FROM users WHERE username='' OR '1'='1';

And since '1'='1' is always true, you could gain access without valid credentials. Sometimes, that's enough to get in. Other times, you can extract data or modify things if the system is poorly configured.

This isn't magic or luck. It's poorly protected code. It's an application that trusts too much in what it receives. And if there's one thing you should remember, it's this: applications shouldn't trust anyone, especially not what comes from outside.

Learning this isn't just about learning to attack. It's about understanding how the system thinks, how everything connects. It's starting to look beyond the visible. Because beneath every form, there's an invisible conversation. And now you're learning to listen to it.

The Things You Can't See

Sometimes, what looks like a simple image... isn't.

A photograph can be a portrait, a memory, or a facade. But for you, who's learning to see beyond, it can also be a hiding place.

Images, like humans, can keep secrets behind what's visible.

In cybersecurity, a common technique called steganography allows you to hide information inside seemingly innocent files. A text, a key, a code, or even a complete message can be hidden in the pixels, in the metadata, or in the internal structures of an image.

That's why, when you face files like a .jpg image, it's not enough to just look at it. You have to read it from the inside. Tools like strings, exiftool, or even binwalk let you extract hidden text, check metadata, or break down what's compressed and camouflaged.

And sometimes, what you find there isn't a clear phrase, but a hash.

A hash is a special kind of fingerprint. It's a string of text that represents something: a password, a file, a phrase... but transformed in such a way that you can't see it directly. Systems use hashes to store passwords without saving them as they are. That way, if someone steals the database, they don't see the real passwords, just their encrypted representations.

But this is where brute force and ingenuity come in. Tools like hashcat can take that hash and compare it against thousands—or millions—of possible passwords until they find which one generates exactly that result. It's like trying to discover what phrase was turned into that fingerprint, testing one by one until it fits.

For that, dictionaries are used: huge lists of known, common, or leaked passwords, like the famous rockyou.txt file we've already talked about. With that list and some patience, you can break the silence of a hash and reveal what it hides.

The important thing is this:

  • Don't trust what you see.

  • Learn to look behind, beneath, inside.

Because in this world, sometimes what we're looking for isn't in a form or a text file... but in the frozen smile of an image.

And you're learning to listen to the silence.