Comprehensive attack vectors and defense strategies for technical security professionals
{
"method": "GET",
"tlsFingerprint": {
"ja3": "9342348ca94665d1044cb9d382e70070",
"ja4": "t13d1011h2_61a7ad8aa9b6_3fcd1a44f3e3",
"tlsVersion": "TLSv1.3",
"cipher": "AEAD-AES256-GCM-SHA384"
},
"httpFingerprint": {
"protocol": "HTTP/2",
"headers": {
"accept": "*/*",
"accept-encoding": "gzip, br",
"cf-cert-presented": "false",
"cf-cert-revoked": "false",
"cf-cert-verified": "false",
"cf-connecting-ip": "216.73.216.237",
"cf-ipcountry": "US",
"cf-ray": "a3bb7bedf80c2c82",
"cf-visitor": "{\"scheme\":\"https\"}",
"connection": "Keep-Alive"
}
},
"geoFingerprint": {
"country": "US",
"city": "Columbus",
"region": "Ohio",
"asn": 16509,
"asOrganization": "Anthropic, PBC"
},
"riskIndicators": {
"botScore": 1,
"verifiedBot": true
}
}
Manipulate database queries through user input
Real-world: Equifax breach (2017), Heartland Payment Systems, Sony Pictures
949110, 942100, 942110, 942120, 942130, 942140, 942150, 942160
(cf.waf.score.sqli lt 40) or (http.request.uri.query contains "UNION" and http.request.uri.query contains "SELECT")
Inject malicious scripts into web pages viewed by other users
941100, 941110, 941120, 941130, 941140, 941150, 941160
(cf.waf.score.xss lt 40) or (http.request.uri contains "<script" and not http.request.uri.path contains "/admin/")
Inject template syntax to achieve RCE on the server
Real-world: Uber template injection (2016), Atlassian Confluence CVE-2023-22515
934100, 934110, 934120
(http.request.uri.query contains "{{" or http.request.uri.query contains "${" or http.request.uri.query contains "<%" or http.request.uri.query contains "{%")
Desync frontend/backend request parsing to poison cache or bypass security
Real-world: PayPal bug bounty $20k, Capital One, Many CDN bypass vulnerabilities
Automatically normalized by Cloudflare proxy
Exploit GraphQL-specific vulnerabilities
Enable GraphQL protection in API Shield
(http.request.uri.path eq "/graphql" and http.request.body.raw contains "__schema")
Exploit JSON Web Token vulnerabilities
Implement at application level
(http.request.headers["authorization"] contains "alg":"none" or http.request.headers["authorization"] contains "\"alg\":\"none\"")
Force server to make requests to unintended destinations
Real-world: Capital One breach (2019) - $80M fine, GitLab SSRF, Shopify bug bounties
931100, 931110, 931120, 931130
(http.request.uri.query contains "169.254" or http.request.uri.query contains "metadata" or http.request.uri.query contains "127.0.0.1" or http.request.uri.query contains "localhost" or http.request.uri.query contains "file://")
Inject malicious content into cached responses
Configure cache keys carefully
(any(http.request.headers.names[*] eq "X-Forwarded-Host") and not ip.src in {trusted-ips})
Modify JavaScript object prototypes for XSS or RCE
Real-world: Kibana CVE-2019-7609 (RCE), npm packages: lodash, jquery
Check latest ruleset updates
(http.request.uri.query contains "__proto__" or http.request.uri.query contains "constructor[prototype]" or http.request.body.raw contains "\"__proto__\"")
Exploit XML parsers for file read, SSRF, or DoS
200002, 200003, 200004
(http.request.body.raw contains "<!ENTITY" or http.request.body.raw contains "SYSTEM" or http.request.body.raw contains "<!DOCTYPE")
Execute arbitrary commands on the server
Real-world: Log4Shell (Dec 2021) - Widespread impact, Apache Struts Equifax breach
932100, 932105, 932110, 932115, 932120, 932130, 932140
(cf.waf.score.rce lt 40) or (http.request.uri contains "${jndi" or http.request.headers["user-agent"] contains "${jndi")
Access files outside the intended directory
930100, 930110, 930120, 930130
(http.request.uri contains ".." or http.request.uri contains "%2e%2e" or http.request.uri contains "%252e")
Circumvent authentication mechanisms
Application-specific
(http.request.uri.query contains "[$ne]" or http.request.uri.query contains "[$gt]" or http.request.headers["host"] ne "expected-host.com")
Exploit WebSocket connections for hijacking or injection
Application-level checks
Configure WebSocket protection in Workers
Exploit API-specific vulnerabilities
Enable API Shield features
(http.request.uri.path matches "^/api/admin" and not cf.access.authenticated)
ML-based scoring: cf.waf.score (1-99, lower = more likely attack)
Component scores: cf.waf.score.sqli, cf.waf.score.xss, cf.waf.score.rce
Bot score: cf.bot_management.score (1-99, higher = more likely human)
Fingerprinting: cf.bot_management.ja3_hash, cf.bot_management.ja4
Enable in Security > WAF > Managed Rules
Key rulesets: Cloudflare Managed, OWASP Core, Exposed Credentials Check
Combine signals: (cf.waf.score lt 50) or (cf.threat_score gt 30)
Actions: Block, Challenge, JS Challenge, Managed Challenge, Log
Path-based: http.request.uri.path eq "/api/login"
Counting: Requests per period with sliding window
Schema validation, mTLS, sequence mitigation
GraphQL: Depth limiting, complexity analysis