64 lines
2.0 KiB
Bash
Executable File
64 lines
2.0 KiB
Bash
Executable File
#!/bin/bash
|
|
input="web_list.json"
|
|
output="web_check.json"
|
|
tmpfile=$(mktemp)
|
|
|
|
jq -c '.[]' "$input" | while read -r entry; do
|
|
host=$(echo "$entry" | jq -r '.host')
|
|
domain=$(echo "$entry" | jq -r '.domain')
|
|
path=$(echo "$entry" | jq -r '.path')
|
|
word=$(echo "$entry" | jq -r '.["word-to-check"]')
|
|
basic_auth=$(echo "$entry" | jq -r '.basic_auth')
|
|
user=$(echo "$entry" | jq -r '.basic_auth_name // empty')
|
|
pass=$(echo "$entry" | jq -r '.basic_auth_pass // empty')
|
|
|
|
[[ -z "$path" ]] && path="/"
|
|
|
|
# --- SSL check ---
|
|
ssl_info=$(echo | openssl s_client -servername "$domain" -connect "$domain:443" 2>/dev/null | openssl x509 -noout -dates -issuer)
|
|
ssl_released=$(echo "$ssl_info" | grep 'notBefore' | cut -d= -f2)
|
|
ssl_expiry=$(echo "$ssl_info" | grep 'notAfter' | cut -d= -f2)
|
|
ssl_company=$(echo "$ssl_info" | grep 'issuer' | sed -n 's/.*O=\([^,]*\).*/\1/p')
|
|
ssl_ok=0
|
|
if [[ $(date -d "$ssl_expiry" +%s) -gt $(date +%s) ]]; then ssl_ok=1; fi
|
|
|
|
# --- Content check ---
|
|
url="https://$domain$path"
|
|
if [[ "$basic_auth" == "true" ]]; then
|
|
content=$(curl -s -u "$user:$pass" "$url")
|
|
else
|
|
content=$(curl -s "$url")
|
|
fi
|
|
word_ok=0
|
|
[[ "$content" == *"$word"* ]] && word_ok=1
|
|
|
|
# --- Scrivi in tmp JSON ---
|
|
jq -n \
|
|
--arg host "$host" \
|
|
--arg domain "$domain" \
|
|
--arg path "$path" \
|
|
--arg word "$word" \
|
|
--argjson wordcheck_ok "$word_ok" \
|
|
--argjson sslcheck_ok "$ssl_ok" \
|
|
--arg ssl_released "$ssl_released" \
|
|
--arg ssl_expiry "$ssl_expiry" \
|
|
--arg ssl_company "$ssl_company" \
|
|
'{
|
|
host: $host,
|
|
domain: $domain,
|
|
path: $path,
|
|
wordtocheck: $word,
|
|
wordcheck_ok: $wordcheck_ok,
|
|
sslcheck_ok: $sslcheck_ok,
|
|
"ssl-released": $ssl_released,
|
|
"ssl-expiry": $ssl_expiry,
|
|
"ssl-company": $ssl_company
|
|
}' >> "$tmpfile"
|
|
done
|
|
|
|
# --- Combina in array JSON ---
|
|
jq -s '.' "$tmpfile" > "$output"
|
|
rm "$tmpfile"
|
|
|
|
echo "Check completato. Output salvato in $output"
|