8.5. Using the Scanner
Hopefully,
by now you are familiar enough with
the scanner to know how to use it effectively. If not,
let's quickly review the process of running the
scanner against an application. We have already gone through the
process of how to manually crawl and log data from a web application.
Assuming we have the log file from the proxy server, we can call the
parseLog.pl script to format the log data and
redirect the script's output to our input file:
ParseLog.pl proxylog.txt > inputfile.txt
Next, assuming the application requires authentication, we need to
reauthenticate to the application and intercept a request subsequent
to successful authentication (we can use our Burp proxy server to do
this by checking the Intercept box under Client Requests on the
Options tab). The intercepted request should contain a fresh Session
ID or authentication token for us to provide our script for testing.
If the application is anonymously accessible and
doesn't require state management, we can probably
skip this step.
Before we actually begin testing an authenticated application, we
also want to identify the login and logout requests within the input
file and manually delete them. If we do not do this, the scanner will
issue these requests during its execution, invalidating our Session
ID or authentication token. Because of this issue,
it's best that we test these pages manually.
Now we are ready to run the scanner. We pass the scanner our input
filename and hostname to be tested, along with the
-c option and including the HTTP cookie value(s)
we want to use for testing:
simpleScanner.pl -c "ASPSESSIONIDQARRTRQC= FGCBFJBABN NLNLKNCLJBPBGE;" inputfile.txt
http://www.myhost.com
It's that simple. We can optionally use the
-v option to have the script print each request it
makes; otherwise, it notifies us only when it detects a
vulnerability. Keep in mind that we have merely scratched the surface
as far as the potential for identifying web application
vulnerabilities goes. In addition to identifying these
vulnerabilities, we could extend the scanner to perform automated
attacks and/or exploits in the event that a vulnerability is
detected. In the next chapter, we will look at some examples of how
to do that using the simple scanner we just developed.
|