UNION SELECT
based SQL injection is not considered blind, and neither is error-based SQL injection. So the videos you found are indeed incorrect in their descriptions.
It is blind if you cannot directly see rows from the database output into the page. With UNION SELECT
SQL injection, parts of the page will contain data from tables and columns that were not intended to be included by the original coder. And with error-based you get the same, just it's in the output of error messages.
Blind SQL injection means none of the rows in the database are directly disclosed onto the page. Examples typically include if you find SQL injection inside of an INSERT
or DELETE
statement, or inside a SELECT
statement that immediately throws away, or otherwise does not output, the data it retrieves.
For example, if you had some login code that looked like query("SELECT username FROM users WHERE username='$username' AND password='$password'");
, where either $username
or $password
are injectable, odds are the result of this query won't actually be output anywhere. It is simply a "check", not a retrieval. In this case your only option is to use blind injection. In a case like this, you could use blind injection to read data from any table, or you could use it to login without knowing the password. Blind injection is not always limited to extracting data from the database, it can also include making actions that the author did not intend by abusing the results of SQL queries.
Blind injection is split into two kinds: boolean blind and time-based blind. Sometimes boolean blind is called "partial blind" and time-based is called "full blind" but I find those to be kind of unclear.
Boolean injections are the easier one to exploit, but may not be found in all cases. All blind SQL injections (really, all SQL injections anywhere) will be vulnerable to time-based blind injection as long as the database application has some kind of function or feature that can delay the response for at least a second or two. Most big databases do have such functions. The disadvantage is that it may take a long time to extract large amounts of data.
I'll leave you to research exactly how those blind injections work, but your description of boolean blind injection is correct.