Translated ['src/pentesting-web/rate-limit-bypass.md'] to sw

This commit is contained in:
Translator 2025-07-12 14:07:50 +00:00
parent a7fb88f84f
commit d34e7108ce

View File

@ -10,11 +10,11 @@ Jaribio zinapaswa kufanywa kufanya mashambulizi ya nguvu ya kikatili kwenye tofa
### Incorporating Blank Characters in Code or Parameters
Kuingiza bytes za tupu kama `%00`, `%0d%0a`, `%0d`, `%0a`, `%09`, `%0C`, `%20` katika msimbo au vigezo inaweza 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.
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 inayotambulika 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.
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
@ -30,7 +30,7 @@ X-Forwarded-For: 127.0.0.1
```
### Kubadilisha Vichwa Vingine
Kubadilisha vichwa vingine vya ombi kama vile user-agent na cookies kunashauriwa, kwani hivi pia vinaweza kutumika kubaini na kufuatilia mifumo ya maombi. Kubadilisha vichwa hivi kunaweza kuzuia kutambuliwa na kufuatiliwa kwa shughuli za mtumiaji.
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
@ -38,11 +38,11 @@ Baadhi ya API gateways zimewekwa ili kutekeleza mipaka ya kiwango kulingana na m
### 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 majaribio machache na kuhakikisha kwamba uelekeo wa kufuatilia umewekwa, kunaweza kuanzisha tena hesabu za mipaka ya kiwango kwa ufanisi.
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, likipunguza ufanisi wa mipaka ya kiwango.
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
@ -50,10 +50,68 @@ Ikiwa mfumo wa lengo unatekeleza mipaka ya kiwango kwa msingi wa akaunti au sesh
### Endelea Kujaribu
Kumbuka kwamba hata kama mipaka ya kiwango ipo unapaswa kujaribu kuona kama jibu ni tofauti wakati OTP halali inatumwa. Katika [**post hii**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732), mv hunting aligundua kwamba hata kama mipaka ya kiwango ilipangwa baada ya majaribio 20 yasiyofanikiwa kwa kujibu na 401, ikiwa halali ilitumwa jibu la 200 lilipokelewa.
Kumbuka kwamba hata kama mipaka ya kiwango ipo unapaswa kujaribu kuona kama jibu ni tofauti wakati OTP halali inatumwa. Katika [**post hii**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732), 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.
### Zana
---
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): hashtag-fuzz ni zana ya fuzzing iliyoundwa ili kujaribu na kupita WAFs na CDNs. Kwa kutumia vipengele vya hali ya juu kama vile User-Agent wa nasibu na thamani ya kichwa, ucheleweshaji wa nasibu, kushughulikia uhamasishaji wa nyuzi nyingi, kuchagua sehemu za orodha za maneno na mzunguko wa proxy wa Round Robin kwa kila sehemu, inatoa suluhisho thabiti kwa wataalamu wa usalama wanaolenga kubaini udhaifu katika programu za wavuti.
### 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:** PortSwiggers [Turbo Intruder](https://portswigger.net/research/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**](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**](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
- PortSwigger Research “Bypassing rate limits with GraphQL aliasing” (2023) <https://portswigger.net/research/graphql-authorization-bypass>
- PortSwigger Research “HTTP/2: The Sequel is Always Worse” (sehemu *Connection-based throttling*) (2024) <https://portswigger.net/research/http2>
{{#include ../banners/hacktricks-training.md}}