mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
Translated ['src/pentesting-web/ssrf-server-side-request-forgery/url-for
This commit is contained in:
parent
4030e19e0b
commit
89a37d0286
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
|
||||||
### Localhost
|
### लोकलहोस्ट
|
||||||
```bash
|
```bash
|
||||||
# Localhost
|
# Localhost
|
||||||
0 # Yes, just 0 is localhost in Linuc
|
0 # Yes, just 0 is localhost in Linuc
|
||||||
@ -154,11 +154,11 @@ https://metadata/expected/path/..%2f..%2f/vulnerable/path
|
|||||||
```
|
```
|
||||||
### Fuzzing
|
### Fuzzing
|
||||||
|
|
||||||
The tool [**recollapse**](https://github.com/0xacb/recollapse) एक दिए गए इनपुट से भिन्नताएँ उत्पन्न कर सकता है ताकि उपयोग किए गए regex को बायपास करने की कोशिश की जा सके। अधिक जानकारी के लिए [**इस पोस्ट**](https://0xacb.com/2022/11/21/recollapse/) को भी देखें।
|
The tool [**recollapse**](https://github.com/0xacb/recollapse) एक दिए गए इनपुट से विभिन्नताएँ उत्पन्न कर सकता है ताकि उपयोग किए गए regex को बायपास किया जा सके। अधिक जानकारी के लिए [**इस पोस्ट**](https://0xacb.com/2022/11/21/recollapse/) को देखें।
|
||||||
|
|
||||||
### Automatic Custom Wordlists
|
### Automatic Custom Wordlists
|
||||||
|
|
||||||
[**URL validation bypass cheat sheet** webapp](https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet) को देखें जहाँ आप अनुमत होस्ट और हमलावर का होस्ट दर्ज कर सकते हैं और यह आपके लिए प्रयास करने के लिए URLs की एक सूची उत्पन्न करेगा। यह यह भी विचार करता है कि क्या आप URL को एक पैरामीटर, एक Host हेडर या एक CORS हेडर में उपयोग कर सकते हैं।
|
[**URL validation bypass cheat sheet** webapp](https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet) को देखें जहाँ आप अनुमत होस्ट और हमलावर का होस्ट डाल सकते हैं और यह आपके लिए प्रयास करने के लिए URLs की एक सूची उत्पन्न करेगा। यह यह भी विचार करता है कि क्या आप URL को एक पैरामीटर, एक Host हेडर या एक CORS हेडर में उपयोग कर सकते हैं।
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet
|
https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet
|
||||||
@ -167,7 +167,7 @@ https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet
|
|||||||
### Bypass via redirect
|
### Bypass via redirect
|
||||||
|
|
||||||
यह संभव है कि सर्वर SSRF के **मूल अनुरोध को फ़िल्टर कर रहा हो** **लेकिन** उस अनुरोध के लिए संभावित **रीडायरेक्ट** प्रतिक्रिया को नहीं।\
|
यह संभव है कि सर्वर SSRF के **मूल अनुरोध को फ़िल्टर कर रहा हो** **लेकिन** उस अनुरोध के लिए संभावित **रीडायरेक्ट** प्रतिक्रिया को नहीं।\
|
||||||
उदाहरण के लिए, एक सर्वर जो SSRF के प्रति संवेदनशील है: `url=https://www.google.com/` संभवतः **url पैरामीटर को फ़िल्टर कर रहा हो**। लेकिन यदि आप एक [python सर्वर का उपयोग करते हैं जो 302 के साथ प्रतिक्रिया देता है](https://pastebin.com/raw/ywAUhFrv) उस स्थान पर जहाँ आप रीडायरेक्ट करना चाहते हैं, तो आप **फ़िल्टर किए गए IP पते** जैसे 127.0.0.1 या यहां तक कि फ़िल्टर किए गए **प्रोटोकॉल** जैसे gopher तक पहुँच सकते हैं।\
|
उदाहरण के लिए, एक सर्वर जो SSRF के प्रति संवेदनशील है: `url=https://www.google.com/` संभवतः **url पैरामीटर को फ़िल्टर कर रहा है**। लेकिन यदि आप एक [python सर्वर का उपयोग करते हैं जो 302 के साथ प्रतिक्रिया करता है](https://pastebin.com/raw/ywAUhFrv) उस स्थान पर जहाँ आप रीडायरेक्ट करना चाहते हैं, तो आप **फ़िल्टर किए गए IP पते** जैसे 127.0.0.1 या यहां तक कि फ़िल्टर किए गए **प्रोटोकॉल** जैसे gopher तक पहुँच सकते हैं।\
|
||||||
[इस रिपोर्ट को देखें।](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
[इस रिपोर्ट को देखें।](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||||
```python
|
```python
|
||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
@ -193,13 +193,13 @@ HTTPServer(("", int(sys.argv[1])), Redirect).serve_forever()
|
|||||||
|
|
||||||
### Blackslash-trick
|
### Blackslash-trick
|
||||||
|
|
||||||
The _backslash-trick_ एक अंतर का लाभ उठाता है जो [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) और [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) के बीच है। जबकि RFC3986 URI के लिए एक सामान्य ढांचा है, WHATWG वेब URLs के लिए विशिष्ट है और आधुनिक ब्राउज़रों द्वारा अपनाया गया है। मुख्य अंतर WHATWG मानक की बैकस्लैश (`\`) को फॉरवर्ड स्लैश (`/`) के समकक्ष मान्यता में है, जो URLs के पार्सिंग के तरीके को प्रभावित करता है, विशेष रूप से URL में होस्टनेम से पथ में संक्रमण को चिह्नित करता है।
|
The _backslash-trick_ एक अंतर का लाभ उठाता है जो [WHATWG URL Standard](https://url.spec.whatwg.org/#url-parsing) और [RFC3986](https://datatracker.ietf.org/doc/html/rfc3986#appendix-B) के बीच है। जबकि RFC3986 URIs के लिए एक सामान्य ढांचा है, WHATWG वेब URLs के लिए विशिष्ट है और इसे आधुनिक ब्राउज़रों द्वारा अपनाया गया है। मुख्य अंतर WHATWG मानक की बैकस्लैश (`\`) को फॉरवर्ड स्लैश (`/`) के समकक्ष मान्यता में है, जो URLs के पार्सिंग के तरीके को प्रभावित करता है, विशेष रूप से एक URL में होस्टनेम से पथ में संक्रमण को चिह्नित करता है।
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Left square bracket
|
### Left square bracket
|
||||||
|
|
||||||
उपयोगकर्ता जानकारी खंड में “left square bracket” चरित्र `[` Spring के UriComponentsBuilder को एक होस्टनेम मान लौटाने का कारण बन सकता है जो ब्राउज़रों से भिन्न है: [https://example.com\[@attacker.com](https://portswigger.net/url-cheat-sheet#id=1da2f627d702248b9e61cc23912d2c729e52f878)
|
उपयोगकर्ता जानकारी खंड में “left square bracket” चरित्र `[` Spring के UriComponentsBuilder को एक होस्टनेम मान लौटाने का कारण बन सकता है जो ब्राउज़रों से भिन्न होता है: [https://example.com\[@attacker.com](https://portswigger.net/url-cheat-sheet#id=1da2f627d702248b9e61cc23912d2c729e52f878)
|
||||||
|
|
||||||
### Other Confusions
|
### Other Confusions
|
||||||
|
|
||||||
@ -207,10 +207,42 @@ The _backslash-trick_ एक अंतर का लाभ उठाता ह
|
|||||||
|
|
||||||
image from [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
|
image from [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
|
||||||
|
|
||||||
## References
|
### IPv6 Zone Identifier (%25) Trick
|
||||||
|
|
||||||
|
आधुनिक URL पार्सर जो RFC 6874 का समर्थन करते हैं, *link-local* IPv6 पतों को प्रतिशत चिन्ह के बाद एक **zone identifier** शामिल करने की अनुमति देते हैं। कुछ सुरक्षा फ़िल्टर इस सिंटैक्स के बारे में अवगत नहीं हैं और केवल स्क्वायर-ब्रैकेटेड IPv6 लिटेरल को हटा देंगे, जिससे निम्नलिखित पेलोड एक आंतरिक इंटरफेस तक पहुँच सके:
|
||||||
|
```text
|
||||||
|
http://[fe80::1%25eth0]/ # %25 = encoded '%', interpreted as fe80::1%eth0
|
||||||
|
http://[fe80::a9ff:fe00:1%25en0]/ # Another example (macOS style)
|
||||||
|
```
|
||||||
|
यदि लक्षित अनुप्रयोग यह सत्यापित करता है कि होस्ट *नहीं* है `fe80::1` लेकिन `%` पर पार्सिंग रोकता है, तो यह अनुरोध को गलत तरीके से बाहरी के रूप में मान सकता है। किसी भी सुरक्षा निर्णय से पहले हमेशा पते को सामान्यीकृत करें या वैकल्पिक क्षेत्र आईडी को पूरी तरह से हटा दें।
|
||||||
|
|
||||||
|
### हालिया पुस्तकालय पार्सिंग CVEs (2022–2025)
|
||||||
|
|
||||||
|
कई मुख्यधारा के ढांचे ने होस्टनाम-मिलान समस्याओं का सामना किया है जिन्हें SSRF के लिए शोषित किया जा सकता है जब URL सत्यापन को ऊपर सूचीबद्ध ट्रिक्स के साथ बायपास किया गया हो:
|
||||||
|
|
||||||
|
| वर्ष | CVE | घटक | बग का सारांश | न्यूनतम PoC |
|
||||||
|
|------|-----|-----------|--------------|-------------|
|
||||||
|
| 2024 | CVE-2024-22243 / ‑22262 | Spring `UriComponentsBuilder` | `[` *userinfo* अनुभाग में अनुमति नहीं है, इसलिए `https://example.com\[@internal` को Spring द्वारा होस्ट `example.com` के रूप में पार्स किया जाता है लेकिन ब्राउज़रों द्वारा `internal` के रूप में, जब होस्ट अनुमति-सूचियाँ उपयोग की जाती हैं तो ओपन-रीडायरेक्ट और SSRF को सक्षम करता है। Spring 5.3.34 / 6.0.19 / 6.1.6+ में अपग्रेड करें। |
|
||||||
|
| 2023 | CVE-2023-27592 | **urllib3** <1.26.15 | बैकस्लैश भ्रम ने `http://example.com\\@169.254.169.254/` को होस्ट फ़िल्टर को बायपास करने की अनुमति दी जो `@` पर विभाजित होते हैं। |
|
||||||
|
| 2022 | CVE-2022-3602 | OpenSSL | जब नाम `.` (डॉटलेस डोमेन भ्रम) के साथ समाप्त होता है तो होस्टनाम सत्यापन छोड़ दिया गया। |
|
||||||
|
|
||||||
|
जब आप तृतीय-पक्ष URL पार्सर्स पर निर्भर करते हैं, तो **आप जिस पुस्तकालय पर भरोसा करते हैं द्वारा लौटाए गए मानकीकृत होस्ट की तुलना उपयोगकर्ता द्वारा प्रदान किए गए कच्चे स्ट्रिंग से करें** ताकि इन प्रकार की समस्याओं का पता लगाया जा सके।
|
||||||
|
|
||||||
|
### पेलोड-जनरेशन सहायक (2024+)
|
||||||
|
|
||||||
|
हाथ से बड़े कस्टम शब्द-सूचियाँ बनाना कठिन है। ओपन-सोर्स उपकरण **SSRF-PayloadMaker** (Python 3) अब *80 k+* होस्ट-मैंगलिंग संयोजनों को स्वचालित रूप से उत्पन्न कर सकता है, जिसमें मिश्रित एन्कोडिंग, मजबूर-HTTP डाउनग्रेड और बैकस्लैश विविधताएँ शामिल हैं:
|
||||||
|
```bash
|
||||||
|
# Generate every known bypass that transforms the allowed host example.com to attacker.com
|
||||||
|
python3 ssrf_maker.py --allowed example.com --attacker attacker.com -A -o payloads.txt
|
||||||
|
```
|
||||||
|
परिणामी सूची को सीधे Burp Intruder या `ffuf` में डाला जा सकता है।
|
||||||
|
|
||||||
|
## संदर्भ
|
||||||
|
|
||||||
- [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
- [https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25](https://as745591.medium.com/albussec-penetration-list-08-server-side-request-forgery-ssrf-sample-90267f095d25)
|
||||||
- [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
- [https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md](https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Server%20Side%20Request%20Forgery/README.md)
|
||||||
- [https://portswigger.net/research/new-crazy-payloads-in-the-url-validation-bypass-cheat-sheet](https://portswigger.net/research/new-crazy-payloads-in-the-url-validation-bypass-cheat-sheet)
|
- [https://portswigger.net/research/new-crazy-payloads-in-the-url-validation-bypass-cheat-sheet](https://portswigger.net/research/new-crazy-payloads-in-the-url-validation-bypass-cheat-sheet)
|
||||||
|
- [https://nvd.nist.gov/vuln/detail/CVE-2024-22243](https://nvd.nist.gov/vuln/detail/CVE-2024-22243)
|
||||||
|
- [https://github.com/hsynuzm/SSRF-PayloadMaker](https://github.com/hsynuzm/SSRF-PayloadMaker)
|
||||||
|
|
||||||
{{#include ../../banners/hacktricks-training.md}}
|
{{#include ../../banners/hacktricks-training.md}}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user