Automating Credential Stuffing

Updates the credential stuffing code to test multiple different username and password combinations against the login page.

Introduction to automatic credential stuffing

Credential stuffing is a common attack technique because it is an easily automated attack vector. A fully automated credential-stuffing attack requires three things:

  • A means of submitting login credentials to the target system

  • The ability to tell whether or not a login attempt succeeded

  • A list of usernames and passwords to try on the site

We’ve implemented the first two items on this list, attempting to log into a site with a single username and password. Now, we’ll work on completing the automated attack by updating the script to make multiple attempts with a list of usernames and passwords.

Creating a credential dictionary

An important first step when building a credential stuffer is defining a dictionary of usernames and passwords to try in the attack. A credential dictionary can come from a few different sources, including the following:

  • Common password lists

  • Breached credentials

  • Random password generation

Numerous lists of credentials are available on the internet for download; some are built into existing tools, and tools exist to automatically generate tailored lists. In this lesson, we’ll use a small list containing some common, simple usernames and passwords.

Automating the credential-stuffing attack

Previously, we’ve implemented a simple credential stuffer that performs a single username/password check and automatically checks the result. The next step is to update the code to try multiple usernames and passwords until a correct combination is found.

The following code block shows how the existing credential stuffer, using the requests library, can be updated to perform multiple lookups.

Get hands-on with 1400+ tech skills courses.