mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/rate-limit-bypass.md'] to hi
This commit is contained in:
parent
2ffe5ff5bc
commit
f6a880fedc
@ -30,7 +30,7 @@ X-Forwarded-For: 127.0.0.1
|
||||
```
|
||||
### अन्य हेडर बदलना
|
||||
|
||||
अन्य अनुरोध हेडर जैसे कि उपयोगकर्ता-एजेंट और कुकीज़ को बदलना अनुशंसित है, क्योंकि इनका उपयोग अनुरोध पैटर्न की पहचान और ट्रैकिंग के लिए भी किया जा सकता है। इन हेडरों को बदलने से अनुरोधकर्ता की गतिविधियों की पहचान और ट्रैकिंग को रोकने में मदद मिल सकती है।
|
||||
अन्य अनुरोध हेडर जैसे कि उपयोगकर्ता-एजेंट और कुकीज़ को बदलना अनुशंसित है, क्योंकि इनका उपयोग अनुरोध पैटर्न की पहचान और ट्रैकिंग के लिए भी किया जा सकता है। इन हेडर्स को बदलने से अनुरोधकर्ता की गतिविधियों की पहचान और ट्रैकिंग को रोकने में मदद मिल सकती है।
|
||||
|
||||
### API गेटवे व्यवहार का लाभ उठाना
|
||||
|
||||
@ -38,22 +38,80 @@ X-Forwarded-For: 127.0.0.1
|
||||
|
||||
### प्रत्येक प्रयास से पहले अपने खाते में लॉग इन करना
|
||||
|
||||
प्रत्येक प्रयास से पहले या प्रयासों के हर सेट से पहले एक खाते में लॉग इन करना दर सीमा काउंटर को रीसेट कर सकता है। यह लॉगिन कार्यक्षमताओं का परीक्षण करते समय विशेष रूप से उपयोगी है। Burp Suite जैसे उपकरणों में एक पिचफोर्क हमले का उपयोग करके, हर कुछ प्रयासों में क्रेडेंशियल्स को घुमाना और सुनिश्चित करना कि फॉलो रीडायरेक्ट्स को चिह्नित किया गया है, दर सीमा काउंटर को प्रभावी ढंग से पुनः प्रारंभ कर सकता है।
|
||||
प्रत्येक प्रयास से पहले या प्रयासों के हर सेट से पहले एक खाते में लॉग इन करना दर सीमा काउंटर को रीसेट कर सकता है। यह लॉगिन कार्यक्षमताओं का परीक्षण करते समय विशेष रूप से उपयोगी है। Burp Suite जैसे उपकरणों में एक पिचफोर्क हमले का उपयोग करके, हर कुछ प्रयासों में क्रेडेंशियल्स को घुमाना और यह सुनिश्चित करना कि फॉलो रीडायरेक्ट्स को चिह्नित किया गया है, दर सीमा काउंटर को प्रभावी ढंग से पुनः प्रारंभ कर सकता है।
|
||||
|
||||
### प्रॉक्सी नेटवर्क का उपयोग करना
|
||||
|
||||
कई IP पते के बीच अनुरोधों को वितरित करने के लिए प्रॉक्सी का एक नेटवर्क तैनात करना IP-आधारित दर सीमाओं को प्रभावी ढंग से बायपास कर सकता है। विभिन्न प्रॉक्स के माध्यम से ट्रैफ़िक को रूट करके, प्रत्येक अनुरोध एक अलग स्रोत से उत्पन्न होता है, जिससे दर सीमा की प्रभावशीलता कम हो जाती है।
|
||||
कई IP पतों के बीच अनुरोधों को वितरित करने के लिए प्रॉक्सी का एक नेटवर्क तैनात करना IP-आधारित दर सीमाओं को प्रभावी ढंग से बायपास कर सकता है। विभिन्न प्रॉक्सियों के माध्यम से ट्रैफ़िक को रूट करके, प्रत्येक अनुरोध एक अलग स्रोत से उत्पन्न होता हुआ प्रतीत होता है, जिससे दर सीमा की प्रभावशीलता कम हो जाती है।
|
||||
|
||||
### विभिन्न खातों या सत्रों के बीच हमले को विभाजित करना
|
||||
|
||||
यदि लक्षित प्रणाली प्रति-खाता या प्रति-सत्र आधार पर दर सीमाएँ लागू करती है, तो कई खातों या सत्रों के बीच हमले या परीक्षण को वितरित करना पहचान से बचने में मदद कर सकता है। इस दृष्टिकोण के लिए कई पहचान या सत्र टोकन का प्रबंधन करना आवश्यक है, लेकिन यह अनुमेय सीमाओं के भीतर रहने के लिए लोड को प्रभावी ढंग से वितरित कर सकता है।
|
||||
|
||||
### प्रयास करते रहें
|
||||
### प्रयास करते रहना
|
||||
|
||||
ध्यान दें कि भले ही दर सीमा लागू हो, आपको यह देखने के लिए प्रयास करना चाहिए कि क्या जब मान्य OTP भेजा जाता है तो प्रतिक्रिया अलग होती है। [**इस पोस्ट**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) में, बग शिकारी ने पाया कि भले ही 20 असफल प्रयासों के बाद दर सीमा सक्रिय हो जाती है और 401 के साथ प्रतिक्रिया मिलती है, यदि मान्य OTP भेजा गया तो 200 प्रतिक्रिया प्राप्त होती है।
|
||||
ध्यान दें कि भले ही दर सीमा लागू हो, आपको यह देखने के लिए प्रयास करना चाहिए कि क्या जब मान्य OTP भेजा जाता है तो प्रतिक्रिया अलग होती है। [**इस पोस्ट**](https://mokhansec.medium.com/the-2-200-ato-most-bug-hunters-overlooked-by-closing-intruder-too-soon-505f21d56732) में, बग शिकारी ने खोजा कि भले ही 20 असफल प्रयासों के बाद दर सीमा सक्रिय हो जाती है और 401 के साथ प्रतिक्रिया मिलती है, यदि मान्य OTP भेजा गया तो 200 प्रतिक्रिया प्राप्त होती है।
|
||||
|
||||
### उपकरण
|
||||
---
|
||||
|
||||
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): hashtag-fuzz एक फज़िंग उपकरण है जिसे WAFs और CDNs का परीक्षण और बायपास करने के लिए डिज़ाइन किया गया है। यादृच्छिक उपयोगकर्ता-एजेंट और हेडर मान, यादृच्छिक विलंब, मल्टी-थ्रेडिंग को संभालने, शब्दसूचियों के चयनात्मक चंकिंग और प्रत्येक चंक के लिए राउंड रॉबिन प्रॉक्सी रोटेशन जैसी उन्नत सुविधाओं का लाभ उठाकर, यह सुरक्षा पेशेवरों के लिए एक मजबूत समाधान प्रदान करता है जो वेब अनुप्रयोगों में कमजोरियों की पहचान करने का लक्ष्य रखते हैं।
|
||||
### HTTP/2 मल्टीप्लेक्सिंग और अनुरोध पाइपलाइनिंग का दुरुपयोग (2023-2025)
|
||||
|
||||
आधुनिक दर-सीमित कार्यान्वयन अक्सर **TCP कनेक्शनों** (या यहां तक कि व्यक्तिगत HTTP/1.1 अनुरोधों) की गिनती करते हैं, बजाय इसके कि एक कनेक्शन में *HTTP/2 स्ट्रीम की संख्या* कितनी है। जब वही TLS कनेक्शन पुन: उपयोग किया जाता है, तो एक हमलावर सैकड़ों समानांतर स्ट्रीम खोल सकता है, प्रत्येक एक अलग अनुरोध ले जा रहा है, जबकि गेटवे केवल *एक* अनुरोध को कोटा से घटाता है।
|
||||
```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
|
||||
```
|
||||
यदि लिमिटर केवल `/verify` की रक्षा करता है लेकिन `/api/v2/verify` की नहीं, तो आप **पथ भ्रम** को HTTP/2 मल्टीप्लेक्सिंग के साथ *अत्यधिक* उच्च गति OTP या क्रेडेंशियल ब्रूट-फोर्सिंग के लिए संयोजित कर सकते हैं।
|
||||
|
||||
> 🐾 **टिप:** PortSwigger का [Turbo Intruder](https://portswigger.net/research/turbo-intruder) HTTP/2 का समर्थन करता है और आपको इस हमले को स्वचालित करने के लिए `maxConcurrentConnections` और `requestsPerConnection` को ठीक से समायोजित करने की अनुमति देता है।
|
||||
|
||||
### GraphQL उपनाम और बैच ऑपरेशंस
|
||||
|
||||
GraphQL क्लाइंट को **एकल अनुरोध में कई तार्किक रूप से स्वतंत्र प्रश्न या म्यूटेशन भेजने** की अनुमति देता है, जिन्हें *उपनाम* के साथ पूर्ववर्ती किया जाता है। क्योंकि सर्वर हर उपनाम को निष्पादित करता है लेकिन रेट-लिमिटर अक्सर केवल *एक* अनुरोध की गिनती करता है, यह लॉगिन या पासवर्ड-रीसेट थ्रॉटलिंग के लिए एक विश्वसनीय बाईपास है।
|
||||
```graphql
|
||||
mutation bruteForceOTP {
|
||||
a: verify(code:"111111") { token }
|
||||
b: verify(code:"222222") { token }
|
||||
c: verify(code:"333333") { token }
|
||||
# … add up to dozens of aliases …
|
||||
}
|
||||
```
|
||||
देखें, जब सही कोड हिट होता है, तो ठीक एक उपनाम 200 OK लौटाएगा, जबकि अन्य को दर-सीमा में रखा गया है।
|
||||
|
||||
यह तकनीक 2023 में PortSwigger के "GraphQL batching & aliases" पर शोध द्वारा लोकप्रिय हुई और हाल के कई बग-बाउंटी भुगतान के लिए जिम्मेदार रही है।
|
||||
|
||||
### *batch* या *bulk* REST एंडपॉइंट्स का दुरुपयोग
|
||||
|
||||
कुछ APIs सहायक एंडपॉइंट्स जैसे `/v2/batch` को उजागर करते हैं या अनुरोध शरीर में **वस्तुओं की एक सरणी** को स्वीकार करते हैं। यदि सीमित करने वाला केवल *legacy* एंडपॉइंट्स के सामने रखा गया है, तो एकल बल्क अनुरोध के अंदर कई संचालन को लपेटना सुरक्षा को पूरी तरह से दरकिनार कर सकता है।
|
||||
```json
|
||||
[
|
||||
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"123"}},
|
||||
{"path": "/login", "method": "POST", "body": {"user":"bob","pass":"456"}}
|
||||
]
|
||||
```
|
||||
### Timing the sliding-window
|
||||
|
||||
एक क्लासिक टोकन-बकेट या लीक-बकेट लिमिटर *रीसेट* एक निश्चित समय सीमा पर होता है (उदाहरण के लिए, हर मिनट)। यदि विंडो ज्ञात है (जैसे कि त्रुटि संदेशों के माध्यम से जैसे `X-RateLimit-Reset: 27`), तो बकेट रीसेट होने से **पहले** अधिकतम अनुमति प्राप्त अनुरोधों की संख्या को फायर करें, फिर तुरंत एक और पूर्ण बर्स्ट फायर करें।
|
||||
```
|
||||
|<-- 60 s window ‑->|<-- 60 s window ‑->|
|
||||
###### ######
|
||||
```
|
||||
यह सरल ऑप्टिमाइजेशन आपके थ्रूपुट को अन्य बायपास तकनीक को छुए बिना दोगुना कर सकता है।
|
||||
|
||||
---
|
||||
|
||||
## Tools
|
||||
|
||||
- [**https://github.com/Hashtag-AMIN/hashtag-fuzz**](https://github.com/Hashtag-AMIN/hashtag-fuzz): फज़िंग टूल जो हेडर रैंडमाइजेशन, चंक्ड वर्ड-लिस्ट और राउंड-रॉबिन प्रॉक्सी रोटेशन का समर्थन करता है।
|
||||
- [**https://github.com/ustayready/fireprox**](https://github.com/ustayready/fireprox): स्वचालित रूप से डिस्पोजेबल AWS API गेटवे एंडपॉइंट बनाता है ताकि हर अनुरोध एक अलग IP पते से उत्पन्न हो – IP-आधारित थ्रॉटलिंग को हराने के लिए एकदम सही।
|
||||
- **Burp Suite – IPRotate + extension**: *Intruder* और *Turbo Intruder* हमलों के दौरान स्रोत IP को पारदर्शी रूप से घुमाने के लिए SOCKS/HTTP प्रॉक्सियों (या AWS API गेटवे) का एक पूल का उपयोग करता है।
|
||||
- **Turbo Intruder (BApp)**: HTTP/2 मल्टीप्लेक्सिंग का समर्थन करने वाला उच्च-प्रदर्शन हमला इंजन; सैकड़ों अनुरोधों को एकल कनेक्शन में समेटने के लिए `requestsPerConnection` को 100-1000 पर ट्यून करें।
|
||||
|
||||
## References
|
||||
|
||||
- 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” (section *Connection-based throttling*) (2024) <https://portswigger.net/research/http2>
|
||||
|
||||
{{#include ../banners/hacktricks-training.md}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user