Rate Limit Bypass

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Rate limit bypass techniques

Exploring Similar Endpoints

Jaribio zinapaswa kufanywa kufanya mashambulizi ya nguvu ya kikatili kwenye tofauti za mwisho zilizokusudiwa, kama vile /api/v3/sign-up, ikiwa ni pamoja na mbadala kama /Sing-up, /SignUp, /singup, /api/v1/sign-up, /api/sign-up nk.

Incorporating Blank Characters in Code or Parameters

Kuingiza bytes za tupu kama %00, %0d%0a, %0d, %0a, %09, %0C, %20 katika msimbo au vigezo kunaweza kuwa mkakati mzuri. Kwa mfano, kubadilisha parameter kuwa code=1234%0a kunaruhusu kupanua majaribio kupitia tofauti katika ingizo, kama kuongeza wahusika wapya kwenye anwani ya barua pepe ili kuzunguka mipaka ya majaribio.

Manipulating IP Origin via Headers

Kubadilisha vichwa vya habari ili kubadilisha IP inayodhaniwa inaweza kusaidia kuepuka mipaka ya kiwango inayotegemea IP. Vichwa vya habari kama X-Originating-IP, X-Forwarded-For, X-Remote-IP, X-Remote-Addr, X-Client-IP, X-Host, X-Forwared-Host, ikiwa ni pamoja na kutumia matukio mengi ya X-Forwarded-For, yanaweza kubadilishwa ili kuiga maombi kutoka IP tofauti.

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

Kubadilisha Vichwa Vingine

Kubadilisha vichwa vingine vya ombi kama vile user-agent na cookies kunashauriwa, kwani hivi vinaweza kutumika pia kubaini na kufuatilia mifumo ya maombi. Kubadilisha vichwa hivi kunaweza kuzuia kutambuliwa na kufuatiliwa kwa shughuli za mtumiaji.

Kutumia Tabia ya API Gateway

Baadhi ya API gateways zimewekwa ili kutekeleza mipaka ya kiwango kulingana na mchanganyiko wa mwisho wa huduma na vigezo. Kwa kubadilisha thamani za vigezo au kuongeza vigezo visivyo na maana kwenye ombi, inawezekana kupita mantiki ya mipaka ya kiwango ya gateway, na kufanya kila ombi kuonekana kuwa la kipekee. Kwa mfano /resetpwd?someparam=1.

Kuingia Kwenye Akaunti Yako Kabla ya Kila Jaribio

Kuingia kwenye akaunti kabla ya kila jaribio, au kila seti ya majaribio, kunaweza kurekebisha hesabu ya mipaka ya kiwango. Hii ni muhimu hasa wakati wa kujaribu kazi za kuingia. Kutumia shambulio la Pitchfork katika zana kama Burp Suite, kubadilisha akidi kila baada ya majaribio kadhaa na kuhakikisha kwamba uelekeo wa kurudi umewekwa alama, kunaweza kuanzisha tena hesabu za mipaka ya kiwango kwa ufanisi.

Kutumia Mitandao ya Proxy

Kuweka mtandao wa proxies ili kusambaza maombi kwenye anwani nyingi za IP kunaweza kupita mipaka ya kiwango inayotegemea IP kwa ufanisi. Kwa kuelekeza trafiki kupitia proxies mbalimbali, kila ombi linaonekana kutokea kutoka chanzo tofauti, na kupunguza ufanisi wa mipaka ya kiwango.

Kugawanya Shambulio Kati ya Akaunti au Sesheni Tofauti

Ikiwa mfumo wa lengo unatekeleza mipaka ya kiwango kwa msingi wa akaunti au sesheni, kusambaza shambulio au jaribio kati ya akaunti au sesheni nyingi kunaweza kusaidia katika kuepuka kugundulika. Njia hii inahitaji kusimamia vitambulisho vingi au token za sesheni, lakini inaweza kusambaza mzigo kwa ufanisi ili kubaki ndani ya mipaka inayoruhusiwa.

Endelea Kujaribu

