Rate Limit Bypass

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks

Rate limit bypass techniques

Exploring Similar Endpoints

Pogings moet gemaak word om brute force-aanvalle uit te voer op variasies van die geteikende eindpunt, soos /api/v3/sign-up, insluitend alternatiewe soos /Sing-up, /SignUp, /singup, /api/v1/sign-up, /api/sign-up ens.

Incorporating Blank Characters in Code or Parameters

Die invoeging van leë bytes soos %00, %0d%0a, %0d, %0a, %09, %0C, %20 in kode of parameters kan 'n nuttige strategie wees. Byvoorbeeld, om 'n parameter aan te pas na code=1234%0a stel gebruikers in staat om pogings uit te brei deur variasies in invoer, soos om nuwe reël karakters by 'n e-posadres te voeg om rondom pogingbeperkings te kom.

Manipulating IP Origin via Headers

Die aanpassing van headers om die waargenome IP-oorsprong te verander kan help om IP-gebaseerde spoedbeperkings te ontduik. Headers soos X-Originating-IP, X-Forwarded-For, X-Remote-IP, X-Remote-Addr, X-Client-IP, X-Host, X-Forwared-Host, insluitend die gebruik van meerdere instansies van X-Forwarded-For, kan aangepas word om versoeke van verskillende IP's te simuleer.

bash
X-Originating-IP: 127.0.0.1
X-Forwarded-For: 127.0.0.1
X-Remote-IP: 127.0.0.1
X-Remote-Addr: 127.0.0.1
X-Client-IP: 127.0.0.1
X-Host: 127.0.0.1
X-Forwared-Host: 127.0.0.1

# Double X-Forwarded-For header example
X-Forwarded-For:
X-Forwarded-For: 127.0.0.1

Verandering van Ander Headers

Dit word aanbeveel om ander versoekheaders soos die user-agent en koekies te verander, aangesien hierdie ook gebruik kan word om versoekpatrone te identifiseer en te volg. Deur hierdie headers te verander, kan erkenning en opsporing van die versoeker se aktiwiteite voorkom word.

Benutting van API Gateway Gedrag

Sommige API-gateways is geconfigureer om spoedbeperkings toe te pas op grond van die kombinasie van eindpunt en parameters. Deur die parameterwaardes te varieer of nie-betekenisvolle parameters aan die versoek toe te voeg, is dit moontlik om die gateway se spoedbeperkingslogika te omseil, wat elke versoek uniek laat voorkom. Byvoorbeeld /resetpwd?someparam=1.

Teken in op Jou Rekening Voor Elke Poging

Teken in op 'n rekening voor elke poging, of elke stel pogings, kan die spoedbeperkings teller reset. Dit is veral nuttig wanneer jy inlogfunksies toets. Die gebruik van 'n Pitchfork-aanval in gereedskap soos Burp Suite, om akrediteer te roteer elke paar pogings en te verseker dat gevolgde omleidings gemerk is, kan effektief die spoedbeperkings tellers herbegin.

Benutting van Proxy Netwerke

Die ontplooiing van 'n netwerk van proxies om die versoeke oor verskeie IP-adresse te versprei, kan effektief IP-gebaseerde spoedbeperkings omseil. Deur verkeer deur verskeie proxies te lei, lyk elke versoek asof dit van 'n ander bron afkomstig is, wat die doeltreffendheid van die spoedbeperking verdun.

Verdeling van die Aanval oor Verskillende Rekeninge of Sessies

As die teikenstelsel spoedbeperkings op 'n per-rekening of per-sessie basis toepas, kan die verspreiding van die aanval of toets oor verskeie rekening of sessies help om opsporing te vermy. Hierdie benadering vereis die bestuur van verskeie identiteite of sessietokens, maar kan effektief die las versprei om binne toelaatbare grense te bly.

Hou Aan Probeer

Let daarop dat selfs al is daar 'n spoedbeperking in plek, jy moet probeer om te sien of die reaksie verskil wanneer die geldige OTP gestuur word. In hierdie pos, het die foutjagter ontdek dat selfs al is 'n spoedbeperking geaktiveer na 20 onsuksesvolle pogings deur met 401 te antwoord, as die geldige een gestuur is, is 'n 200 reaksie ontvang.


