Python Web Application Scanner

What is a Web App Scanner?

A Web App Scanner is a tool used by cybersecurity professionals to identify potential vulnerabilities in web applications. These weaknesses may allow attackers to gain unauthorized access, manipulate data, or disrupt services.

This scanner focuses on common security issues, including SQL Injection, Cross-Site Scripting (XSS), and Directory Traversal.

How does a Web App Scanner work?

The scanner sends simulated attack payloads to a target website via URL parameters. These payloads mimic techniques attackers commonly use.

After each request, the server’s response is analysed. If error messages, reflected scripts, or sensitive system data are detected, the scanner flags the potential vulnerability.

Python’s requests library powers the scanner, sending HTTP requests and analysing responses.

What is SQL Injection?

SQL Injection occurs when a web application improperly processes user input within a database query.

Attackers can insert specially crafted SQL code into input fields or URL parameters. If unsanitized, this code may execute and expose sensitive database information.

What is Cross-Site Scripting (XSS)?

Cross-Site Scripting allows malicious JavaScript code to be injected into pages viewed by other users.

If reflected and executed by the browser, a potential XSS vulnerability exists. Successful XSS attacks can allow attackers to steal session cookies, redirect users, or manipulate displayed content.

What is Directory Traversal?

Directory Traversal enables attackers to access files outside the web application's intended directories.

By manipulating file path parameters using sequences like ../, sensitive system files or user data can be accessed.

What is the Python requests library?

The requests library is a popular Python package for sending HTTP requests.

It allows scripts to make GET, POST, and other requests to web servers. Here, it sends test payloads and analyses responses to detect vulnerabilities.

About the Script

The script is divided into two main sections:

1. The scanning function

The scan_web_app function performs vulnerability checks. It starts by creating a list for detected issues. Each test sends a payload and examines the server's response for potential vulnerabilities.

2. Usage example

This section shows how the function can be applied to a target site. The scanner is executed with a provided URL, and any detected vulnerabilities are displayed.

# Python Web App Scanner
import requests

def scan_web_app(url):
    vulnerabilities = []

    # SQL Injection
    payload = "' OR '1'='1"
    response = requests.get(url + "?param=" + payload)
    if "error" in response.text:
        vulnerabilities.append("SQL Injection")

    # XSS
    payload = "<script>alert('XSS')</script>"
    response = requests.get(url + "?param=" + payload)
    if "<script>alert('XSS')</script>" in response.text:
        vulnerabilities.append("Cross-Site Scripting (XSS)")

    # Directory Traversal
    payload = "../../../../etc/passwd"
    response = requests.get(url + "?file=" + payload)
    if "root:" in response.text:
        vulnerabilities.append("Directory Traversal")

    return vulnerabilities

target_url = "your URL to check goes here"
vulnerabilities_found = scan_web_app(target_url)
if vulnerabilities_found:
    print("Vulnerabilities found in the web app:")
    for vulnerability in vulnerabilities_found:
        print("- " + vulnerability)
else:
    print("No vulnerabilities found in the web app.")

The Benefits of Automation vs Manual Testing

Manual testing is time-consuming and repetitive. Automating common checks lets security professionals identify weaknesses quickly before deeper manual analysis.

Professional scanners often include more advanced payloads, broader coverage, and sophisticated detection methods.

What I've Learned

Note

Although simplified, this project demonstrates the foundational concepts behind automated web security tools used in professional penetration testing and how they can be applied to common web app vulnerabilities.
← Back to Homepage