#!/bin/bash

# Usage: ./web_scan.sh <URL> <WORDLIST>
# Example: ./web_scan.sh http://10.10.10.10 /usr/share/wordlists/dirb/common.txt

if [ "$#" -ne 2 ]; then
    echo "Usage: $0 <URL> <WORDLIST>"
    exit 1
fi

URL=$1
WORDLIST=$2
TARGET=$(echo $URL | sed 's|https\?://||;s|/||g')
DATE=$(date +%Y-%m-%d)
CSV="web_scan_${TARGET}.csv"

echo "Path,StatusCode,Server,Title" > "$CSV"

echo "[+] Running gobuster on $URL with $WORDLIST..."
gobuster dir -u "$URL" -w "$WORDLIST" -q | awk '{print $1}' > tmp_paths.txt

while read path; do
    FULL_URL="${URL}${path}"
    STATUS=$(curl -o /dev/null -s -w "%{http_code}" "$FULL_URL")
    SERVER=$(curl -s -I "$FULL_URL" | grep -i "Server:" | cut -d' ' -f2- | tr -d '\r')
    TITLE=$(curl -s "$FULL_URL" | grep -iPo '(?<=<title>)(.*)(?=</title>)' | head -n 1)
    echo "$path,$STATUS,${SERVER:-N/A},${TITLE:-N/A}" >> "$CSV"
    echo "[+] Checked $FULL_URL [$STATUS]"
done < tmp_paths.txt

rm tmp_paths.txt

echo "[+] Running whatweb on $URL..."
whatweb "$URL" > "whatweb_${TARGET}.txt"

echo "[+] CSV report saved as $CSV"
echo "[+] WhatWeb report saved as whatweb_${TARGET}.txt"

echo "[+] Generating visualization..."
python3 generate_web_graph.py "$CSV"

echo "[+] Done."
