It is common to be faced with a web application where you have no credentials to log in. Very often, the application contains a wealth of functionality that can be accessed without authentication and which you can start working on to find a way in. Typically, the most promising initial targets are the more peripheral functions supporting the authentication logic, like user registration, password change and account recovery.

But occasionally you will face a narrower challenge. Suppose the web root of the server returns a simple login form, with no other functions and no links anywhere else. You can try to guess a username and password, but is that all?

Here are just a few of the things to think about in this restricted situation:

  • Looking for names, email addresses and other information in the HTML source.
  • Fingerprinting the web server software, application platform and any other identifiable technologies in use, and researching these for vulnerabilities.
  • Enumerating the content that is currently hidden, by brute forcing file and directory names, running Nikto, etc., and checking whether the content discovered is properly access controlled.
  • Checking search engines and Internet archives for references to the target.
  • Tampering with any hidden parameters and cookies in the login request that may affect server-side logic.
  • Checking for any disabled form elements that may still be processed if you re-enable them.
  • Adding common debug parameters (like test=true) to your request.
  • Inspecting the ASP.NET ViewState (if present).
  • Testing for username enumeration via informative failed login messages or other differences.
  • Testing susceptibility to brute force attacks.
  • If the application issues session tokens prior to login, testing these for predictability.
  • Testing all request parameters and headers for common code-level flaws like SQL injection, XSS, script inclusion, etc.
  • Probing for logic flaws within the login function, by omitting parameters, interfering with the request sequence if multi-stage, etc.
  • If the application is hosted in a shared environment, looking for co-hosted applications that you may be able to leverage to attack your target.

Any one of these attacks might give you a sufficient foot in the door to get past the login and into the protected functionality behind it. If they do not, then the login mechanism is a lot more robust than most are, and it is probably time to try to get hold of credentials, or move on to another target.