This is the password cracking quest introduction page. The goal of this quest is to familarize applicants with REST and python
A vulnerable web application that handles authentication can be found at http://login.poop-dollah.com/login
This page takes two parameters, username and password, via POST or GET. Here is an example: http://login.poop-dollah.com/login?username=user&password=pass
Your job is to crack the password for your username, which should be the first letter of your first name, and your last name (so John Doe is jdoe).
You can do this by using a timing attack. Try each character for a password ('a' - 'z') and see which one takes the longest. Iterate on this procedure until you have a full password.
Trying to brute force the password will not work
The password checker pauses slightly while checking each password.
If you try to check every permutation of a password, you won't have time. You need a way to check every character of the password independetly instead. This makes password checking a linear operation
rather than an exponential one. Checking each permutation will require 26^n password, while checking each character independently is only 26n.
Passwords are limited to lower case a - z.
A starter client may be found here. You are free to use it or make your own. This client requires Python 3.4 to run.
Here is a sample response
Invalid user and pass: http://login.poop-dollah.com/login?username=123123&password=123
{
status: "failure",
time: 1
}
Notice the time value in the response. This might be useful!
Valid user and pass: http://login.poop-dollah.com/login?username=ahanes&password=rjcfah
{ status: "success" }