Kumbuka kwamba hata kama mipaka ya kiwango ipo unapaswa kujaribu kuona kama jibu ni tofauti wakati OTP halali inatumwa. Katika post hii, mv hunting aligundua kwamba hata kama mipaka ya kiwango ilipangwa baada ya majaribio 20 yasiyofanikiwa kwa kujibu na 401, ikiwa ile halali ilitumwa jibu la 200 lilipokelewa.


Kutumia vibaya HTTP/2 multiplexing & request pipelining (2023-2025)

Utekelezaji wa kisasa wa mipaka ya kiwango mara nyingi huhesabu TCP connections (au hata maombi ya kibinafsi ya HTTP/1.1) badala ya idadi ya HTTP/2 streams ambayo muunganisho unayo. Wakati muunganisho huo wa TLS unapotumika tena, mshambuliaji anaweza kufungua mstreams mia kadhaa za sambamba, kila moja ikibeba ombi tofauti, wakati gateway inakata tu ombio moja kutoka kwenye quota.

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

Ikiwa limiter inalinda tu /verify lakini si /api/v2/verify, unaweza pia kuunganisha path confusion na HTTP/2 multiplexing kwa kasi ya juu sana ya OTP au brute-forcing ya akidi.

🐾 Tip: PortSwigger’s Turbo Intruder inasaidia HTTP/2 na inakuwezesha kuboresha maxConcurrentConnections na requestsPerConnection ili kuendesha shambulio hili kiotomatiki.

GraphQL aliases & batched operations

GraphQL inaruhusu mteja kutuma maswali au mabadiliko kadhaa ambayo ni huru kima mantiki katika ombi moja kwa kuyapachika aliases. Kwa sababu seva inatekeleza kila alias lakini rate-limiter mara nyingi inahesabu tu ombio moja, hii ni njia ya kuaminika ya kupita vizuizi vya kuingia au kurekebisha nenosiri.

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

Tazama jibu: haswa alias moja itarudisha 200 OK wakati msimbo sahihi unagongwa, wakati wengine wanapunguzia kiwango.

Mbinu hii ilienezwa na utafiti wa PortSwigger kuhusu “GraphQL batching & aliases” mnamo 2023 na imekuwa na jukumu katika malipo mengi ya hivi karibuni ya bug-bounty.

Unyanyasaji wa batch au bulk REST endpoints

Baadhi ya APIs zinaonyesha endpoints za msaada kama vile /v2/batch au zinakubali array ya vitu katika mwili wa ombi. Ikiwa limiter imewekwa mbele ya legacy endpoints pekee, kufunga operesheni nyingi ndani ya ombi moja la bulk kunaweza kabisa kupita ulinzi.

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

Timing the sliding-window

Kikomo cha jadi cha token-bucket au leaky-bucket kinarejeshwa kwenye mpaka wa muda uliopewa (kwa mfano, kila dakika). Ikiwa dirisha linajulikana (kwa mfano, kupitia ujumbe wa makosa kama X-RateLimit-Reset: 27), fanya idadi ya juu inayoruhusiwa ya maombi kabla tu ya kikomo kurejeshwa, kisha mara moja fanya mlipuko mwingine kamili.

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

Hii optimizasyon rahisi inaweza zaidi ya kuimarisha kupitia yako bila kugusa mbinu nyingine yoyote ya kupita.


Zana

  • https://github.com/Hashtag-AMIN/hashtag-fuzz: Zana ya fuzzing inayounga mkono randomization ya kichwa, orodha za maneno zilizogawanywa na mzunguko wa proxy wa round-robin.
  • https://github.com/ustayready/fireprox: Inaunda kiotomatiki mwisho wa AWS API Gateway wa kutupwa ili kila ombi litoke kutoka anwani tofauti ya IP – bora kwa kushinda throttling inayotegemea IP.
  • Burp Suite – IPRotate + nyongeza: Inatumia mchanganyiko wa proxies za SOCKS/HTTP (au AWS API Gateway) kubadilisha IP ya chanzo kwa uwazi wakati wa mashambulizi ya Intruder na Turbo Intruder.
  • Turbo Intruder (BApp): Injini ya shambulio yenye utendaji wa juu inayounga mkono multiplexing ya HTTP/2; punguza requestsPerConnection hadi 100-1000 ili kuunganisha maombi mamia katika muunganisho mmoja.

Marejeleo

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks