Anti-Bot Services¶
Reference guide to anti-bot services that recurl can detect and bypass.
Service Overview¶
| Service | Type | Detection | Bypass |
|---|---|---|---|
| Cloudflare | CDN/WAF | ✓ | ✓ |
| Akamai Bot Manager | CDN/WAF | ✓ | ✓ |
| PerimeterX / HUMAN | Bot Protection | ✓ | ✓ |
| DataDome | Bot Protection | ✓ | ✓ |
| Imperva / Incapsula | CDN/WAF | ✓ | ✓ |
| Kasada | Bot Protection | ✓ | ✓ |
| Shape / F5 | Bot Protection | ✓ | ✓ |
| Arkose Labs | CAPTCHA | ✓ | Partial |
| AWS WAF | WAF | ✓ | ✓ |
| GeeTest | CAPTCHA | ✓ | Partial |
| hCaptcha | CAPTCHA | ✓ | Partial |
| reCAPTCHA | CAPTCHA | ✓ | Partial |
CDN / WAF Services¶
Cloudflare¶
Market share: ~80% of protected sites
Protection levels:
| Level | Description | Bypass |
|---|---|---|
| Basic | TLS fingerprinting | Impersonation |
| Standard | JS challenge | JS Preflight |
| Turnstile | Interactive CAPTCHA | JS Preflight* |
| Under Attack | Aggressive checking | JS Preflight |
*Turnstile may require multiple attempts.
Signatures:
Just a moment...titlecf-browser-verification/cdn-cgi/challenge-platform/cf_clearancecookie__cf_bmcookieCF-RAYheader
Example:
recurl --recurl-debug https://cloudflare-protected.com
# [recurl] Detected: Cloudflare
# [recurl] Escalating: impersonation (chrome)
# ... or JS preflight if needed
Akamai Bot Manager¶
Signatures:
_abckcookieak_bmsccookiebm_sz,bm_svcookies/akam/script pathssensor_datapayloads
Bypass strategy:
- Impersonation often works for basic protection
- JS Preflight for advanced detection
AWS WAF¶
Signatures:
aws-waf-tokencookiex-amzn-waf-*headerscaptcha.awswafchallenges
Bypass strategy:
- Impersonation usually sufficient
- JS Preflight for CAPTCHA challenges
Imperva / Incapsula¶
Signatures:
incap_ses_*cookiesvisid_incap_*cookiesreese84cookies___utmvccookie
Bypass strategy:
- Impersonation often works
- JS Preflight for advanced protection
Specialized Bot Protection¶
PerimeterX / HUMAN Security¶
Signatures:
_px3,_px2cookies_pxvid,_pxff,_pxdePX-Compromisedheaderpxcdn.netscriptshuman.com/pxreferences
Bypass strategy:
- JS Preflight usually required
- Impersonation rarely sufficient
DataDome¶
Signatures:
datadomecookiegeo.captcha-delivery.comct.captcha-delivery.cominterstitial.captcha-delivery.com
Bypass strategy:
- JS Preflight required
- Often requires waiting for challenge
Kasada¶
Signatures:
x-kpsdk-*headers/ips.jsscriptkpparamparameters/tl/pathscd.jsscript
Bypass strategy:
- JS Preflight required
- May need extended timeout
Shape Security / F5 Bot Defense¶
Signatures:
shape.comreferencesshapesecuritypatterns_imp_apg_r_cookies_imp_di_pc_cookiesx-px-headers
Bypass strategy:
- JS Preflight required
- Advanced behavioral analysis
CAPTCHA Services¶
Arkose Labs (FunCaptcha)¶
Signatures:
arkoselabs.comscriptsfuncaptchareferencesfc/assets,fc/apipathsenforcement.arkoselabs.com
Bypass:
- Detection: ✓
- Auto-solve: Partial (interactive CAPTCHA)
- May complete automatically if not interactive
GeeTest¶
Signatures:
geetest.comreferencesgt_prefixed elementsinitGeetest()functioncaptcha4.jsscript
Bypass:
- Detection: ✓
- Auto-solve: Partial
- Slide CAPTCHA may be solvable
hCaptcha¶
Signatures:
hcaptcha.comscriptsh-captchaclass
Bypass:
- Detection: ✓
- Auto-solve: No (requires human)
- JS Preflight waits but cannot solve
reCAPTCHA¶
Signatures:
recaptcha.netscriptsg-recaptchaclassgrecaptchaobjectrecaptcha/apipaths
Bypass:
- Detection: ✓
- Auto-solve: No (requires human)
- JS Preflight waits but cannot solve
Bypass Recommendations¶
By Protection Type¶
| Protection | Recommended Approach |
|---|---|
| TLS Fingerprinting | --recurl-impersonate chrome |
| JavaScript Challenge | --recurl-js |
| Rate Limiting | Add delays, use proxy rotation |
| CAPTCHA | Manual solving, CAPTCHA services |
By Service¶
| Service | First Try | Fallback |
|---|---|---|
| Cloudflare | Impersonation | JS Preflight |
| Akamai | Impersonation | JS Preflight |
| PerimeterX | JS Preflight | - |
| DataDome | JS Preflight | - |
| Kasada | JS Preflight | Extended timeout |
Detection Debug¶
See which service recurl detects:
Manual Pattern Check¶
# Get response and check for patterns
curl -s https://example.com | grep -i cloudflare
curl -s https://example.com | grep -i _abck
curl -s https://example.com | grep -i datadome
Tips for Difficult Sites¶
-
Use JS Preflight from start
-
Wait for specific content
-
Increase timeout
-
Check rendered HTML
-
Combine with proxy (if IP blocked)