Blind
Last updated
Was this helpful?
Last updated
Was this helpful?
The example below is based on TCM's course.
This time the application generates both a POST
and a GET
request. The former includes two parameters (username
and password
), but they don't appear to be vulnerable to SQLi. The latter does not contain any parameter, but we can search for other injection points.
We are looking for points where the server might potentially process, such as the User-Agent
and the Cookie
headers. In this case, the Cookie
header includes the session
parameter and its value is certainly processed by the back-end (Figure 1).
Burp's Active Scan identifies a potential SQLi flaw (Figure 3).
We can send the two responses to Comparer and check what is the differs between them (Figure 4).
Now that we know that if our injected statement is TRUE
we will get a Welcome back!
message, we can use the SUBSTRING
function and start enumerating the administrator
's password. We can do that efficiently by performing a Cluster bomb attack with Intruder (Figure 5).
All we need to do now is to filter out the irrevelant responses and sort them by Payload 1
(Figure 6).
Oracle
dbms_pipe.receive_message(('a'),10)
Microsoft
WAITFOR DELAY '0:0:10'
PostgreSQL
SELECT pg_sleep(10)
MySQL
SELECT SLEEP(10)
When testing the session
parameter, we can see that we can alter the response's behavior (Content-Length
differences) (Figure 2), but we don't get any data within the response like we did while testing the ; this is what makes it a Blind SQLi.
Passing the request to , it confirms that the session
cookie is indeed injectable, therefore, we can continue the testing process as we did in the section.
The example below is based on PostSwigger's lab.
For performing the above task with a custom Python-based script, check the Burp's extension.
The example below is based on PostSwigger's lab.
We can start by testing the time-based payloads found on . using string concatenation (Figure 7).
sqlmap
's findings.administrator
's password.