CSH Password Cracking Quest 2015

Introduction

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.

Sample Responses

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" }


Useful Links

Getting started with Python
Python Website
Starter Client Download
JSON Tutorial
Wikipedia page on REST APIs