Misbruik van HTTP/2 multiplexing & versoekpipelining (2023-2025)

Moderne spoedbeperker implementasies tel dikwels TCP verbindings (of selfs individuele HTTP/1.1 versoeke) eerder as die aantal HTTP/2 strome wat 'n verbinding bevat. Wanneer dieselfde TLS-verbinding hergebruik word, kan 'n aanvaller honderde parallelle strome oopmaak, elk wat 'n aparte versoek dra, terwyl die gateway slegs een versoek van die kwota aftrek.

bash
# Send 100 POST requests in a single HTTP/2 connection with curl
seq 1 100 | xargs -I@ -P0 curl -k --http2-prior-knowledge -X POST \
-H "Content-Type: application/json" \
-d '{"code":"@"}' https://target/api/v2/verify &>/dev/null

If the limiter protects only /verify but not /api/v2/verify, you can also combine path confusion with HTTP/2 multiplexing for extreem hoë spoed OTP of geloofsbrief brute-forcing.

🐾 Wenk: PortSwigger se Turbo Intruder ondersteun HTTP/2 en laat jou toe om maxConcurrentConnections en requestsPerConnection fyn te stel om hierdie aanval te outomatiseer.

GraphQL aliase & gebundelde operasies

GraphQL laat die kliënt toe om verskeie logies onafhanklike navrae of mutasies in 'n enkele versoek te stuur deur dit met aliase te prefix. Omdat die bediener elke alias uitvoer, maar die spoedbeperker dikwels net een versoek tel, is dit 'n betroubare omseiling vir aanmeld of wagwoord-herstel beperking.

graphql
mutation bruteForceOTP {
a: verify(code:"111111") { token }
b: verify(code:"222222") { token }
c: verify(code:"333333") { token }
# … add up to dozens of aliases …
}

Kyk na die reaksie: presies een alias sal 200 OK teruggee wanneer die korrekte kode getref word, terwyl die ander beperk is.

Die tegniek is gewild gemaak deur PortSwigger se navorsing oor “GraphQL batching & aliases” in 2023 en was verantwoordelik vir baie onlangse bug-bounty betalings.

Misbruik van batch of bulk REST eindpunte

Sommige API's stel helper eindpunte bloot soos /v2/batch of aanvaar 'n array van objekke in die versoekliggaam. As die limieterder net voor die legacy eindpunte geplaas word, kan die omhulsel van verskeie operasies binne 'n enkele bulk versoek die beskerming heeltemal omseil.

json
[
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"123"}},
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"456"}}
]

Tydsberekening van die skuifvenster

'n Klassieke token-bucket of leaky-bucket limiet herstel op 'n vaste tydgrens (byvoorbeeld, elke minuut). As die venster bekend is (bv. deur foutboodskappe soos X-RateLimit-Reset: 27), stuur die maksimum toegelate aantal versoeke net voor die emmer herstel, en stuur dan onmiddellik nog 'n volle uitbarsting.

|<-- 60 s window ‑->|<-- 60 s window ‑->|
######                 ######

Hierdie eenvoudige optimalisering kan jou deurset meer as verdubbel sonder om enige ander omseilingstegniek aan te raak.


Gereedskap

  • https://github.com/Hashtag-AMIN/hashtag-fuzz: Fuzzing-gereedskap wat koprandomisering, geskeurde woordlyste en rond-rooster proxy-rotasie ondersteun.
  • https://github.com/ustayready/fireprox: Skep outomaties weggooibare AWS API Gateway eindpunte sodat elke versoek van 'n ander IP-adres afkomstig is – perfek om IP-gebaseerde beperking te oorwin.
  • Burp Suite – IPRotate + uitbreiding: Gebruik 'n poel van SOCKS/HTTP-proxies (of AWS API Gateway) om die bron-IP deursigtig te roteer tydens Intruder en Turbo Intruder aanvalle.
  • Turbo Intruder (BApp): Hoë-prestasie aanvalsmotor wat HTTP/2 multiplexing ondersteun; stel requestsPerConnection in op 100-1000 om honderde versoeke in 'n enkele verbinding te laat saamval.

Verwysings

tip

Leer en oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer en oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Leer en oefen Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Ondersteun HackTricks