بنقرة واحدة
waf-detect
Detect the presence and type of a Web Application Firewall using wafw00f or manual fingerprinting
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
Detect the presence and type of a Web Application Firewall using wafw00f or manual fingerprinting
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Interactive gap analysis against Korea's ISMS-P 102-control certification framework (management, protection, personal information)
Security log analysis and anomaly detection for access, auth, and syslog files
Analyze suspicious files through triage/static/dynamic/code phases to produce IOCs, YARA/Sigma rules, and MITRE ATT&CK mappings
File hash reputation lookup via VirusTotal API v3 for MD5/SHA1/SHA256 detection ratio, threat classification, and vendor results
OWASP Top 10 (2021) checklist-based inspection and compliance matrix generation
Multi-chain smart contract security for Solana, Algorand, Cairo, Cosmos, Substrate, and TON with pre-audit readiness checks
| name | waf-detect |
| description | Detect the presence and type of a Web Application Firewall using wafw00f or manual fingerprinting |
| license | MIT |
| metadata | {"category":"web-security","locale":"en","phase":"v1"} |
Detects whether a WAF (Web Application Firewall) is present in front of a target URL using the wafw00f tool or manual curl fingerprinting, and identifies the specific WAF product — Cloudflare, AWS WAF, Akamai, F5 BIG-IP, and others.
wafw00f installation)curl required (manual fallback method)| Variable | Description | Example |
|---|---|---|
TARGET_URL | Target URL to test | https://example.com |
# Check for wafw00f and install if missing
if ! command -v wafw00f &>/dev/null; then
echo "wafw00f not found. Installing..."
pip install wafw00f --quiet
else
echo "wafw00f already installed: $(wafw00f --version 2>&1 | head -1)"
fi
TARGET_URL="https://example.com"
echo "=== wafw00f WAF detection ==="
wafw00f "$TARGET_URL" -a 2>&1
# -a : output all WAF candidates
echo ""
echo "=== Manual WAF fingerprinting (curl) ==="
# 1) Collect baseline headers with a normal request
echo "--- Normal request ---"
NORMAL=$(curl -s -I "$TARGET_URL" --max-time 10 2>&1)
echo "$NORMAL" | grep -iE "server:|x-powered-by:|cf-ray:|x-amz|x-cache|x-cdn|via:|x-sucuri|x-fw-|x-waf"
# 2) Send a malicious payload to trigger WAF response
echo ""
echo "--- Payload request (checking WAF reaction) ---"
ATTACK=$(curl -s -o /dev/null -w "%{http_code}" \
"$TARGET_URL/?q=<script>alert(1)</script>" \
--max-time 10 2>&1)
echo "XSS payload HTTP status: $ATTACK"
SQLI=$(curl -s -o /dev/null -w "%{http_code}" \
"$TARGET_URL/?id=1'+OR+'1'='1" \
--max-time 10 2>&1)
echo "SQLi payload HTTP status: $SQLI"
HEADERS_ATTACK=$(curl -s -I \
"$TARGET_URL/?q=<script>alert(1)</script>" \
--max-time 10 2>&1)
echo ""
echo "--- Payload request response headers ---"
echo "$HEADERS_ATTACK" | grep -iE "server:|cf-ray:|x-amz|x-cache|x-sucuri|x-iinfo:|x-check-cacheable:|x-fw-|set-cookie:"
Reference: See REFERENCE.md for the WAF fingerprint pattern table (6 WAF products with header signatures and block responses).
echo ""
echo "=== Detection summary ==="
echo "Normal response code: $(echo "$NORMAL" | grep "^HTTP" | awk '{print $2}')"
echo "XSS payload blocked: $ATTACK"
echo "SQLi payload blocked: $SQLI"
| Symptom | Cause and resolution |
|---|---|
| wafw00f installation fails | pip permission issue. Use pip install --user wafw00f or a virtual environment |
| All payloads return 200 | No WAF present or detection is being evaded. Try URL-encoded payload variants |
| 403 returned but no WAF headers | May be application-level blocking. Check the response body |
| IP blocked due to rate limiting | Throttle requests by adding sleep 2 between calls |
identYwaf (https://github.com/stamparm/identYwaf) is also useful for WAF bypass research.