#!/bin/sh

WPCLI=/home/verseaumee/security-scan/tools/wp-cli.phar
LIST=/home/verseaumee/security-scan/reports/wordpress-roots.txt
R=/home/verseaumee/security-scan/reports

: > "$R/core-final.txt"
: > "$R/root-extras.txt"
: > "$R/plugins-final.txt"
: > "$R/themes-list.txt"
: > "$R/php-in-uploads.txt"
: > "$R/content-high-confidence.txt"
: > "$R/disguised-php.txt"

while IFS= read -r site; do

    echo "========================================"
    echo "SCANNING: $site"

    echo "===== $site =====" >> "$R/core-final.txt"
    php "$WPCLI" \
      --path="$site" \
      --skip-plugins \
      --skip-themes \
      core verify-checksums \
      >> "$R/core-final.txt" 2>&1

    echo "===== $site =====" >> "$R/root-extras.txt"
    php "$WPCLI" \
      --path="$site" \
      --skip-plugins \
      --skip-themes \
      core verify-checksums \
      --include-root \
      >> "$R/root-extras.txt" 2>&1

    echo "===== $site =====" >> "$R/plugins-final.txt"
    php "$WPCLI" \
      --path="$site" \
      --skip-plugins \
      --skip-themes \
      plugin verify-checksums \
      --all \
      --strict \
      >> "$R/plugins-final.txt" 2>&1

    echo "===== $site =====" >> "$R/themes-list.txt"
    php "$WPCLI" \
      --path="$site" \
      --skip-plugins \
      --skip-themes \
      theme list \
      --fields=name,status,version,update \
      --format=table \
      >> "$R/themes-list.txt" 2>&1

    if [ -d "$site/wp-content/uploads" ]; then
        find "$site/wp-content/uploads" \
          -type f \
          \( -iname '*.php' -o -iname '*.phtml' -o -iname '*.phar' -o -iname '*.php5' -o -iname '*.php7' \) \
          -print 2>/dev/null \
          >> "$R/php-in-uploads.txt"
    fi

    grep -RIl \
      --include='*.php' \
      -E 'eval[[:space:]]*\([[:space:]]*(base64_decode|gzinflate)|assert[[:space:]]*\([[:space:]]*\$_(GET|POST|REQUEST|COOKIE)|shell_exec[[:space:]]*\([[:space:]]*\$_(GET|POST|REQUEST|COOKIE)|passthru[[:space:]]*\([[:space:]]*\$_(GET|POST|REQUEST|COOKIE)|system[[:space:]]*\([[:space:]]*\$_(GET|POST|REQUEST|COOKIE)|exec[[:space:]]*\([[:space:]]*\$_(GET|POST|REQUEST|COOKIE)' \
      "$site/wp-content/plugins" \
      "$site/wp-content/themes" \
      2>/dev/null \
      >> "$R/content-high-confidence.txt"

    grep -RIl \
      --include='*.jpg' \
      --include='*.jpeg' \
      --include='*.png' \
      --include='*.gif' \
      --include='*.ico' \
      --include='*.txt' \
      '<?php' \
      "$site/wp-content" \
      2>/dev/null \
      >> "$R/disguised-php.txt"

done < "$LIST"

echo "FULL WORDPRESS AUDIT FINISHED"
