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
cfb2a31c44
commit
66652e8147
@ -109,7 +109,7 @@ attacker。com
|
||||
Ⓤ Ⓥ Ⓦ Ⓧ Ⓨ Ⓩ ⓐ ⓑ ⓒ ⓓ ⓔ ⓕ ⓖ ⓗ ⓘ ⓙ ⓚ ⓛ ⓜ ⓝ ⓞ ⓟ ⓠ ⓡ ⓢ
|
||||
ⓣ ⓤ ⓥ ⓦ ⓧ ⓨ ⓩ ⓪ ⓫ ⓬ ⓭ ⓮ ⓯ ⓰ ⓱ ⓲ ⓳ ⓴ ⓵ ⓶ ⓷ ⓸ ⓹ ⓺ ⓻ ⓼ ⓽ ⓾ ⓿
|
||||
```
|
||||
### Zbunjenost domena
|
||||
### Zbunjenost Domenа
|
||||
```bash
|
||||
# Try also to change attacker.com for 127.0.0.1 to try to access localhost
|
||||
# Try replacing https by http
|
||||
@ -158,7 +158,7 @@ Alat [**recollapse**](https://github.com/0xacb/recollapse) može generisati vari
|
||||
|
||||
### Automatic Custom Wordlists
|
||||
|
||||
Pogledajte [**URL validation bypass cheat sheet** webapp](https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet) od portswigger-a gde možete uneti dozvoljeni host i napadačev host, a on će generisati listu URL-ova koje možete isprobati. Takođe uzima u obzir da li možete koristiti URL u parametru, u Host header-u ili u CORS header-u.
|
||||
Pogledajte [**URL validation bypass cheat sheet** webapp](https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet) od portswigger-a gde možete uneti dozvoljeni host i napadačev, i generisaće listu URL-ova koje možete isprobati. Takođe uzima u obzir da li možete koristiti URL u parametru, u Host header-u ili u CORS header-u.
|
||||
|
||||
{{#ref}}
|
||||
https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet
|
||||
@ -166,7 +166,7 @@ https://portswigger.net/web-security/ssrf/url-validation-bypass-cheat-sheet
|
||||
|
||||
### Bypass via redirect
|
||||
|
||||
Moguće je da server **filtrira originalni zahtev** za SSRF **ali ne** mogući **redirect** odgovor na taj zahtev.\
|
||||
Moguće je da server **filtrira originalni zahtev** SSRF **ali ne** mogući **redirect** odgovor na taj zahtev.\
|
||||
Na primer, server koji je ranjiv na SSRF putem: `url=https://www.google.com/` može **filtrirati url parametar**. Ali ako koristite [python server da odgovori sa 302](https://pastebin.com/raw/ywAUhFrv) na mesto gde želite da preusmerite, možda ćete moći da **pristupite filtriranim IP adresama** kao što je 127.0.0.1 ili čak filtriranim **protokolima** kao što je gopher.\
|
||||
[Pogledajte ovaj izveštaj.](https://sirleeroyjenkins.medium.com/just-gopher-it-escalating-a-blind-ssrf-to-rce-for-15k-f5329a974530)
|
||||
```python
|
||||
@ -207,10 +207,42 @@ Karakter “levo kvadratno zagrade” `[` u segmentu korisničkih informacija mo
|
||||
|
||||
slika sa [https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/](https://claroty.com/2022/01/10/blog-research-exploiting-url-parsing-confusion/)
|
||||
|
||||
### IPv6 Zone Identifier (%25) trik
|
||||
|
||||
Moderni URL parseri koji podržavaju RFC 6874 omogućavaju *link-local* IPv6 adrese da uključuju **zone identifier** nakon procentnog znaka. Neki sigurnosni filteri nisu svesni ove sintakse i samo će ukloniti IPv6 literale u kvadratnim zagradama, dopuštajući sledećem payload-u da dođe do interne interfejsa:
|
||||
```text
|
||||
http://[fe80::1%25eth0]/ # %25 = encoded '%', interpreted as fe80::1%eth0
|
||||
http://[fe80::a9ff:fe00:1%25en0]/ # Another example (macOS style)
|
||||
```
|
||||
Ako ciljana aplikacija validira da host *nije* `fe80::1`, ali prestaje da analizira na `%`, može pogrešno tretirati zahtev kao eksterni. Uvek normalizujte adresu **pre** bilo kakve bezbednosne odluke ili potpuno uklonite opcioni identifikator zone.
|
||||
|
||||
### Nedavne CVE-ove vezane za analizu biblioteka (2022–2025)
|
||||
|
||||
Nekoliko mainstream okvira imalo je problema sa neusaglašavanjem imena hosta koji se mogu iskoristiti za SSRF kada je validacija URL-a zaobiđena trikovima navedenim iznad:
|
||||
|
||||
| Godina | CVE | Komponenta | Sinopsis greške | Minimalni PoC |
|
||||
|--------|-----|------------|------------------|---------------|
|
||||
| 2024 | CVE-2024-22243 / ‑22262 | Spring `UriComponentsBuilder` | `[` nije dozvoljen u *userinfo* sekciji, tako da `https://example.com\[@internal` se analizira kao host `example.com` od strane Spring-a, ali kao `internal` od strane pregledača, omogućavajući open-redirect i SSRF kada se koriste liste dozvoljenih hostova. Ažurirajte na Spring 5.3.34 / 6.0.19 / 6.1.6+. |
|
||||
| 2023 | CVE-2023-27592 | **urllib3** <1.26.15 | Zbunjenost sa obrnutim kosim crticama omogućila je `http://example.com\\@169.254.169.254/` da zaobiđe filtere hosta koji se dele na `@`. |
|
||||
| 2022 | CVE-2022-3602 | OpenSSL | Verifikacija imena hosta je preskočena kada je ime završeno sa `.` (zbunjenost bez tačke). |
|
||||
|
||||
Kada se oslanjate na analize URL-a trećih strana, **uporedite kanonizovani host koji vraća biblioteka kojoj verujete sa sirovim stringom koji je korisnik dostavio** kako biste otkrili ove klase problema.
|
||||
|
||||
### Pomoćnici za generisanje payload-a (2024+)
|
||||
|
||||
Kreiranje velikih prilagođenih lista reči ručno je zamorno. Open-source alat **SSRF-PayloadMaker** (Python 3) sada može automatski generisati *80 k+* kombinacija za izmenu hosta, uključujući mešane kodiranja, prisilno HTTP snižavanje i varijante sa obrnutim kosim crticama:
|
||||
```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
|
||||
```
|
||||
Rezultantna lista može se direktno uneti u Burp Intruder ili `ffuf`.
|
||||
|
||||
## Reference
|
||||
|
||||
- [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://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}}
|
||||
|
Loading…
x
Reference in New Issue
Block a user